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;
switch(n)
{
case 0:
ps0430100(argc, argv); break; //Correlazioni articoli utenti
case 1:
ps0430200(argc, argv); break; //Configurazione campi per utente
case 2:
ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
default:
ps0430100(argc, argv); break;
case 0: ps0430100(argc, argv); break; //Correlazioni articoli utenti
case 1: ps0430200(argc, argv); break; //Configurazione campi per utente
//case 2: ps0430300(argc, argv); break; //generazione ordini (è or1400 per il cigno)
default: ps0430100(argc, argv); break;
}
exit(0);
return 0;
}

View File

@ -18,22 +18,197 @@
class TArt_mask : public TAutomask
{
TString _query;
TISAM_recordset _recset;
bool _filter_changed;
virtual void next_page(int p);
public:
void update_sheet();
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TArt_mask() : TAutomask("ps0430100a") {}
~TArt_mask() {}
TArt_mask();
};
TArt_mask::TArt_mask() : TAutomask("ps0430100a"), _recset("USE ANAMAG")
{
TConfig c(CONFIG_DITTA);
TSheet_field & sh = sfield(F_ARTICLES);
TMask & sh_mask = sh.sheet_mask();
TString80 prompt;
for (int i = 1; i <= 10; i++)
{
const int col = sh.cid2index(F_USER1 + i -1);
TEditable_field & f = sh_mask.efield(F_USER1 + i - 1);
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
{
prompt = c.get("PROMPT_USER", "ve", i);
prompt.rpad(20);
f.set_prompt(prompt);
sh.set_column_header(col, prompt);
}
else
{
f.hide();
sh.delete_column(col);
}
}
}
void TArt_mask::update_sheet()
{
const bool active_only = get_bool(F_ACTIVEONLY);
TSheet_field& sf = sfield(F_ARTICLES);
TString query("USE ANAMAG KEY ");
TString select;
TLocalisamfile multirel(LF_MULTIREL);
const TString user(get(F_USER));
const TString & codart = get(F_SCODART);
if (codart.full())
select << "(UPPER(" << ANAMAG_CODART << ")?=UPPER(\"" << codart << "\"))";
const TString & desart = get(F_SDESART);
if (desart.full())
{
if (select.full())
select << "&&";
select << "(UPPER(" << ANAMAG_DESCR << ")?=UPPER(\"" << desart << "\"))";
}
const TString & desagg = get(F_SDESAGG);
if (desagg.full())
{
if (select.full())
select << "&&";
select << "(UPPER(" << ANAMAG_DESCRAGG << ")?=UPPER(\"" << desagg << "\"))";
}
const TString & codforn = get(F_SCODFOR);
if (codforn.full())
{
if (select.full())
select << "&&";
select << "(" << ANAMAG_CODFORN << "==\"" << codforn << "\")";
}
const TString & ragsoc = get(F_SRAGSOC);
if (ragsoc.full())
{
if (select.full())
select << "&&";
select << "(UPPER(CLIFO.RAGSOC)?=UPPER(\"" << ragsoc << "\"))";
}
TString16 grmerc(get(F_GRMERC));
if (grmerc.full())
query << '3';
else
query << '1';
if (select.full())
query << "\nSELECT " << select;
grmerc.left_just(3);
grmerc << get(F_SGRMERC);
grmerc.trim();
if (grmerc.full())
query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\nFROM GRMERC=#GRMERC\nTO GRMERC=#GRMERC";
else
query << "\nJOIN CLIFO INTO TIPOCF==\"F\" CODCF==CODFORN\n";
_recset.set(query);
TVariant var ;
var = grmerc;
_recset.set_var("#GRMERC", var);
int i = 0;
sf.destroy();
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
{
const TString& codart = _recset.get(ANAMAG_CODART).as_string();
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
multirel.put(MULTI_SECOND, codart);
const bool act = multirel.read(_isequal) == NOERR;
if (active_only && !act)
continue;
TToken_string & row = sf.row(i++);
row.add(codart, sf.cid2index(F_CODART));
row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR));
row.add(act ? "X" : " ", sf.cid2index(F_ATTIVO));
row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN));
row.add(_recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(F_RAGSOC));
row.add(_recset.get(ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
row.add(_recset.get(ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
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));
row.add(_recset.get(ANAMAG_VALSTATUN).as_string(), sf.cid2index(F_VALSTATUN));
row.add(_recset.get(ANAMAG_ULTCOS1).as_string(), sf.cid2index(F_ULTCOS1));
row.add(_recset.get(ANAMAG_USER1).as_string(), sf.cid2index(F_USER1));
row.add(_recset.get(ANAMAG_USER2).as_string(), sf.cid2index(F_USER2));
row.add(_recset.get(ANAMAG_USER3).as_string(), sf.cid2index(F_USER3));
row.add(_recset.get(ANAMAG_USER4).as_string(), sf.cid2index(F_USER4));
row.add(_recset.get(ANAMAG_USER5).as_string(), sf.cid2index(F_USER5));
row.add(_recset.get(ANAMAG_USER6).as_string(), sf.cid2index(F_USER6));
row.add(_recset.get(ANAMAG_USER7).as_string(), sf.cid2index(F_USER7));
row.add(_recset.get(ANAMAG_USER8).as_string(), sf.cid2index(F_USER8));
row.add(_recset.get(ANAMAG_USER9).as_string(), sf.cid2index(F_USER9));
row.add(_recset.get(ANAMAG_USER10).as_string(), sf.cid2index(F_USER10));
}
}
void TArt_mask::next_page(int p)
{
TAutomask::next_page(p);
if (_filter_changed)
{
TSheet_field & sf = sfield(F_ARTICLES);
if (curr_win() == sf.parent())
{
update_sheet();
sf.force_update();
_filter_changed = false;
}
}
}
bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_GRMERC:
case F_SGRMERC:
case F_SCODART:
case F_SDESART:
case F_SDESAGG:
case F_SCODFOR:
case F_SRAGSOC:
if (e == fe_modify)
_filter_changed = true;
break;
case F_SET:
if (e == fe_button)
{
TSheet_field & sf = sfield(F_ARTICLES);
const long items = sf.items();
TSheet_field& sf = sfield(F_ARTICLES);
const int items = sf.items();
bool select = true;
const int cid = sf.cid2index(F_ATTIVO);
int i ;
@ -48,19 +223,14 @@ bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
sf.force_update();
}
break;
case F_RESET:
if (e == fe_button)
case F_ACTIVEONLY:
if (e == fe_modify)
{
TSheet_field & sf = sfield(F_ARTICLES);
const long items = sf.items();
for (int i = 0; i < items; i++)
{
TToken_string & row = sf.row(i);
row.add(" ", sf.cid2index(F_ATTIVO));
}
sf.force_update();
if (!field(F_USER).empty())
{
update_sheet();
sfield(F_ARTICLES).force_update();
}
}
break;
default:
@ -71,7 +241,6 @@ bool TArt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
class TRelArticoli_multirel_app : public TMultirel_application
{
TISAM_recordset _recset;
TArt_mask * _mask;
protected:
@ -92,7 +261,7 @@ public:
virtual const char * extra_modules() const {return "ba";}
TRelArticoli_multirel_app() : _recset("USE ANAMAG KEY 1") {}
TRelArticoli_multirel_app() {}
virtual ~TRelArticoli_multirel_app() {}
};
@ -110,11 +279,6 @@ bool TRelArticoli_multirel_app::user_create()
bool TRelArticoli_multirel_app::user_destroy()
{
/* prefix().close_closeable_isamfiles();
TSystemisamfile multirel(LF_MULTIREL);
multirel.pack(); */
delete _mask;
return true;
}
@ -122,47 +286,22 @@ bool TRelArticoli_multirel_app::user_destroy()
int TRelArticoli_multirel_app::read(TMask& m)
{
const TRectype & curr = get_relation()->lfile().curr();
TSheet_field & sf = m.sfield(F_ARTICLES);
TLocalisamfile multirel(LF_MULTIREL);
const TString user(m.get(F_USER));
int i = 0;
TArt_mask & mask = (TArt_mask &) m;
sf.destroy();
for (bool ok = _recset.move_first(); ok; ok = _recset.move_next())
{
TToken_string & row = sf.row(i++);
const TString & codart = _recset.get(ANAMAG_CODART).as_string();
row.add(codart, sf.cid2index(F_CODART));
row.add(_recset.get(ANAMAG_DESCR).as_string(), sf.cid2index(F_DESCR));
row.add(_recset.get(ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
row.add(_recset.get(ANAMAG_CODFORN).as_string(), sf.cid2index(F_CODFORN));
TToken_string key; key.format("F|%ld", _recset.get(ANAMAG_CODFORN).as_int());
row.add(cache().get(LF_CLIFO, key, "RAGSOC"), sf.cid2index(F_RAGSOC));
multirel.put(MULTI_COD, FILE_KEY);
multirel.put(MULTI_FIRST, user);
multirel.put(MULTI_SECOND, codart);
if (multirel.read(_isequal) == NOERR)
row.add("X", sf.cid2index(F_ATTIVO));
else
row.add(" ", sf.cid2index(F_ATTIVO));
}
return NOERR;
mask.update_sheet();
return NOERR;
}
int TRelArticoli_multirel_app::rewrite(const TMask& m)
{
int err = NOERR;
TSheet_field & sf = m.sfield(F_ARTICLES);
int i = 0;
TLocalisamfile multirel(LF_MULTIREL);
const TString user(m.get(F_USER));
for (bool ok = _recset.move_first(); err == NOERR && ok; ok = _recset.move_next())
for (int i = 0; i < sf.items(); i++)
{
TToken_string & row = sf.row(i++);
TToken_string & row = sf.row(i);
bool selected = *row.get(sf.cid2index(F_ATTIVO)) > ' ';
multirel.zero();

View File

@ -6,11 +6,38 @@
#define F_DUSER 152
#define F_ARTICLES 153
#define F_SET 154
#define F_RESET 155
#define F_ACTIVEONLY 155
#define F_GRMERC 156
#define F_DGRMERC 157
#define F_SGRMERC 158
#define F_DSGRMERC 159
#define F_SCODART 160
#define F_SDESART 161
#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_DESCRAGG 104
#define F_CODFORN 105
#define F_RAGSOC 106
#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

@ -33,9 +33,8 @@ END
STRING F_USER 8
BEGIN
PROMPT 4 2 "Utente "
PROMPT 4 0 "Utente "
FLAGS "U"
// FIELD FIRST
KEY 1
USE LF_USER SELECT ISGROUP!="X"
INPUT USERNAME F_USER
@ -50,24 +49,132 @@ END
STRING F_DUSER 50
BEGIN
PROMPT 25 2 ""
PROMPT 25 0 ""
FLAGS "D"
END
SPREADSHEET F_ARTICLES 85 -3
BOOLEAN F_ACTIVEONLY
BEGIN
PROMPT 1 4 "Articoli"
ITEM "Codice@20"
ITEM "Descrizione@45"
ITEM "Attivo"
ITEM "Descrizione fornitore@45"
ITEM "Codice Fonitore"
ITEM "Ragione sociale@45"
PROMPT 4 1 "Mostrare solo gli articoli attivi"
END
BUTTON F_SET 10 2
BEGIN
PROMPT -11 -1 "~Tutti"
PROMPT -1 0 "~Tutti"
END
SPREADSHEET F_ARTICLES
BEGIN
PROMPT 1 2 "Articoli"
ITEM "Codice@20"
ITEM "Descrizione@45"
ITEM "Attivo"
ITEM "Fornit."
ITEM "Ragione sociale@45"
ITEM "Lead\ntime@5"
ITEM "Lotto minimo\ndi riordino@10"
ITEM "Descrizione aggiuntiva@50"
ITEM "Q.tà per unità\ndi vendita@15"
ITEM "Prezzo unitario@15"
ITEM "Prezzo unità\ndi vendita@15"
ITEM "Campo Aggiuntivo 1@15"
ITEM "Campo Aggiuntivo 2@15"
ITEM "Campo Aggiuntivo 3@15"
ITEM "Campo Aggiuntivo 4@15"
ITEM "Campo Aggiuntivo 5@15"
ITEM "Campo Aggiuntivo 6@15"
ITEM "Campo Aggiuntivo 7@15"
ITEM "Campo Aggiuntivo 8@15"
ITEM "Campo Aggiuntivo 9@15"
ITEM "Campo Aggiuntivo 10@15"
END
ENDPAGE
PAGE "Filtri" -1 -1 80 20
STRING F_GRMERC 3
BEGIN
PROMPT 2 4 "Gruppo merceologico "
FLAG "U"
USE GMC KEY 1 SELECT CODTAB[4,5]==""
INPUT CODTAB F_GRMERC
DISPLAY "Codice" CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_GRMERC CODTAB[1,3]
OUTPUT F_DGRMERC S0
CHECKTYPE SEARCH
FIELD OR14_GRM
END
STRING F_DGRMERC 50 35
BEGIN
PROMPT 35 4 ""
USE GMC KEY 2 SELECT CODTAB[4,5]==""
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
@ -93,24 +200,138 @@ BEGIN
PROMPT 2 4 "Attivo per questo utente"
END
STRING F_DESCRAGG 50 45
NUMBER F_CODFORN 6
BEGIN
PROMPT 2 6 " "
FLAGS "D"
END
NUMBER F_CODFORN 6
STRING F_RAGSOC 50 45
BEGIN
PROMPT 2 8 " "
FLAGS "D"
END
STRING F_RAGSOC 50 45
NUMBER F_LEADTIME 5
BEGIN
PROMPT 2 10 " "
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

View File

@ -1,10 +1,13 @@
#include <applicat.h>
#include <automask.h>
#include <relation.h>
#include <defmask.h>
#include <msksheet.h>
#include <mask.h>
#include <recarray.h>
#include <recset.h>
#include <tabapp.h>
#include <multirel.h>
#include "../mg/anamag.h"
#include "ps0430200a.h"
///////////////////////////////////////////////////////////
@ -13,58 +16,51 @@
class TUser_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
bool get_user_ini(TFilename& name) const;
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();
name.add("config");
name.add(get(F_USER));
name.ext("ini");
return name.exist();
}
bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_USER:
if (e == fe_modify)
{
const char* const defpar = "or";
TFilename inipath; get_user_ini(inipath);
TConfig userconf(inipath, defpar);
for (int i = o.mask().fields()-1; i >= 0; i--)
case F_USER:
if (e == fe_modify)
{
TMask_field& f = o.mask().fld(i);
const TFieldref* fr = f.field();
const TString& new_user = o.get();
const TString16 old_user = user();
user() = new_user;
const char* defpar = "or";
TConfig userconf(CONFIG_USER, defpar);
if (fr != NULL)
for (int i = o.mask().fields()-1; i >= 0; i--)
{
f.set(fr->read(userconf, defpar));
f.check();
TMask_field& f = o.mask().fld(i);
const TFieldref* fr = f.field();
if (fr != NULL)
f.set(fr->read(userconf, defpar));
}
user() = old_user;
}
}
break;
default:
break;
break;
default:
break;
}
return true;
}
class TUser_set_app : public TSkeleton_application
{
protected:
public:
virtual const char * extra_modules() const {return "ba";}
virtual void main_loop();
TUser_set_app() {}
virtual ~TUser_set_app() {}
};
void TUser_set_app::main_loop()
@ -73,17 +69,20 @@ void TUser_set_app::main_loop()
while (mask.run() == K_ENTER)
{
const char* const defpar = "or";
TFilename inipath; mask.get_user_ini(inipath);
TConfig userconf(inipath, defpar);
const TString& new_user = mask.get(F_USER);
const TString16 old_user = user();
user() = new_user;
const char* defpar = "or";
TConfig userconf(CONFIG_USER, defpar);
for (int i = mask.fields()-1; i >= 0; i--)
{
const TMask_field& f = mask.fld(i);
TMask_field& f = mask.fld(i);
const TFieldref* fr = f.field();
if (fr != NULL)
fr->write(userconf, defpar, f.get());
}
user() = old_user;
mask.reset();
}
}

View File

@ -21,4 +21,11 @@
#define F_FSCT 119
#define F_DASTATO 120
#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

@ -68,7 +68,7 @@ END
STRING F_SGRMERC 2
BEGIN
PROMPT 2 6 "Sottogr.merc ."
PROMPT 2 5 "Sottogr.merc. "
FLAG "U"
USE GMC
INPUT CODTAB[1,3] F_GRMERC
@ -84,7 +84,7 @@ END
STRING F_DSGRMERC 50
BEGIN
PROMPT 29 6 ""
PROMPT 29 5 ""
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
INPUT S0 F_DSGRMERC
DISPLAY "Descrizione@50" S0
@ -95,7 +95,7 @@ END
STRING F_CDCT 20
BEGIN
PROMPT 2 8 "CDC/Commessa "
PROMPT 2 7 "CDC/Commessa "
FLAGS "UZ"
USE CMS
INPUT CODTAB F_CDCT
@ -108,7 +108,7 @@ END
STRING F_FSCT 10
BEGIN
PROMPT 45 8 "Fase "
PROMPT 45 7 "Fase "
FLAGS "UZ"
USE FSC
INPUT CODTAB F_FSCT
@ -121,7 +121,7 @@ END
STRING F_CODNUM 4
BEGIN
PROMPT 2 10 "Numerazione "
PROMPT 2 9 "Numerazione "
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
@ -135,7 +135,7 @@ END
STRING F_DESNUM 50
BEGIN
PROMPT 29 10 ""
PROMPT 29 9 ""
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
@ -146,7 +146,7 @@ END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 12 "Tipo "
PROMPT 2 10 "Tipo "
USE %TIP
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
@ -160,18 +160,94 @@ END
STRING F_DESTIPODOC 50
BEGIN
PROMPT 29 12 ""
PROMPT 29 10 ""
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC
CHECKTYPE SEARCH
CHECKTYPE SEARCH
END
STRING F_CODNUMCAR 4
BEGIN
PROMPT 2 12 "Num.doc.carico "
USE %NUM
INPUT CODTAB F_CODNUMCAR
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUMCAR CODTAB
OUTPUT F_DESNUMCAR S0
FLAG "UG"
CHECKTYPE NORMAL
FIELD OR14_NUMCAR
END
STRING F_DESNUMCAR 50
BEGIN
PROMPT 29 12 ""
USE %NUM KEY 2
INPUT S0 F_DESNUMCAR
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUMCAR
CHECKTYPE SEARCH
END
STRING F_TIPODOCCAR 4
BEGIN
PROMPT 2 13 "Tipo doc.car. "
USE %TIP
INPUT CODTAB F_TIPODOCCAR
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOCCAR CODTAB
OUTPUT F_DESTIPODOCCAR S0
CHECKTYPE NORMAL
FLAG "UG"
FIELD OR14_TIPCAR
END
STRING F_DESTIPODOCCAR 50
BEGIN
PROMPT 29 13 ""
USE %TIP KEY 2
INPUT S0 F_DESTIPODOCCAR
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOCCAR
CHECKTYPE SEARCH
END
STRING F_STATOEVASO 1
BEGIN
PROMPT 2 13 "Tipo doc.car. "
PROMPT 2 14 "Stato ord. ev. "
USE %STD
INPUT CODTAB F_STATOEVASO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_STATOEVASO CODTAB
CHECKTYPE NORMAL
FIELD OR14_STATOEVASO
END
STRING F_STATOINI 1
BEGIN
PROMPT 52 14 "Stato ordine iniziale "
USE %STD
INPUT CODTAB F_STATOINI
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_STATOINI CODTAB
CHECKTYPE NORMAL
FIELD OR14_STATOINI
END
STRING F_MAG 3
BEGIN
PROMPT 2 14 "Magazzino "
PROMPT 2 15 "Magazzino "
FLAGS "UG"
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAG
@ -185,7 +261,7 @@ END
STRING F_DESMAG 50
BEGIN
PROMPT 29 14 ""
PROMPT 29 15 ""
USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAG
DISPLAY "Denominazione magazzino@50" S0
@ -197,7 +273,7 @@ END
STRING F_DEP 2
BEGIN
PROMPT 2 16 "Deposito "
PROMPT 2 16 "Deposito "
FLAGS "U"
USE MAG SELECT CODTAB[4,5]!=""
INPUT CODTAB[1,3] F_MAG
@ -222,7 +298,7 @@ END
STRING F_DASTATO 1
BEGIN
PROMPT 2 18 "Dallo stato "
PROMPT 2 18 "Dallo stato "
USE %STD
INPUT CODTAB F_DASTATO
DISPLAY "Codice" CODTAB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff