Personalizzazioni per Cigno

git-svn-id: svn://10.65.10.50/branches/R_10_00@22727 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-09-18 10:35:36 +00:00
parent 148f889d51
commit ab083a1e95
9 changed files with 3388 additions and 2992 deletions

View File

@ -7,15 +7,10 @@ int main(int argc, char** argv)
int n = argc > 1 ? atoi(argv[1]+1) : 0; int n = argc > 1 ? atoi(argv[1]+1) : 0;
switch(n) switch(n)
{ {
case 0: case 0: ps0430100(argc, argv); break; //Correlazioni articoli utenti
ps0430100(argc, argv); break; //Correlazioni articoli utenti case 1: ps0430200(argc, argv); break; //Configurazione campi per utente
case 1: //case 2: ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
ps0430200(argc, argv); break; //Configurazione campi per utente default: ps0430100(argc, argv); break;
case 2:
ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
default:
ps0430100(argc, argv); break;
} }
exit(0);
return 0; return 0;
} }

View File

@ -1,227 +1,366 @@
#include <automask.h> #include <automask.h>
#include <defmask.h> #include <defmask.h>
#include <msksheet.h> #include <msksheet.h>
#include <mask.h> #include <mask.h>
#include <recarray.h> #include <recarray.h>
#include <recset.h> #include <recset.h>
#include <tabapp.h> #include <tabapp.h>
#include <multirel.h> #include <multirel.h>
#include "../mg/anamag.h" #include "../mg/anamag.h"
#include "ps0430100a.h" #include "ps0430100a.h"
#define FILE_KEY "ACM" #define FILE_KEY "ACM"
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TArt_mask maschera // TArt_mask maschera
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TArt_mask : public TAutomask class TArt_mask : public TAutomask
{ {
TString _query;
public: TISAM_recordset _recset;
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); bool _filter_changed;
TArt_mask() : TAutomask("ps0430100a") {}
~TArt_mask() {} virtual void next_page(int p);
};
public:
bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) void update_sheet();
{ virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
switch (o.dlg()) TArt_mask();
{ };
case F_SET:
if (e == fe_button) TArt_mask::TArt_mask() : TAutomask("ps0430100a"), _recset("USE ANAMAG")
{ {
TSheet_field & sf = sfield(F_ARTICLES); TConfig c(CONFIG_DITTA);
const long items = sf.items(); TSheet_field & sh = sfield(F_ARTICLES);
bool select = true; TMask & sh_mask = sh.sheet_mask();
const int cid = sf.cid2index(F_ATTIVO); TString80 prompt;
int i ;
for (int i = 1; i <= 10; i++)
for (i = 0; select && i < items; i++) {
select = *sf.row (i).get(cid) <= ' '; const int col = sh.cid2index(F_USER1 + i -1);
TEditable_field & f = sh_mask.efield(F_USER1 + i - 1);
const TString4 val(select ? "X" : " ");
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
for (i = 0; i < items; i++) {
sf.row(i).add(val, cid); prompt = c.get("PROMPT_USER", "ve", i);
sf.force_update(); prompt.rpad(20);
} f.set_prompt(prompt);
break; sh.set_column_header(col, prompt);
case F_RESET: }
if (e == fe_button) else
{ {
TSheet_field & sf = sfield(F_ARTICLES); f.hide();
const long items = sf.items(); sh.delete_column(col);
}
for (int i = 0; i < items; i++) }
{ }
TToken_string & row = sf.row(i);
void TArt_mask::update_sheet()
row.add(" ", sf.cid2index(F_ATTIVO)); {
} const bool active_only = get_bool(F_ACTIVEONLY);
sf.force_update(); TSheet_field& sf = sfield(F_ARTICLES);
}
break; TString query("USE ANAMAG KEY ");
default:
break; TString select;
} TLocalisamfile multirel(LF_MULTIREL);
return true; const TString user(get(F_USER));
}
const TString & codart = get(F_SCODART);
class TRelArticoli_multirel_app : public TMultirel_application
{ if (codart.full())
TISAM_recordset _recset; select << "(UPPER(" << ANAMAG_CODART << ")?=UPPER(\"" << codart << "\"))";
TArt_mask * _mask;
const TString & desart = get(F_SDESART);
protected:
virtual void get_mask_name(TString& tabname) const; if (desart.full())
//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore {
virtual bool has_filtered_cursor() const { return true; } if (select.full())
virtual bool user_create(); select << "&&";
virtual bool user_destroy() ; select << "(UPPER(" << ANAMAG_DESCR << ")?=UPPER(\"" << desart << "\"))";
virtual int read(TMask& m); }
virtual int rewrite(const TMask& m);
virtual int write(const TMask& m) { return rewrite(m);} const TString & desagg = get(F_SDESAGG);
virtual bool remove();
virtual void init_insert_mode(TMask& m) { read(m); } if (desagg.full())
virtual bool find(word key = 0); {
virtual TMask* get_mask(int mode = MODE_QUERY) { return (TMask *) _mask;} if (select.full())
select << "&&";
public: select << "(UPPER(" << ANAMAG_DESCRAGG << ")?=UPPER(\"" << desagg << "\"))";
}
virtual const char * extra_modules() const {return "ba";}
const TString & codforn = get(F_SCODFOR);
TRelArticoli_multirel_app() : _recset("USE ANAMAG KEY 1") {}
virtual ~TRelArticoli_multirel_app() {} if (codforn.full())
}; {
if (select.full())
void TRelArticoli_multirel_app::get_mask_name(TString& tabname) const select << "&&";
{ select << "(" << ANAMAG_CODFORN << "==\"" << codforn << "\")";
tabname = "ps0430100a"; }
}
const TString & ragsoc = get(F_SRAGSOC);
bool TRelArticoli_multirel_app::user_create()
{ if (ragsoc.full())
bool ok = TMultirel_application::user_create(); {
_mask = new TArt_mask; if (select.full())
return ok; select << "&&";
} select << "(UPPER(CLIFO.RAGSOC)?=UPPER(\"" << ragsoc << "\"))";
}
bool TRelArticoli_multirel_app::user_destroy()
{ TString16 grmerc(get(F_GRMERC));
/* prefix().close_closeable_isamfiles(); if (grmerc.full())
query << '3';
TSystemisamfile multirel(LF_MULTIREL); else
query << '1';
multirel.pack(); */
delete _mask; if (select.full())
return true; query << "\nSELECT " << select;
}
grmerc.left_just(3);
int TRelArticoli_multirel_app::read(TMask& m) grmerc << get(F_SGRMERC);
{ grmerc.trim();
const TRectype & curr = get_relation()->lfile().curr();
TSheet_field & sf = m.sfield(F_ARTICLES); if (grmerc.full())
TLocalisamfile multirel(LF_MULTIREL); query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\nFROM GRMERC=#GRMERC\nTO GRMERC=#GRMERC";
const TString user(m.get(F_USER)); else
int i = 0; query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\n";
sf.destroy(); _recset.set(query);
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
{ TVariant var ;
TToken_string & row = sf.row(i++);
const TString & codart = _recset.get(ANAMAG_CODART).as_string(); var = grmerc;
_recset.set_var("#GRMERC", var);
row.add(codart, sf.cid2index(F_CODART));
row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR)); int i = 0;
row.add(_recset.get(ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN)); sf.destroy();
TToken_string key; key.format("F|%ld", _recset.get(ANAMAG_CODFORN).as_int());
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
row.add(cache().get(LF_CLIFO, key, "RAGSOC"), sf.cid2index(F_RAGSOC)); {
const TString& codart = _recset.get(ANAMAG_CODART).as_string();
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user); multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_SECOND, codart); multirel.put(MULTI_FIRST, user);
if (multirel.read(_isequal) == NOERR) multirel.put(MULTI_SECOND, codart);
row.add("X", sf.cid2index(F_ATTIVO)); const bool act = multirel.read(_isequal) == NOERR;
else
row.add(" ", sf.cid2index(F_ATTIVO)); if (active_only && !act)
} continue;
return NOERR;
} TToken_string & row = sf.row(i++);
row.add(codart, sf.cid2index(F_CODART));
int TRelArticoli_multirel_app::rewrite(const TMask& m) row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR));
{ row.add(act ? "X" : " ", sf.cid2index(F_ATTIVO));
int err = NOERR; row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN));
TSheet_field & sf = m.sfield(F_ARTICLES); row.add(_recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(F_RAGSOC));
int i = 0; row.add(_recset.get(ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
TLocalisamfile multirel(LF_MULTIREL); row.add(_recset.get(ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
const TString user(m.get(F_USER)); row.add(_recset.get(ANAMAG_DESCRAGG).as_string().left(50), sf.cid2index(F_DESCRAGG));
row.add(_recset.get(ANAMAG_PPCONF).as_string(), sf.cid2index(F_PPCONF));
for (bool ok = _recset.move_first(); err == NOERR && ok; ok = _recset.move_next()) row.add(_recset.get(ANAMAG_VALSTATUN).as_string(), sf.cid2index(F_VALSTATUN));
{ row.add(_recset.get(ANAMAG_ULTCOS1).as_string(), sf.cid2index(F_ULTCOS1));
TToken_string & row = sf.row(i++); row.add(_recset.get(ANAMAG_USER1).as_string(), sf.cid2index(F_USER1));
bool selected = *row.get(sf.cid2index(F_ATTIVO)) > ' '; row.add(_recset.get(ANAMAG_USER2).as_string(), sf.cid2index(F_USER2));
row.add(_recset.get(ANAMAG_USER3).as_string(), sf.cid2index(F_USER3));
multirel.zero(); row.add(_recset.get(ANAMAG_USER4).as_string(), sf.cid2index(F_USER4));
multirel.put(MULTI_COD, FILE_KEY); row.add(_recset.get(ANAMAG_USER5).as_string(), sf.cid2index(F_USER5));
multirel.put(MULTI_FIRST, user); row.add(_recset.get(ANAMAG_USER6).as_string(), sf.cid2index(F_USER6));
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART))); row.add(_recset.get(ANAMAG_USER7).as_string(), sf.cid2index(F_USER7));
bool exist = multirel.read(_isequal) == NOERR; row.add(_recset.get(ANAMAG_USER8).as_string(), sf.cid2index(F_USER8));
row.add(_recset.get(ANAMAG_USER9).as_string(), sf.cid2index(F_USER9));
if (exist && !selected) row.add(_recset.get(ANAMAG_USER10).as_string(), sf.cid2index(F_USER10));
err = multirel.remove(); }
else }
if (!exist && selected)
{ void TArt_mask::next_page(int p)
multirel.zero(); {
multirel.put(MULTI_COD, FILE_KEY); TAutomask::next_page(p);
multirel.put(MULTI_FIRST, user); if (_filter_changed)
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART))); {
err = multirel.write(); TSheet_field & sf = sfield(F_ARTICLES);
} if (curr_win() == sf.parent())
} {
get_relation()->read(_isgteq); update_sheet();
return err; sf.force_update();
} _filter_changed = false;
}
bool TRelArticoli_multirel_app::remove() }
{
int err; }
TLocalisamfile multirel(LF_MULTIREL); bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
const TString user(get_mask(MODE_MOD)->get(F_USER)); {
switch (o.dlg())
multirel.put(MULTI_COD, FILE_KEY); {
multirel.put(MULTI_FIRST, user); case F_GRMERC:
case F_SGRMERC:
for (err = multirel.read(_isgteq); err == NOERR && user == multirel.get(MULTI_FIRST); multirel.next()) case F_SCODART:
err = multirel.remove(); case F_SDESART:
return err == NOERR || err == _iseof; case F_SDESAGG:
} case F_SCODFOR:
case F_SRAGSOC:
bool TRelArticoli_multirel_app::find(word key) if (e == fe_modify)
{ _filter_changed = true;
bool ok = false; break;
const TString& user = get_mask(MODE_QUERY)->get(F_USER); case F_SET:
if (e == fe_button)
if (user.full()) {
{ TSheet_field& sf = sfield(F_ARTICLES);
TLocalisamfile multirel(LF_MULTIREL); const int items = sf.items();
bool select = true;
multirel.put(MULTI_COD, FILE_KEY); const int cid = sf.cid2index(F_ATTIVO);
multirel.put(MULTI_FIRST, user); int i ;
ok = (multirel.read(_isgteq) == NOERR) && (user == multirel.get(MULTI_FIRST));
} for (i = 0; select && i < items; i++)
if (ok) select = *sf.row (i).get(cid) <= ' ';
get_relation()->read(_isgteq);
return ok; const TString4 val(select ? "X" : " ");
}
for (i = 0; i < items; i++)
int ps0430100(int argc, char* argv[]) sf.row(i).add(val, cid);
{ sf.force_update();
TRelArticoli_multirel_app a; }
a.run(argc, argv, TR("Tabella")); break;
return 0; case F_ACTIVEONLY:
} if (e == fe_modify)
{
if (!field(F_USER).empty())
{
update_sheet();
sfield(F_ARTICLES).force_update();
}
}
break;
default:
break;
}
return true;
}
class TRelArticoli_multirel_app : public TMultirel_application
{
TArt_mask * _mask;
protected:
virtual void get_mask_name(TString& tabname) const;
//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
virtual bool has_filtered_cursor() const { return true; }
virtual bool user_create();
virtual bool user_destroy() ;
virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write(const TMask& m) { return rewrite(m);}
virtual bool remove();
virtual void init_insert_mode(TMask& m) { read(m); }
virtual bool find(word key = 0);
virtual TMask* get_mask(int mode = MODE_QUERY) { return (TMask *) _mask;}
public:
virtual const char * extra_modules() const {return "ba";}
TRelArticoli_multirel_app() {}
virtual ~TRelArticoli_multirel_app() {}
};
void TRelArticoli_multirel_app::get_mask_name(TString& tabname) const
{
tabname = "ps0430100a";
}
bool TRelArticoli_multirel_app::user_create()
{
bool ok = TMultirel_application::user_create();
_mask = new TArt_mask;
return ok;
}
bool TRelArticoli_multirel_app::user_destroy()
{
delete _mask;
return true;
}
int TRelArticoli_multirel_app::read(TMask& m)
{
const TRectype & curr = get_relation()->lfile().curr();
TArt_mask & mask = (TArt_mask &) m;
mask.update_sheet();
return NOERR;
}
int TRelArticoli_multirel_app::rewrite(const TMask& m)
{
int err = NOERR;
TSheet_field & sf = m.sfield(F_ARTICLES);
TLocalisamfile multirel(LF_MULTIREL);
const TString user(m.get(F_USER));
for (int i = 0; i < sf.items(); i++)
{
TToken_string & row = sf.row(i);
bool selected = *row.get(sf.cid2index(F_ATTIVO)) > ' ';
multirel.zero();
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
bool exist = multirel.read(_isequal) == NOERR;
if (exist && !selected)
err = multirel.remove();
else
if (!exist && selected)
{
multirel.zero();
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
multirel.put(MULTI_SECOND, row.get(sf.cid2index(F_CODART)));
err = multirel.write();
}
}
get_relation()->read(_isgteq);
return err;
}
bool TRelArticoli_multirel_app::remove()
{
int err;
TLocalisamfile multirel(LF_MULTIREL);
const TString user(get_mask(MODE_MOD)->get(F_USER));
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
for (err = multirel.read(_isgteq); err == NOERR && user == multirel.get(MULTI_FIRST); multirel.next())
err = multirel.remove();
return err == NOERR || err == _iseof;
}
bool TRelArticoli_multirel_app::find(word key)
{
bool ok = false;
const TString& user = get_mask(MODE_QUERY)->get(F_USER);
if (user.full())
{
TLocalisamfile multirel(LF_MULTIREL);
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
ok = (multirel.read(_isgteq) == NOERR) && (user == multirel.get(MULTI_FIRST));
}
if (ok)
get_relation()->read(_isgteq);
return ok;
}
int ps0430100(int argc, char* argv[])
{
TRelArticoli_multirel_app a;
a.run(argc, argv, TR("Tabella"));
return 0;
}

View File

@ -1,16 +1,43 @@
// Defines per maschera // Defines per maschera
#define F_COD 149 #define F_COD 149
#define F_CODTAB 150 #define F_CODTAB 150
#define F_USER 151 #define F_USER 151
#define F_DUSER 152 #define F_DUSER 152
#define F_ARTICLES 153 #define F_ARTICLES 153
#define F_SET 154 #define F_SET 154
#define F_RESET 155 #define F_ACTIVEONLY 155
#define F_GRMERC 156
#define F_CODART 101 #define F_DGRMERC 157
#define F_DESCR 102 #define F_SGRMERC 158
#define F_ATTIVO 103 #define F_DSGRMERC 159
#define F_DESCRAGG 104 #define F_SCODART 160
#define F_CODFORN 105 #define F_SDESART 161
#define F_RAGSOC 106 #define F_SDESAGG 162
#define F_SCODFOR 163
#define F_SRAGSOC 164
#define F_CODART 101
#define F_DESCR 102
#define F_ATTIVO 103
#define F_CODFORN 104
#define F_RAGSOC 105
#define F_LEADTIME 106
#define F_LOTTOMIN 107
#define F_DESCRAGG 108
#define F_PPCONF 109
#define F_VALSTATUN 110
#define F_ULTCOS1 111
#define F_USER1 112
#define F_USER2 113
#define F_USER3 114
#define F_USER4 115
#define F_USER5 116
#define F_USER6 117
#define F_USER7 118
#define F_USER8 119
#define F_USER9 120
#define F_USER10 121

View File

@ -1,116 +1,337 @@
#include "ps0430100a.h" #include "ps0430100a.h"
TOOLBAR "" 0 0 0 2 TOOLBAR "" 0 0 0 2
#include <relapbar.h> #include <relapbar.h>
ENDPAGE ENDPAGE
PAGE "Relazioni utenti Articoli" -1 -1 80 20 PAGE "Relazioni utenti Articoli" -1 -1 80 20
LIST F_COD 5 LIST F_COD 5
BEGIN BEGIN
PROMPT 50 50 "" PROMPT 50 50 ""
ITEM "ATM|ATM" ITEM "ATM|ATM"
FIELD COD FIELD COD
FLAGS "H" FLAGS "H"
KEY 1 KEY 1
END END
NUMBER F_CODTAB 3 NUMBER F_CODTAB 3
BEGIN BEGIN
PROMPT 50 50 "" PROMPT 50 50 ""
USE LF_MULTIREL USE LF_MULTIREL
INPUT COD F_COD SELECT INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB INPUT FIRST F_CODTAB
DISPLAY "Codice" FIRST DISPLAY "Codice" FIRST
DISPLAY "Descrizione@60" DATA DISPLAY "Descrizione@60" DATA
DISPLAY "Causale Collegata" SECOND DISPLAY "Causale Collegata" SECOND
OUTPUT F_CODTAB FIRST OUTPUT F_CODTAB FIRST
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD FIRST FIELD FIRST
FLAGS "H" FLAGS "H"
KEY 1 KEY 1
END END
STRING F_USER 8 STRING F_USER 8
BEGIN BEGIN
PROMPT 4 2 "Utente " PROMPT 4 0 "Utente "
FLAGS "U" FLAGS "U"
// FIELD FIRST KEY 1
KEY 1 USE LF_USER SELECT ISGROUP!="X"
USE LF_USER SELECT ISGROUP!="X" INPUT USERNAME F_USER
INPUT USERNAME F_USER DISPLAY "Utente@8" USERNAME
DISPLAY "Utente@8" USERNAME DISPLAY "Gruppo@8" GROUPNAME
DISPLAY "Gruppo@8" GROUPNAME DISPLAY "Descrizione@50" USERDESC
DISPLAY "Descrizione@50" USERDESC OUTPUT F_USER USERNAME
OUTPUT F_USER USERNAME OUTPUT F_DUSER USERDESC
OUTPUT F_DUSER USERDESC CHECKTYPE NORMAL
CHECKTYPE NORMAL MESSAGE COPY,F_CODTAB
MESSAGE COPY,F_CODTAB END
END
STRING F_DUSER 50
STRING F_DUSER 50 BEGIN
BEGIN PROMPT 25 0 ""
PROMPT 25 2 "" FLAGS "D"
FLAGS "D" END
END
BOOLEAN F_ACTIVEONLY
SPREADSHEET F_ARTICLES 85 -3 BEGIN
BEGIN PROMPT 4 1 "Mostrare solo gli articoli attivi"
PROMPT 1 4 "Articoli" END
ITEM "Codice@20"
ITEM "Descrizione@45" BUTTON F_SET 10 2
ITEM "Attivo" BEGIN
ITEM "Descrizione fornitore@45" PROMPT -1 0 "~Tutti"
ITEM "Codice Fonitore" END
ITEM "Ragione sociale@45"
END SPREADSHEET F_ARTICLES
BEGIN
BUTTON F_SET 10 2 PROMPT 1 2 "Articoli"
BEGIN ITEM "Codice@20"
PROMPT -11 -1 "~Tutti" ITEM "Descrizione@45"
END ITEM "Attivo"
ITEM "Fornit."
ENDPAGE ITEM "Ragione sociale@45"
ITEM "Lead\ntime@5"
ENDMASK ITEM "Lotto minimo\ndi riordino@10"
ITEM "Descrizione aggiuntiva@50"
PAGE "Righe" -1 -1 80 18 ITEM "Q.tà per unità\ndi vendita@15"
ITEM "Prezzo unitario@15"
STRING F_CODART 20 ITEM "Prezzo unità\ndi vendita@15"
BEGIN ITEM "Campo Aggiuntivo 1@15"
PROMPT 1 2 "Codice " ITEM "Campo Aggiuntivo 2@15"
FLAGS "D" ITEM "Campo Aggiuntivo 3@15"
END ITEM "Campo Aggiuntivo 4@15"
ITEM "Campo Aggiuntivo 5@15"
STRING F_DESCR 50 45 ITEM "Campo Aggiuntivo 6@15"
BEGIN ITEM "Campo Aggiuntivo 7@15"
PROMPT 42 2 "" ITEM "Campo Aggiuntivo 8@15"
FLAGS "D" ITEM "Campo Aggiuntivo 9@15"
END ITEM "Campo Aggiuntivo 10@15"
END
BOOLEAN F_ATTIVO
BEGIN ENDPAGE
PROMPT 2 4 "Attivo per questo utente"
END PAGE "Filtri" -1 -1 80 20
STRING F_DESCRAGG 50 45 STRING F_GRMERC 3
BEGIN BEGIN
PROMPT 2 6 " " PROMPT 2 4 "Gruppo merceologico "
FLAGS "D" FLAG "U"
END USE GMC KEY 1 SELECT CODTAB[4,5]==""
INPUT CODTAB F_GRMERC
NUMBER F_CODFORN 6 DISPLAY "Codice" CODTAB[1,3]
BEGIN DISPLAY "Descrizione@50" S0
PROMPT 2 8 " " OUTPUT F_GRMERC CODTAB[1,3]
FLAGS "D" OUTPUT F_DGRMERC S0
END CHECKTYPE SEARCH
FIELD OR14_GRM
STRING F_RAGSOC 50 45 END
BEGIN
PROMPT 2 10 " " STRING F_DGRMERC 50 35
FLAGS "D" BEGIN
END PROMPT 35 4 ""
USE GMC KEY 2 SELECT CODTAB[4,5]==""
ENDPAGE INPUT S0 F_DGRMERC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_DGRMERC S0
CHECKTYPE SEARCH
END
STRING F_SGRMERC 2
BEGIN
PROMPT 2 6 "Sottogruppo merceologico "
FLAG "U"
USE GMC
INPUT CODTAB[1,3] F_GRMERC
INPUT CODTAB[4,5] F_SGRMERC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_SGRMERC CODTAB[4,5]
OUTPUT F_DSGRMERC S0
CHECKTYPE NORMAL
FIELD OR14_SGR
END
STRING F_DSGRMERC 50 35
BEGIN
PROMPT 35 6 ""
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
INPUT S0 F_DSGRMERC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_SGRMERC
CHECKTYPE NORMAL
END
STRING F_SCODART 20
BEGIN
PROMPT 2 8 "Codice articolo "
END
STRING F_SDESART 50
BEGIN
PROMPT 2 10 "Descrizione "
END
STRING F_SDESAGG 50
BEGIN
PROMPT 2 12 "Descrizione aggiuntiva "
END
STRING F_SCODFOR 7
BEGIN
PROMPT 2 14 "Codice fornitore "
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF F_SCODFOR
DISPLAY "Codice " CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_SCODFOR CODCF
END
STRING F_SRAGSOC 50
BEGIN
PROMPT 2 16 "Ragione sociale "
END
ENDPAGE
ENDMASK
PAGE "Righe" -1 -1 80 18
STRING F_CODART 20
BEGIN
PROMPT 1 2 "Codice "
FLAGS "D"
END
STRING F_DESCR 50 45
BEGIN
PROMPT 42 2 ""
FLAGS "D"
END
BOOLEAN F_ATTIVO
BEGIN
PROMPT 2 4 "Attivo per questo utente"
END
NUMBER F_CODFORN 6
BEGIN
PROMPT 2 6 " "
FLAGS "D"
END
STRING F_RAGSOC 50 45
BEGIN
PROMPT 2 8 " "
FLAGS "D"
END
NUMBER F_LEADTIME 5
BEGIN
PROMPT 2 10 "Lead time "
FLAGS "D"
END
NUMBER F_LOTTOMIN 10 3
BEGIN
PROMPT 42 10 "Lotto "
FLAGS "D"
END
STRING F_DESCRAGG 50 45
BEGIN
PROMPT 2 12 " "
FLAGS "D"
END
NUMBER F_PPCONF 15
BEGIN
PROMPT 2 12 "Q.tà per unità di vendita "
FLAGS "D"
END
NUMBER F_VALSTATUN 15 5
BEGIN
PROMPT 2 14 "Prezzo unitario "
FLAGS "D"
END
NUMBER F_ULTCOS1 15 5
BEGIN
PROMPT 2 16 "Prezzo unità di vendita "
FLAGS "D"
END
BUTTON DLG_OK 11 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 11 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Campi Utente" -1 -1 80 20
STRING F_USER1 20
BEGIN
PROMPT 2 2 "Campo utente 1 "
FLAGS "D"
END
STRING F_USER2 20
BEGIN
PROMPT 2 4 "Campo utente 2 "
FLAGS "D"
END
STRING F_USER3 20
BEGIN
PROMPT 2 6 "Campo utente 3 "
FLAGS "D"
END
STRING F_USER4 20
BEGIN
PROMPT 2 8 "Campo utente 4 "
FLAGS "D"
END
STRING F_USER5 20
BEGIN
PROMPT 2 10 "Campo utente 5 "
FLAGS "D"
END
STRING F_USER6 20
BEGIN
PROMPT 2 12 "Campo utente 6 "
FLAGS "D"
END
STRING F_USER7 20
BEGIN
PROMPT 2 14 "Campo utente 7 "
FLAGS "D"
END
STRING F_USER8 20
BEGIN
PROMPT 2 16 "Campo utente 8 "
FLAGS "D"
END
STRING F_USER9 20
BEGIN
PROMPT 2 18 "Campo utente 9 "
FLAGS "D"
END
STRING F_USER10 20
BEGIN
PROMPT 2 20 "Campo utente 10 "
FLAGS "D"
END
BUTTON DLG_OK 11 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 11 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK ENDMASK

View File

@ -1,96 +1,95 @@
#include <applicat.h> #include <automask.h>
#include <automask.h> #include <defmask.h>
#include <relation.h> #include <msksheet.h>
#include <mask.h>
#include <multirel.h> #include <recarray.h>
#include "../mg/anamag.h" #include <recset.h>
#include <tabapp.h>
#include "ps0430200a.h"
#include <multirel.h>
/////////////////////////////////////////////////////////// #include "../mg/anamag.h"
// TUser_mask maschera #include "ps0430200a.h"
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
class TUser_mask : public TAutomask // TUser_mask maschera
{ ///////////////////////////////////////////////////////////
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); class TUser_mask : public TAutomask
{
public:
bool get_user_ini(TFilename& name) const; public:
TUser_mask() : TAutomask("ps0430200a") {} virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
}; TUser_mask() : TAutomask("ps0430200a") {}
~TUser_mask() {}
bool TUser_mask::get_user_ini(TFilename& name) const };
{
name = prefix().get_studio(); bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
name.add("config"); {
name.add(get(F_USER)); switch (o.dlg())
name.ext("ini"); {
return name.exist(); case F_USER:
} if (e == fe_modify)
{
bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) const TString& new_user = o.get();
{ const TString16 old_user = user();
switch (o.dlg()) user() = new_user;
{ const char* defpar = "or";
case F_USER: TConfig userconf(CONFIG_USER, defpar);
if (e == fe_modify)
{ for (int i = o.mask().fields()-1; i >= 0; i--)
const char* const defpar = "or"; {
TFilename inipath; get_user_ini(inipath); TMask_field& f = o.mask().fld(i);
TConfig userconf(inipath, defpar); const TFieldref* fr = f.field();
for (int i = o.mask().fields()-1; i >= 0; i--) if (fr != NULL)
{ f.set(fr->read(userconf, defpar));
TMask_field& f = o.mask().fld(i); }
const TFieldref* fr = f.field(); user() = old_user;
}
if (fr != NULL) break;
{ default:
f.set(fr->read(userconf, defpar)); break;
f.check(); }
} return true;
} }
}
break; class TUser_set_app : public TSkeleton_application
default: {
break; public:
} virtual const char * extra_modules() const {return "ba";}
return true; virtual void main_loop();
}
TUser_set_app() {}
class TUser_set_app : public TSkeleton_application virtual ~TUser_set_app() {}
{ };
protected:
virtual const char * extra_modules() const {return "ba";} void TUser_set_app::main_loop()
virtual void main_loop(); {
}; TUser_mask mask;
void TUser_set_app::main_loop() while (mask.run() == K_ENTER)
{ {
TUser_mask mask; const TString& new_user = mask.get(F_USER);
const TString16 old_user = user();
while (mask.run() == K_ENTER) user() = new_user;
{ const char* defpar = "or";
const char* const defpar = "or"; TConfig userconf(CONFIG_USER, defpar);
TFilename inipath; mask.get_user_ini(inipath);
TConfig userconf(inipath, defpar); for (int i = mask.fields()-1; i >= 0; i--)
{
for (int i = mask.fields()-1; i >= 0; i--) TMask_field& f = mask.fld(i);
{ const TFieldref* fr = f.field();
const TMask_field& f = mask.fld(i); if (fr != NULL)
const TFieldref* fr = f.field(); fr->write(userconf, defpar, f.get());
if (fr != NULL) }
fr->write(userconf, defpar, f.get()); user() = old_user;
} mask.reset();
mask.reset(); }
} }
}
int ps0430200(int argc, char* argv[])
int ps0430200(int argc, char* argv[]) {
{ TUser_set_app a;
TUser_set_app a; a.run(argc, argv, TR("Configurazione campi per utente"));
a.run(argc, argv, TR("Configurazione campi per utente")); return 0;
return 0; }
}

View File

@ -1,24 +1,31 @@
// Defines per maschera // Defines per maschera
#define F_USER 101 #define F_USER 101
#define F_DUSER 102 #define F_DUSER 102
#define F_GRMERC 103 #define F_GRMERC 103
#define F_DGRMERC 104 #define F_DGRMERC 104
#define F_SGRMERC 105 #define F_SGRMERC 105
#define F_DSGRMERC 106 #define F_DSGRMERC 106
#define F_SOTTOSCORTA 107 #define F_SOTTOSCORTA 107
#define F_ARTICLES 108 #define F_ARTICLES 108
#define F_CODNUM 109 #define F_CODNUM 109
#define F_DESNUM 110 #define F_DESNUM 110
#define F_TIPODOC 111 #define F_TIPODOC 111
#define F_DESTIPODOC 112 #define F_DESTIPODOC 112
#define F_MAG 113 #define F_MAG 113
#define F_DESMAG 114 #define F_DESMAG 114
#define F_DEP 115 #define F_DEP 115
#define F_DESDEP 116 #define F_DESDEP 116
#define F_PREZZO 117 #define F_PREZZO 117
#define F_CDCT 118 #define F_CDCT 118
#define F_FSCT 119 #define F_FSCT 119
#define F_DASTATO 120 #define F_DASTATO 120
#define F_ASTATO 121 #define F_ASTATO 121
#define F_CODNUMCAR 122
#define F_DESNUMCAR 123
#define F_TIPODOCCAR 124
#define F_DESTIPODOCCAR 125
#define F_STATOEVASO 126
#define F_STATOINI 127

View File

@ -1,248 +1,324 @@
#include "ps0430200a.h" #include "ps0430200a.h"
TOOLBAR "" 0 -3 0 3 TOOLBAR "" 0 -3 0 3
BUTTON DLG_SAVEREC 11 2 BUTTON DLG_SAVEREC 11 2
BEGIN BEGIN
PROMPT -12 -11 "" PROMPT -12 -11 ""
PICTURE BMP_SAVEREC PICTURE BMP_SAVEREC
PICTURE BMP_SAVERECDN PICTURE BMP_SAVERECDN
MESSAGE EXIT,K_ENTER MESSAGE EXIT,K_ENTER
END END
BUTTON DLG_QUIT 11 2 BUTTON DLG_QUIT 11 2
BEGIN BEGIN
PROMPT -22 -11 "" PROMPT -22 -11 ""
END END
ENDPAGE ENDPAGE
PAGE "Configurazione campi per utente" 0 0 0 -3 PAGE "Configurazione campi per utente" 0 0 0 -3
STRING F_USER 8 STRING F_USER 8
BEGIN BEGIN
PROMPT 2 2 "Utente " PROMPT 2 2 "Utente "
FLAGS "U" FLAGS "U"
KEY 1 KEY 1
USE LF_USER SELECT ISGROUP!="X" USE LF_USER SELECT ISGROUP!="X"
INPUT USERNAME F_USER INPUT USERNAME F_USER
DISPLAY "Utente@8" USERNAME DISPLAY "Utente@8" USERNAME
DISPLAY "Gruppo@8" GROUPNAME DISPLAY "Gruppo@8" GROUPNAME
DISPLAY "Descrizione@50" USERDESC DISPLAY "Descrizione@50" USERDESC
OUTPUT F_USER USERNAME OUTPUT F_USER USERNAME
OUTPUT F_DUSER USERDESC OUTPUT F_DUSER USERDESC
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DUSER 50 STRING F_DUSER 50
BEGIN BEGIN
PROMPT 29 2 "" PROMPT 29 2 ""
FLAGS "D" FLAGS "D"
END END
STRING F_GRMERC 3 STRING F_GRMERC 3
BEGIN BEGIN
PROMPT 2 4 "Gruppo merc. " PROMPT 2 4 "Gruppo merc. "
FLAG "U" FLAG "U"
USE GMC KEY 1 SELECT CODTAB[4,5]=="" USE GMC KEY 1 SELECT CODTAB[4,5]==""
INPUT CODTAB F_GRMERC INPUT CODTAB F_GRMERC
DISPLAY "Codice" CODTAB[1,3] DISPLAY "Codice" CODTAB[1,3]
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3] OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_DGRMERC S0 OUTPUT F_DGRMERC S0
CHECKTYPE SEARCH CHECKTYPE SEARCH
FIELD OR14_GRM FIELD OR14_GRM
END END
STRING F_DGRMERC 50 STRING F_DGRMERC 50
BEGIN BEGIN
PROMPT 29 4 "" PROMPT 29 4 ""
USE GMC KEY 2 SELECT CODTAB[4,5]=="" USE GMC KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DGRMERC INPUT S0 F_DGRMERC
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3] OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_DGRMERC S0 OUTPUT F_DGRMERC S0
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_SGRMERC 2 STRING F_SGRMERC 2
BEGIN BEGIN
PROMPT 2 6 "Sottogr.merc ." PROMPT 2 5 "Sottogr.merc. "
FLAG "U" FLAG "U"
USE GMC USE GMC
INPUT CODTAB[1,3] F_GRMERC INPUT CODTAB[1,3] F_GRMERC
INPUT CODTAB[4,5] F_SGRMERC INPUT CODTAB[4,5] F_SGRMERC
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3] OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_SGRMERC CODTAB[4,5] OUTPUT F_SGRMERC CODTAB[4,5]
OUTPUT F_DSGRMERC S0 OUTPUT F_DSGRMERC S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD OR14_SGR FIELD OR14_SGR
END END
STRING F_DSGRMERC 50 STRING F_DSGRMERC 50
BEGIN BEGIN
PROMPT 29 6 "" PROMPT 29 5 ""
USE GMC KEY 2 SELECT CODTAB[4,5] != "" USE GMC KEY 2 SELECT CODTAB[4,5] != ""
INPUT S0 F_DSGRMERC INPUT S0 F_DSGRMERC
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_SGRMERC COPY OUTPUT F_SGRMERC
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_CDCT 20 STRING F_CDCT 20
BEGIN BEGIN
PROMPT 2 8 "CDC/Commessa " PROMPT 2 7 "CDC/Commessa "
FLAGS "UZ" FLAGS "UZ"
USE CMS USE CMS
INPUT CODTAB F_CDCT INPUT CODTAB F_CDCT
DISPLAY "Codice@20" CODTAB DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@70" S0 DISPLAY "Descrizione@70" S0
OUTPUT F_CDCT CODTAB OUTPUT F_CDCT CODTAB
FILED OR14_CDCT FILED OR14_CDCT
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_FSCT 10 STRING F_FSCT 10
BEGIN BEGIN
PROMPT 45 8 "Fase " PROMPT 45 7 "Fase "
FLAGS "UZ" FLAGS "UZ"
USE FSC USE FSC
INPUT CODTAB F_FSCT INPUT CODTAB F_FSCT
DISPLAY "Codice@20" CODTAB DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@70" S0 DISPLAY "Descrizione@70" S0
OUTPUT F_FSCT CODTAB OUTPUT F_FSCT CODTAB
FIELD OR14_FSCT FIELD OR14_FSCT
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_CODNUM 4 STRING F_CODNUM 4
BEGIN BEGIN
PROMPT 2 10 "Numerazione " PROMPT 2 9 "Numerazione "
USE %NUM USE %NUM
INPUT CODTAB F_CODNUM INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0 OUTPUT F_DESNUM S0
FLAG "UG" FLAG "UG"
CHECKTYPE NORMAL CHECKTYPE NORMAL
FIELD OR14_NUM FIELD OR14_NUM
END END
STRING F_DESNUM 50 STRING F_DESNUM 50
BEGIN BEGIN
PROMPT 29 10 "" PROMPT 29 9 ""
USE %NUM KEY 2 USE %NUM KEY 2
INPUT S0 F_DESNUM INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM COPY OUTPUT F_CODNUM
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_TIPODOC 4 STRING F_TIPODOC 4
BEGIN BEGIN
PROMPT 2 12 "Tipo " PROMPT 2 10 "Tipo "
USE %TIP USE %TIP
INPUT CODTAB F_TIPODOC INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPODOC S0 OUTPUT F_DESTIPODOC S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAG "UG" FLAG "UG"
FIELD OR14_TIP FIELD OR14_TIP
END END
STRING F_DESTIPODOC 50 STRING F_DESTIPODOC 50
BEGIN BEGIN
PROMPT 29 12 "" PROMPT 29 10 ""
USE %TIP KEY 2 USE %TIP KEY 2
INPUT S0 F_DESTIPODOC INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC COPY OUTPUT F_TIPODOC
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_MAG 3
BEGIN STRING F_CODNUMCAR 4
PROMPT 2 14 "Magazzino " BEGIN
FLAGS "UG" PROMPT 2 12 "Num.doc.carico "
USE MAG SELECT CODTAB[4,5]=="" USE %NUM
INPUT CODTAB F_MAG INPUT CODTAB F_CODNUMCAR
DISPLAY "Codice " CODTAB[1,3] DISPLAY "Codice" CODTAB
DISPLAY "Denominazione mag.@50 " S0 DISPLAY "Descrizione@50" S0
OUTPUT F_MAG CODTAB[1,3] OUTPUT F_CODNUMCAR CODTAB
OUTPUT F_DESMAG S0 OUTPUT F_DESNUMCAR S0
CHECKTYPE NORMAL FLAG "UG"
FIELD OR14_MAG CHECKTYPE NORMAL
END FIELD OR14_NUMCAR
END
STRING F_DESMAG 50
BEGIN STRING F_DESNUMCAR 50
PROMPT 29 14 "" BEGIN
USE MAG KEY 2 SELECT CODTAB[4,5]=="" PROMPT 29 12 ""
INPUT S0 F_DESMAG USE %NUM KEY 2
DISPLAY "Denominazione magazzino@50" S0 INPUT S0 F_DESNUMCAR
DISPLAY "Cod. magazzino" CODTAB[1,3] DISPLAY "Descrizione@50" S0
DISPLAY "Cod. deposito" CODTAB[4,5] DISPLAY "Codice" CODTAB
COPY OUTPUT F_MAG COPY OUTPUT F_CODNUMCAR
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_DEP 2 STRING F_TIPODOCCAR 4
BEGIN BEGIN
PROMPT 2 16 "Deposito " PROMPT 2 13 "Tipo doc.car. "
FLAGS "U" USE %TIP
USE MAG SELECT CODTAB[4,5]!="" INPUT CODTAB F_TIPODOCCAR
INPUT CODTAB[1,3] F_MAG DISPLAY "Codice" CODTAB
INPUT CODTAB[4,5] F_DEP DISPLAY "Descrizione@50" S0
DISPLAY "Codice " CODTAB OUTPUT F_TIPODOCCAR CODTAB
DISPLAY "Denominazione dep.@50 " S0 OUTPUT F_DESTIPODOCCAR S0
OUTPUT F_MAG CODTAB[1,3] CHECKTYPE NORMAL
OUTPUT F_DEP CODTAB[4,5] FLAG "UG"
CHECKTYPE SEARCH FIELD OR14_TIPCAR
FIELD OR14_DEP END
END
STRING F_DESTIPODOCCAR 50
STRING F_DESDEP 50 BEGIN
BEGIN PROMPT 29 13 ""
PROMPT 29 16 "" USE %TIP KEY 2
USE MAG KEY 2 SELECT CODTAB[4,5]!="" INPUT S0 F_DESTIPODOCCAR
INPUT S0 F_DESDEP DISPLAY "Descrizione@50" S0
COPY DISPLAY F_DESMAG DISPLAY "Codice" CODTAB
OUTPUT F_DEP CODTAB[4,5] COPY OUTPUT F_TIPODOCCAR
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_DASTATO 1 STRING F_STATOEVASO 1
BEGIN BEGIN
PROMPT 2 18 "Dallo stato " PROMPT 2 13 "Tipo doc.car. "
USE %STD PROMPT 2 14 "Stato ord. ev. "
INPUT CODTAB F_DASTATO USE %STD
DISPLAY "Codice" CODTAB INPUT CODTAB F_STATOEVASO
DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB
OUTPUT F_DASTATO CODTAB DISPLAY "Descrizione@50" S0
CHECKTYPE NORMAL OUTPUT F_STATOEVASO CODTAB
FIELD OR14_DASTATO CHECKTYPE NORMAL
END FIELD OR14_STATOEVASO
END
STRING F_ASTATO 1
BEGIN STRING F_STATOINI 1
PROMPT 29 18 "Allo stato " BEGIN
COPY USE F_DASTATO PROMPT 52 14 "Stato ordine iniziale "
INPUT CODTAB F_ASTATO USE %STD
COPY DISPLAY F_DASTATO INPUT CODTAB F_STATOINI
OUTPUT F_ASTATO CODTAB DISPLAY "Codice" CODTAB
CHECKTYPE NORMAL DISPLAY "Descrizione@50" S0
FIELD OR14_ASTATO OUTPUT F_STATOINI CODTAB
END CHECKTYPE NORMAL
FIELD OR14_STATOINI
ENDPAGE END
ENDMASK STRING F_MAG 3
BEGIN
PROMPT 2 15 "Magazzino "
FLAGS "UG"
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAG
DISPLAY "Codice " CODTAB[1,3]
DISPLAY "Denominazione mag.@50 " S0
OUTPUT F_MAG CODTAB[1,3]
OUTPUT F_DESMAG S0
CHECKTYPE NORMAL
FIELD OR14_MAG
END
STRING F_DESMAG 50
BEGIN
PROMPT 29 15 ""
USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAG
DISPLAY "Denominazione magazzino@50" S0
DISPLAY "Cod. magazzino" CODTAB[1,3]
DISPLAY "Cod. deposito" CODTAB[4,5]
COPY OUTPUT F_MAG
CHECKTYPE SEARCH
END
STRING F_DEP 2
BEGIN
PROMPT 2 16 "Deposito "
FLAGS "U"
USE MAG SELECT CODTAB[4,5]!=""
INPUT CODTAB[1,3] F_MAG
INPUT CODTAB[4,5] F_DEP
DISPLAY "Codice " CODTAB
DISPLAY "Denominazione dep.@50 " S0
OUTPUT F_MAG CODTAB[1,3]
OUTPUT F_DEP CODTAB[4,5]
CHECKTYPE SEARCH
FIELD OR14_DEP
END
STRING F_DESDEP 50
BEGIN
PROMPT 29 16 ""
USE MAG KEY 2 SELECT CODTAB[4,5]!=""
INPUT S0 F_DESDEP
COPY DISPLAY F_DESMAG
OUTPUT F_DEP CODTAB[4,5]
CHECKTYPE SEARCH
END
STRING F_DASTATO 1
BEGIN
PROMPT 2 18 "Dallo stato "
USE %STD
INPUT CODTAB F_DASTATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DASTATO CODTAB
CHECKTYPE NORMAL
FIELD OR14_DASTATO
END
STRING F_ASTATO 1
BEGIN
PROMPT 29 18 "Allo stato "
COPY USE F_DASTATO
INPUT CODTAB F_ASTATO
COPY DISPLAY F_DASTATO
OUTPUT F_ASTATO CODTAB
CHECKTYPE NORMAL
FIELD OR14_ASTATO
END
ENDPAGE
ENDMASK

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff