Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@22356 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2011-06-30 14:47:09 +00:00
parent c88a888656
commit e686e0b051
3 changed files with 188 additions and 166 deletions

View File

@ -7,6 +7,7 @@
#include <progind.h>
#include <reprint.h>
#include <utility.h>
#include <xvtility.h>
#include "../or/orlib.h"
#include "../cg/cglib01.h"
@ -94,13 +95,14 @@ class TGenera_ordini_mask : public TAutomask
TString _doc_filter;
int _days_interval;
int _riga_da_selezionare;
short _campo_da_selezionare;
bool _filter_changed, _order_changed;
private:
void serialize(bool bSave);
void load_user_defs();
void update_sheet();
void update_orders();
void update_documents();
void reconstruction(const TDocumento& doc2delete);
protected:
@ -132,12 +134,12 @@ public:
void generate_orders();
void generate_carics();
void generate_docs_head(const char type, const TSheet_field& sf,
long& minforn, long& maxforn, TAssoc_array& orders);
long& minforn, long& maxforn, TAssoc_array& documents);
void generate_caric_row(const TSheet_field& sf, TToken_string* row, const real qta,
TDocumento* d,TRiga_documento& rdoc, TLocalisamfile& righedoc);
void generate_order_row(const TSheet_field& sf, TToken_string* row, const real qta,
TDocumento* d, TRiga_documento& rdoc, const TRectype& forn, const TRectype& fornven);
void write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& orders);
void write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& documents);
virtual bool create();
virtual void main_loop();
@ -273,34 +275,34 @@ void TGenera_ordini_mask::update_sheet()
TToken_string & row = sf.row(i);
const TString & codart = recset.get(LF_ANAMAG, ANAMAG_CODART).as_string();
row.add(codart, sf.cid2index(SO_CODART));
row.add(codart, sf.cid2index(SA_CODART));
art.read(codart);
const real giac = art.giacenza_anno(codmag, "", anno);
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SO_DESCR));
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SO_UM));
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SA_DESCR));
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SA_UM));
const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int();
row.add(codforn, sf.cid2index(SO_FORNITORE));
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SO_RAGSOC));
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SO_LEADTIME));
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(SO_LOTTOMIN));
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SO_DESCRAGG));
row.add(giac.string(), sf.cid2index(SO_GIACENZA));
row.add(codforn, sf.cid2index(SA_FORNITORE));
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SA_RAGSOC));
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SA_LEADTIME));
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(SA_LOTTOMIN));
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SA_DESCRAGG));
row.add(giac.string(), sf.cid2index(SA_GIACENZA));
row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(SO_PPCONF));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SO_USER1));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(SO_USER2));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(SO_USER3));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(SO_USER4));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(SO_USER5));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(SO_USER6));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(SO_USER7));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(SO_USER8));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(SO_USER9));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SO_USER10));
row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(SA_PPCONF));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SA_USER1));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(SA_USER2));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(SA_USER3));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(SA_USER4));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(SA_USER5));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(SA_USER6));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(SA_USER7));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(SA_USER8));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(SA_USER9));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SA_USER10));
const real disp = art.disponibilita(codes, get(F_MAG), NULL);
row.add(disp.string(), sf.cid2index(SO_DISPON));
row.add(disp.string(), sf.cid2index(SA_DISPON));
sf.check_row(i);
if (check_expr)
{
@ -326,12 +328,12 @@ void TGenera_ordini_mask::update_sheet()
sf.force_update();
}
void TGenera_ordini_mask::update_orders()
void TGenera_ordini_mask::update_documents()
{
_order_changed = false;
TWait_cursor hourglass;
TSheet_field& sh = sfield(F_ORDERS);
TSheet_field& sh = sfield(F_DOCUMENTS);
sh.destroy();
TString query;
@ -395,9 +397,9 @@ void TGenera_ordini_mask::next_page(int p)
}
if (_order_changed)
{
const TSheet_field& sf = sfield(F_ORDERS);
const TSheet_field& sf = sfield(F_DOCUMENTS);
if (win() == sf.parent())
update_orders();
update_documents();
}
}
@ -409,19 +411,19 @@ bool TGenera_ordini_mask::on_sheet_event(TOperable_field& o, TField_event e, lon
case se_query_del:
case se_query_add:
return false;
case fe_init:
if (o.dlg() == F_ARTICLES)
update_sheet();
else
update_orders();
update_documents();
break;
//gestione automatica immissione qta per articolo (con terminalino)
case se_notify_modify:
if (o.dlg() == F_ARTICLES)
{
TEdit_field& cc = efield(F_CAZ_CODART);
cc.reset();
cc.set_focus();
_campo_da_selezionare = F_CAZ_CODART;
}
break;
@ -512,7 +514,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
case F_DASTATO:
case F_ASTATO:
if (e == fe_modify)
update_orders();
update_documents();
break;
case F_CAZ_CODART: //ricerca riga da codart in testa alla maschera
@ -618,7 +620,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
capp().print_doc(c->curr());
update_sheet();
update_orders();
update_documents();
}
ok = false; // Non uscire
}
@ -666,7 +668,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
doc.remove();
}
update_sheet();
update_orders();
update_documents();
}
ok = false; // Non uscire
}
@ -675,7 +677,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
if (e == fe_button && jolly == 0)
{
capp().generate_orders();
update_orders();
update_documents();
update_sheet();
ok = false;
}
@ -684,7 +686,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
if (e == fe_button && jolly == 0)
{
capp().generate_carics();
update_orders();
update_documents();
update_sheet();
ok = false;
}
@ -740,12 +742,23 @@ void TGenera_ordini_mask::on_idle()
TAutomask::on_idle();
if (_riga_da_selezionare >= 0)
{
TString msg;
msg << "Vado alla riga " << _riga_da_selezionare;
xvtil_statbar_set(msg);
//si posiziona sulla qta
TSheet_field& sf_righe = sfield(F_ARTICLES);
const int column = sf_righe.cid2index(SO_QTA);
sf_righe.select(_riga_da_selezionare, column, true);
_riga_da_selezionare = -1;
sf_righe.set_focus();
sf_righe.select(_riga_da_selezionare, true);
_riga_da_selezionare = -1;
}
//si riposiziona sul campo selezionatore resettandolo in modo da perdere il precedente articolo
if (_campo_da_selezionare > 0)
{
TEdit_field& cc = efield(_campo_da_selezionare);
_campo_da_selezionare = -1;
cc.reset();
cc.set_focus();
}
}
@ -780,8 +793,8 @@ TGenera_ordini_mask::TGenera_ordini_mask()
for (int i = 1; i <= 10; i++)
{
const int col = sh.cid2index(SO_USER1 + i -1);
TEditable_field & f = sh_mask.efield(SO_USER1 + i - 1);
const int col = sh.cid2index(SA_USER1 + i -1);
TEditable_field & f = sh_mask.efield(SA_USER1 + i - 1);
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
{
@ -799,6 +812,7 @@ TGenera_ordini_mask::TGenera_ordini_mask()
//resetta l'indicatore di riga da selezionare
_riga_da_selezionare = -1;
_campo_da_selezionare = -1;
}
TGenera_ordini_mask::~TGenera_ordini_mask()
@ -835,28 +849,30 @@ void TCreazione_ordini::print()
{
_mask->field(DLG_PRINT).on_hit();
}
void TCreazione_ordini::print_doc(const TRectype & doc)
{
const TTipo_documento tipo(doc.get(DOC_TIPODOC));
TFilename rep; tipo.main_print_profile(rep, 0);
rep.ext("rep");
TString commandline;
if (rep.custom_path()) // Esiste il nuovo report :-)
commandline = "ve1 -2";
else // Esiste il vecchio form :-(
commandline = "ve1 -0";
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
commandline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
commandline << " D";
TFilename rep;
tipo.main_print_profile(rep, 0);
TString cmdline;
if (rep.ends_with("rep", true)) // Esiste il nuovo report :-)
cmdline = "ve1 -2";
else // Esiste il vecchio form :-(
cmdline = "ve1 -0";
cmdline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
cmdline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
cmdline << " D";
const int ncopie = tipo.ncopie();
if (ncopie > 0)
commandline << ' ' << ncopie;
cmdline << ' ' << ncopie;
TExternal_app interattivo( commandline );
TExternal_app interattivo( cmdline );
interattivo.run();
}
@ -922,7 +938,7 @@ void TCreazione_ordini::generate_caric_row(const TSheet_field& sf, TToken_string
void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string* row, const real qta,
TDocumento* d, TRiga_documento& rdoc, const TRectype& forn, const TRectype& fornven)
{
const TString codart = row->get(sf.cid2index(SO_CODART));
const TString codart = row->get(sf.cid2index(SA_CODART));
TString8 codmag = _mask->get(F_MAG);
codmag.right_just(3);
@ -939,19 +955,19 @@ void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string
rdoc.put(RDOC_CODART, codart);
rdoc.put(RDOC_CODARTMAG, codart);
rdoc.put(RDOC_CHECKED, "X");
rdoc.put(RDOC_DESCR, row->get(sf.cid2index(SO_DESCR)));
rdoc.put(RDOC_DESCR, row->get(sf.cid2index(SA_DESCR)));
const TString descr_agg = row->get(sf.cid2index(SO_DESCRAGG));
const TString descr_agg = row->get(sf.cid2index(SA_DESCRAGG));
if (descr_agg.full())
{
rdoc.put(RDOC_DESCLUNGA, "X");
rdoc.put(RDOC_DESCEST, descr_agg);
}
rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(SO_UM)));
rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(SA_UM)));
rdoc.put(RDOC_QTA, qta);
const TDate datacons(row->get(sf.cid2index(SO_DATACONS)));
const TDate datacons(row->get(sf.cid2index(SA_DATACONS)));
rdoc.put(RDOC_DATACONS, datacons);
const TRectype& articolo = cache().get(LF_ANAMAG, codart);
@ -971,23 +987,24 @@ void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string
else
rdoc.put(RDOC_CODIVA, articolo.get(ANAMAG_CODIVA));
const TString commessa = row->get(sf.cid2index(SO_CDC));
const TString fase = row->get(sf.cid2index(SO_FSC));
const TString commessa = row->get(sf.cid2index(SA_CDC));
const TString fase = row->get(sf.cid2index(SA_FSC));
rdoc.put(RDOC_CODCMS, commessa);
rdoc.put(RDOC_FASCMS, fase);
for (int i = 0; i < 10 ; i++)
if (_userfld.row(i).full())
rdoc.put(_userfld.row(i), _mask->get(SO_USER1 + i));
rdoc.put(_userfld.row(i), _mask->get(SA_USER1 + i));
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SO_CODAGG1)));
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SO_CODAGG2)));
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SA_CODAGG1)));
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SA_CODAGG2)));
}
//genera la testata del documento di 'C'arico o dell''O'rdine
//genera la testata del documento di 'C'arico o dell''O'rdine e chiama i metodi per creare le righe..
//..di entrambi
void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field& sf,
long& minforn, long& maxforn, TAssoc_array& orders)
long& minforn, long& maxforn, TAssoc_array& documents)
{
TString msg;
TString4 codnum, tipodoc;
@ -1049,9 +1066,9 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
}
else
{
qta = row->get(sf.cid2index(SO_QTA));
codforn = row->get(sf.cid2index(SO_FORNITORE));
datacons = row->get(sf.cid2index(SO_DATACONS));
qta = row->get(sf.cid2index(SA_QTA));
codforn = row->get(sf.cid2index(SA_FORNITORE));
datacons = row->get(sf.cid2index(SA_DATACONS));
}
if (!qta.is_zero())
@ -1063,7 +1080,7 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
//..e cfven collegato
const TRectype& forven = cache().get(LF_CFVEN, key);
TDocumento* d = (TDocumento*)orders.objptr(codforn);
TDocumento* d = (TDocumento*)documents.objptr(codforn);
if (d == NULL)
{
//il documento va creato
@ -1106,7 +1123,7 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
const TString& causmag = tipo.caus_mov();
d->put(DOC_CAUSMAG, causmag);
orders.add(codforn, d);
documents.add(codforn, d);
if (cod < minforn)
minforn = cod;
if (cod > maxforn)
@ -1129,7 +1146,9 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
}
void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& orders)
//salva i documenti generati
void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& documents)
{
TString msg;
switch (tipo)
@ -1139,7 +1158,7 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
default: break;
}
TProgind pi(orders.items(), msg, true, true);
TProgind pi(documents.items(), msg, true, true);
TString cmdline;
int cnt = 0;
TString8 key;
@ -1147,7 +1166,7 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
for (long cod = minforn; cod <= maxforn; cod++)
{
key.format("%ld", cod);
TDocumento* d = (TDocumento*)orders.objptr(key);
TDocumento* d = (TDocumento*)documents.objptr(key);
if (d != NULL)
{
if (!pi.addstatus(1))
@ -1189,25 +1208,25 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
void TCreazione_ordini::generate_carics()
{
//TGenera_ordini_mask& mask = *_mask;
TSheet_field& sf = _mask->sfield(F_ORDERS);
TSheet_field& sf = _mask->sfield(F_DOCUMENTS);
long minforn = 999999L;
long maxforn = 0L;
TAssoc_array orders;
TAssoc_array carics;
if (sf.items() > 0)
generate_docs_head('C', sf, minforn, maxforn, orders);
generate_docs_head('C', sf, minforn, maxforn, carics);
if (orders.items() > 0)
write_docs('C', minforn, maxforn, orders);
if (carics.items() > 0)
write_docs('C', minforn, maxforn, carics);
}
//genera gli ordini a partire dalle righe articolo sullo sheet F_ARTICLES
void TCreazione_ordini::generate_orders()
{
TGenera_ordini_mask& mask = *_mask;
TSheet_field& sf = mask.sfield(F_ARTICLES);
TSheet_field& sf = _mask->sfield(F_ARTICLES);
long minforn = 999999L;
long maxforn = 0L;

View File

@ -5,7 +5,9 @@
#define F_SGRMERC 153
#define F_DSGRMERC 154
#define F_SOTTOSCORTA 155
#define F_ARTICLES 156
#define F_CODNUM 157
#define F_DESNUM 158
#define F_TIPODOC 159
@ -38,38 +40,38 @@
#define F_ASTATO 202
#define F_ANNO 203
#define F_DATADOCCAR 204
#define F_ORDERS 210
#define F_DOCUMENTS 210
//campi 'S'heet degli 'O'rdini (SO_)
#define SO_CODART 101
#define SO_DESCR 102
#define SO_UM 103
#define SO_QTA 104
#define SO_DATACONS 105
#define SO_FORNITORE 106
#define SO_RAGSOC 107
#define SO_CDC 108
#define SO_FSC 109
#define SO_CODAGG1 110
#define SO_CODAGG2 111
#define SO_LEADTIME 112
#define SO_LOTTOMIN 113
#define SO_DESCRAGG 114
#define SO_GIACENZA 115
#define SO_PPCONF 116
#define SO_DISPON 117
#define SO_USER1 118
#define SO_USER2 119
#define SO_USER3 120
#define SO_USER4 121
#define SO_USER5 122
#define SO_USER6 123
#define SO_USER7 124
#define SO_USER8 125
#define SO_USER9 126
#define SO_USER10 127
//campi 'S'heet delle righe 'A'rticolo (SA_) (F_ARTICLES) sono le righe degli ordini da generare
#define SA_CODART 101
#define SA_QTA 102
#define SA_DATACONS 103
#define SA_UM 104
#define SA_DESCR 105
#define SA_FORNITORE 106
#define SA_RAGSOC 107
#define SA_CDC 108
#define SA_FSC 109
#define SA_CODAGG1 110
#define SA_CODAGG2 111
#define SA_LEADTIME 112
#define SA_LOTTOMIN 113
#define SA_DESCRAGG 114
#define SA_GIACENZA 115
#define SA_PPCONF 116
#define SA_DISPON 117
#define SA_USER1 118
#define SA_USER2 119
#define SA_USER3 120
#define SA_USER4 121
#define SA_USER5 122
#define SA_USER6 123
#define SA_USER7 124
#define SA_USER8 125
#define SA_USER9 126
#define SA_USER10 127
//campi 'S'heet dei 'D'ocumenti (SD_)
//campi 'S'heet dei 'D'ocumenti (SD_) (F_DOCUMENTS)
#define SD_DATADOC 101
#define SD_NUMDOC 102
#define SD_NUMRIGA 103

View File

@ -64,11 +64,11 @@ END
SPREADSHEET F_ARTICLES
BEGIN
PROMPT 1 3 "Articoli"
ITEM "Codice\nArticolo@15"
ITEM "Codice\nArticolo@15F"
ITEM "Quantità@10F"
ITEM "Data\nConsegna@10F"
ITEM "UM@F"
ITEM "Descrizione@35"
ITEM "UM"
ITEM "Quantità@10"
ITEM "Data\nConsegna@10"
ITEM "Codice\nForn.@6"
ITEM "Ragione sociale@30"
ITEM "Commessa@20"
@ -133,7 +133,7 @@ BEGIN
FLAGS "A"
END
SPREADSHEET 210
SPREADSHEET F_DOCUMENTS
BEGIN
PROMPT 1 2 "Ordini"
ITEM "Data\nDoc.@10"
@ -567,7 +567,7 @@ ENDMASK
//---Maschere di riga degli sheet---//
//---Riga sheet degli ordini SO---//
//---Riga sheet degli articoli SA---//
TOOLBAR "" 0 -2 0 3
BUTTON 1 10 2
@ -584,167 +584,168 @@ ENDPAGE
PAGE "Righe ordine" -1 -1 80 20
STRING SO_CODART 20
STRING SA_CODART 20
BEGIN
PROMPT 1 2 "Articolo "
FLAGS "D"
END
STRING SO_DESCR 50 38
STRING SA_DESCR 50 38
BEGIN
PROMPT 32 2 ""
FLAGS "D"
END
STRING SO_UM 2
STRING SA_UM 2
BEGIN
PROMPT 1 3 "U.M. "
USE LF_UMART KEY 2 SELECT CODART==#SO_CODART
USE LF_UMART KEY 2 SELECT CODART==#SA_CODART
JOIN %UMS INTO CODTAB==UM
INPUT CODART SO_CODART SELECT
INPUT UM SO_UM
INPUT CODART SA_CODART SELECT
INPUT UM SA_UM
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
DISPLAY "F.C.@10" FC
OUTPUT SO_UM UM
OUTPUT SA_UM UM
CHECKTYPE REQUIRED
FLAGS "UG"
END
NUMBER SO_QTA 13 5
NUMBER SA_QTA 13 5
BEGIN
PROMPT 16 3 "Quantità "
END
DATA SO_DATACONS
DATA SA_DATACONS
BEGIN
PROMPT 43 3 "Data di consegna "
WARNING "Indicare la data di consegna"
VALIDATE 12 1 104
END
NUMBER SO_FORNITORE 6
NUMBER SA_FORNITORE 6
BEGIN
PROMPT 1 5 "Fornitore "
FIELD CODCF
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF SO_FORNITORE
INPUT CODCF SA_FORNITORE
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT SO_FORNITORE CODCF
OUTPUT SO_RAGSOC RAGSOC
OUTPUT SA_FORNITORE CODCF
OUTPUT SA_RAGSOC RAGSOC
CHECKTYPE NORMAL
FLAGS "D"
END
STRING SO_RAGSOC 50
STRING SA_RAGSOC 50
BEGIN
FLAGS "D"
PROMPT 20 5 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "F"
INPUT RAGSOC SO_RAGSOC
INPUT RAGSOC SA_RAGSOC
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT SO_FORNITORE
COPY OUTPUT SA_FORNITORE
CHECKTYPE SEARCH
END
//versione 3.2
STRING SO_CDC 20
STRING SA_CDC 20
BEGIN
PROMPT 1 8 "Commessa "
USE CMS
INPUT CODTAB SO_CDC
INPUT CODTAB SA_CDC
DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT SO_CDC CODTAB
OUTPUT SA_CDC CODTAB
CHECKTYPE NORMAL
FLAGS "DUZ"
END
/* Versione 10.0
STRING SO_CDC 20
STRING SA_CDC 20
BEGIN
PROMPT 1 8 "Commessa "
USE LF_COMMESSE
INPUT CODCMS SO_CDC
INPUT CODCMS SA_CDC
DISPLAY "Codice@20" CODCMS
DISPLAY "Descrizione@50" DESCRIZ
OUTPUT SO_CDC CODCMS
OUTPUT SA_CDC CODCMS
CHECKTYPE NORMAL
FLAGS "D"
END*/
//versione 3.2
STRING SO_FSC 10
STRING SA_FSC 10
BEGIN
PROMPT 45 8 "Fase "
USE FSC
INPUT CODTAB SO_FSC
INPUT CODTAB SA_FSC
DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT SO_FSC CODTAB
OUTPUT SA_FSC CODTAB
CHECKTYPE NORMAL
FLAGS "DUZ"
END
/* Versione 10.0 (deve essere legabile alla commessa!!)
STRING SO_FSC 10
STRING SA_FSC 10
BEGIN
PROMPT 45 8 "Fase "
USE LF_FASI
INPUT CODFASE SO_FSC SELECT CODCMSFAS==#SO_CDC
INPUT CODFASE SA_FSC SELECT CODCMSFAS==#SA_CDC
DISPLAY "Codice@20" CODFASE
DISPLAY "Descrizione@50" descriz
OUTPUT SO_FSC CODfase
OUTPUT SA_FSC CODfase
CHECKTYPE NORMAL
FLAGS "DUZ"
END*/
STRING SO_CODAGG1 20
STRING SA_CODAGG1 20
BEGIN
PROMPT 1 7 "Cespite "
FLAGS "D"
END
STRING SO_CODAGG2 20
STRING SA_CODAGG2 20
BEGIN
PROMPT 37 7 "Codice agg.2 "
FLAGS "D"
END
NUMBER SO_LEADTIME 5
NUMBER SA_LEADTIME 5
BEGIN
PROMPT 1 15 "Lead time "
FLAGS "D"
END
NUMBER SO_LOTTOMIN 10 3
NUMBER SA_LOTTOMIN 10 3
BEGIN
PROMPT 19 15 "Lotto "
FLAGS "D"
END
MEMO SO_DESCRAGG 50 4
MEMO SA_DESCRAGG 50 4
BEGIN
PROMPT 1 10 "Descr.aggiuntiva"
FLAGS "D"
END
NUMBER SO_GIACENZA 15 5
NUMBER SA_GIACENZA 15 5
BEGIN
PROMPT 1 17 "Giacenza"
FLAGS "D"
END
NUMBER SO_PPCONF 15
NUMBER SA_PPCONF 15
BEGIN
PROMPT 38 15 "Pezzi per conf. "
FLAGS "D"
END
NUMBER SO_DISPON 15 5
NUMBER SA_DISPON 15 5
BEGIN
PROMPT 39 17 "Disponibilita' "
FLAGS "D"
@ -754,61 +755,61 @@ ENDPAGE
PAGE "Campi Utente" -1 -1 80 20
STRING SO_USER1 20
STRING SA_USER1 20
BEGIN
PROMPT 2 2 "Campo utente 1 "
FLAGS "D"
END
STRING SO_USER2 20
STRING SA_USER2 20
BEGIN
PROMPT 2 4 "Campo utente 2 "
FLAGS "D"
END
STRING SO_USER3 20
STRING SA_USER3 20
BEGIN
PROMPT 2 6 "Campo utente 3 "
FLAGS "D"
END
STRING SO_USER4 20
STRING SA_USER4 20
BEGIN
PROMPT 2 8 "Campo utente 4 "
FLAGS "D"
END
STRING SO_USER5 20
STRING SA_USER5 20
BEGIN
PROMPT 2 10 "Campo utente 5 "
FLAGS "D"
END
STRING SO_USER6 20
STRING SA_USER6 20
BEGIN
PROMPT 2 12 "Campo utente 6 "
FLAGS "D"
END
STRING SO_USER7 20
STRING SA_USER7 20
BEGIN
PROMPT 2 14 "Campo utente 7 "
FLAGS "D"
END
STRING SO_USER8 20
STRING SA_USER8 20
BEGIN
PROMPT 2 16 "Campo utente 8 "
FLAGS "D"
END
STRING SO_USER9 20
STRING SA_USER9 20
BEGIN
PROMPT 2 18 "Campo utente 9 "
FLAGS "D"
END
STRING SO_USER10 20
STRING SA_USER10 20
BEGIN
PROMPT 2 20 "Campo utente 10 "
FLAGS "D"