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 <progind.h>
#include <reprint.h> #include <reprint.h>
#include <utility.h> #include <utility.h>
#include <xvtility.h>
#include "../or/orlib.h" #include "../or/orlib.h"
#include "../cg/cglib01.h" #include "../cg/cglib01.h"
@ -94,13 +95,14 @@ class TGenera_ordini_mask : public TAutomask
TString _doc_filter; TString _doc_filter;
int _days_interval; int _days_interval;
int _riga_da_selezionare; int _riga_da_selezionare;
short _campo_da_selezionare;
bool _filter_changed, _order_changed; bool _filter_changed, _order_changed;
private: private:
void serialize(bool bSave); void serialize(bool bSave);
void load_user_defs(); void load_user_defs();
void update_sheet(); void update_sheet();
void update_orders(); void update_documents();
void reconstruction(const TDocumento& doc2delete); void reconstruction(const TDocumento& doc2delete);
protected: protected:
@ -132,12 +134,12 @@ public:
void generate_orders(); void generate_orders();
void generate_carics(); void generate_carics();
void generate_docs_head(const char type, const TSheet_field& sf, 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, void generate_caric_row(const TSheet_field& sf, TToken_string* row, const real qta,
TDocumento* d,TRiga_documento& rdoc, TLocalisamfile& righedoc); TDocumento* d,TRiga_documento& rdoc, TLocalisamfile& righedoc);
void generate_order_row(const TSheet_field& sf, TToken_string* row, const real qta, 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); 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 bool create();
virtual void main_loop(); virtual void main_loop();
@ -273,34 +275,34 @@ void TGenera_ordini_mask::update_sheet()
TToken_string & row = sf.row(i); TToken_string & row = sf.row(i);
const TString & codart = recset.get(LF_ANAMAG, ANAMAG_CODART).as_string(); 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); art.read(codart);
const real giac = art.giacenza_anno(codmag, "", anno); 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(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SA_DESCR));
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SO_UM)); row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SA_UM));
const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int(); const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int();
row.add(codforn, sf.cid2index(SO_FORNITORE)); row.add(codforn, sf.cid2index(SA_FORNITORE));
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SO_RAGSOC)); row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SA_RAGSOC));
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SO_LEADTIME)); 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(SO_LOTTOMIN)); 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(SO_DESCRAGG)); row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SA_DESCRAGG));
row.add(giac.string(), sf.cid2index(SO_GIACENZA)); 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_PPCONF).as_string(), sf.cid2index(SA_PPCONF));
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SO_USER1)); 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(SO_USER2)); 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(SO_USER3)); 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(SO_USER4)); 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(SO_USER5)); 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(SO_USER6)); 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(SO_USER7)); 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(SO_USER8)); 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(SO_USER9)); 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(SO_USER10)); row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SA_USER10));
const real disp = art.disponibilita(codes, get(F_MAG), NULL); 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); sf.check_row(i);
if (check_expr) if (check_expr)
{ {
@ -326,12 +328,12 @@ void TGenera_ordini_mask::update_sheet()
sf.force_update(); sf.force_update();
} }
void TGenera_ordini_mask::update_orders() void TGenera_ordini_mask::update_documents()
{ {
_order_changed = false; _order_changed = false;
TWait_cursor hourglass; TWait_cursor hourglass;
TSheet_field& sh = sfield(F_ORDERS); TSheet_field& sh = sfield(F_DOCUMENTS);
sh.destroy(); sh.destroy();
TString query; TString query;
@ -395,9 +397,9 @@ void TGenera_ordini_mask::next_page(int p)
} }
if (_order_changed) if (_order_changed)
{ {
const TSheet_field& sf = sfield(F_ORDERS); const TSheet_field& sf = sfield(F_DOCUMENTS);
if (win() == sf.parent()) 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_del:
case se_query_add: case se_query_add:
return false; return false;
case fe_init: case fe_init:
if (o.dlg() == F_ARTICLES) if (o.dlg() == F_ARTICLES)
update_sheet(); update_sheet();
else else
update_orders(); update_documents();
break; break;
//gestione automatica immissione qta per articolo (con terminalino)
case se_notify_modify: case se_notify_modify:
if (o.dlg() == F_ARTICLES) if (o.dlg() == F_ARTICLES)
{ {
TEdit_field& cc = efield(F_CAZ_CODART); _campo_da_selezionare = F_CAZ_CODART;
cc.reset();
cc.set_focus();
} }
break; break;
@ -512,7 +514,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
case F_DASTATO: case F_DASTATO:
case F_ASTATO: case F_ASTATO:
if (e == fe_modify) if (e == fe_modify)
update_orders(); update_documents();
break; break;
case F_CAZ_CODART: //ricerca riga da codart in testa alla maschera 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()); capp().print_doc(c->curr());
update_sheet(); update_sheet();
update_orders(); update_documents();
} }
ok = false; // Non uscire ok = false; // Non uscire
} }
@ -666,7 +668,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
doc.remove(); doc.remove();
} }
update_sheet(); update_sheet();
update_orders(); update_documents();
} }
ok = false; // Non uscire 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) if (e == fe_button && jolly == 0)
{ {
capp().generate_orders(); capp().generate_orders();
update_orders(); update_documents();
update_sheet(); update_sheet();
ok = false; 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) if (e == fe_button && jolly == 0)
{ {
capp().generate_carics(); capp().generate_carics();
update_orders(); update_documents();
update_sheet(); update_sheet();
ok = false; ok = false;
} }
@ -740,12 +742,23 @@ void TGenera_ordini_mask::on_idle()
TAutomask::on_idle(); TAutomask::on_idle();
if (_riga_da_selezionare >= 0) if (_riga_da_selezionare >= 0)
{ {
TString msg;
msg << "Vado alla riga " << _riga_da_selezionare;
xvtil_statbar_set(msg);
//si posiziona sulla qta //si posiziona sulla qta
TSheet_field& sf_righe = sfield(F_ARTICLES); 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.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++) for (int i = 1; i <= 10; i++)
{ {
const int col = sh.cid2index(SO_USER1 + i -1); const int col = sh.cid2index(SA_USER1 + i -1);
TEditable_field & f = sh_mask.efield(SO_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)) 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 //resetta l'indicatore di riga da selezionare
_riga_da_selezionare = -1; _riga_da_selezionare = -1;
_campo_da_selezionare = -1;
} }
TGenera_ordini_mask::~TGenera_ordini_mask() TGenera_ordini_mask::~TGenera_ordini_mask()
@ -835,28 +849,30 @@ void TCreazione_ordini::print()
{ {
_mask->field(DLG_PRINT).on_hit(); _mask->field(DLG_PRINT).on_hit();
} }
void TCreazione_ordini::print_doc(const TRectype & doc) void TCreazione_ordini::print_doc(const TRectype & doc)
{ {
const TTipo_documento tipo(doc.get(DOC_TIPODOC)); const TTipo_documento tipo(doc.get(DOC_TIPODOC));
TFilename rep; tipo.main_print_profile(rep, 0); TFilename rep;
rep.ext("rep"); tipo.main_print_profile(rep, 0);
TString commandline; TString cmdline;
if (rep.custom_path()) // Esiste il nuovo report :-) if (rep.ends_with("rep", true)) // Esiste il nuovo report :-)
commandline = "ve1 -2"; cmdline = "ve1 -2";
else // Esiste il vecchio form :-( else // Esiste il vecchio form :-(
commandline = "ve1 -0"; cmdline = "ve1 -0";
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' '; cmdline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
commandline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC); cmdline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
commandline << " D"; cmdline << " D";
const int ncopie = tipo.ncopie(); const int ncopie = tipo.ncopie();
if (ncopie > 0) if (ncopie > 0)
commandline << ' ' << ncopie; cmdline << ' ' << ncopie;
TExternal_app interattivo( commandline ); TExternal_app interattivo( cmdline );
interattivo.run(); 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, 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) 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); TString8 codmag = _mask->get(F_MAG);
codmag.right_just(3); 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_CODART, codart);
rdoc.put(RDOC_CODARTMAG, codart); rdoc.put(RDOC_CODARTMAG, codart);
rdoc.put(RDOC_CHECKED, "X"); 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()) if (descr_agg.full())
{ {
rdoc.put(RDOC_DESCLUNGA, "X"); rdoc.put(RDOC_DESCLUNGA, "X");
rdoc.put(RDOC_DESCEST, descr_agg); 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); 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); rdoc.put(RDOC_DATACONS, datacons);
const TRectype& articolo = cache().get(LF_ANAMAG, codart); 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 else
rdoc.put(RDOC_CODIVA, articolo.get(ANAMAG_CODIVA)); rdoc.put(RDOC_CODIVA, articolo.get(ANAMAG_CODIVA));
const TString commessa = row->get(sf.cid2index(SO_CDC)); const TString commessa = row->get(sf.cid2index(SA_CDC));
const TString fase = row->get(sf.cid2index(SO_FSC)); const TString fase = row->get(sf.cid2index(SA_FSC));
rdoc.put(RDOC_CODCMS, commessa); rdoc.put(RDOC_CODCMS, commessa);
rdoc.put(RDOC_FASCMS, fase); rdoc.put(RDOC_FASCMS, fase);
for (int i = 0; i < 10 ; i++) for (int i = 0; i < 10 ; i++)
if (_userfld.row(i).full()) 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_CODAGG1, row->get(sf.cid2index(SA_CODAGG1)));
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SO_CODAGG2))); 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, 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; TString msg;
TString4 codnum, tipodoc; TString4 codnum, tipodoc;
@ -1049,9 +1066,9 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
} }
else else
{ {
qta = row->get(sf.cid2index(SO_QTA)); qta = row->get(sf.cid2index(SA_QTA));
codforn = row->get(sf.cid2index(SO_FORNITORE)); codforn = row->get(sf.cid2index(SA_FORNITORE));
datacons = row->get(sf.cid2index(SO_DATACONS)); datacons = row->get(sf.cid2index(SA_DATACONS));
} }
if (!qta.is_zero()) if (!qta.is_zero())
@ -1063,7 +1080,7 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
//..e cfven collegato //..e cfven collegato
const TRectype& forven = cache().get(LF_CFVEN, key); const TRectype& forven = cache().get(LF_CFVEN, key);
TDocumento* d = (TDocumento*)orders.objptr(codforn); TDocumento* d = (TDocumento*)documents.objptr(codforn);
if (d == NULL) if (d == NULL)
{ {
//il documento va creato //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(); const TString& causmag = tipo.caus_mov();
d->put(DOC_CAUSMAG, causmag); d->put(DOC_CAUSMAG, causmag);
orders.add(codforn, d); documents.add(codforn, d);
if (cod < minforn) if (cod < minforn)
minforn = cod; minforn = cod;
if (cod > maxforn) 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; TString msg;
switch (tipo) switch (tipo)
@ -1139,7 +1158,7 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
default: break; default: break;
} }
TProgind pi(orders.items(), msg, true, true); TProgind pi(documents.items(), msg, true, true);
TString cmdline; TString cmdline;
int cnt = 0; int cnt = 0;
TString8 key; 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++) for (long cod = minforn; cod <= maxforn; cod++)
{ {
key.format("%ld", cod); key.format("%ld", cod);
TDocumento* d = (TDocumento*)orders.objptr(key); TDocumento* d = (TDocumento*)documents.objptr(key);
if (d != NULL) if (d != NULL)
{ {
if (!pi.addstatus(1)) 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() void TCreazione_ordini::generate_carics()
{ {
//TGenera_ordini_mask& mask = *_mask; TSheet_field& sf = _mask->sfield(F_DOCUMENTS);
TSheet_field& sf = _mask->sfield(F_ORDERS);
long minforn = 999999L; long minforn = 999999L;
long maxforn = 0L; long maxforn = 0L;
TAssoc_array orders; TAssoc_array carics;
if (sf.items() > 0) if (sf.items() > 0)
generate_docs_head('C', sf, minforn, maxforn, orders); generate_docs_head('C', sf, minforn, maxforn, carics);
if (orders.items() > 0) if (carics.items() > 0)
write_docs('C', minforn, maxforn, orders); write_docs('C', minforn, maxforn, carics);
} }
//genera gli ordini a partire dalle righe articolo sullo sheet F_ARTICLES
void TCreazione_ordini::generate_orders() 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 minforn = 999999L;
long maxforn = 0L; long maxforn = 0L;

View File

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

View File

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