Prime modifiche per far funzionare la stampa documenti.
git-svn-id: svn://10.65.10.50/trunk@3099 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7b0f8834b3
commit
0fb4849349
@ -146,10 +146,12 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
|||||||
for (j=0; j<itms; j++) { // per ogni campo della sezione specificata (o sottointesa)...
|
for (j=0; j<itms; j++) { // per ogni campo della sezione specificata (o sottointesa)...
|
||||||
TForm_item &fi= section(sec, pt).field(j);
|
TForm_item &fi= section(sec, pt).field(j);
|
||||||
fi.set(dat); // ...il contenuto viene settato al valore del file
|
fi.set(dat); // ...il contenuto viene settato al valore del file
|
||||||
|
fi.put_paragraph(dat);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TForm_item &fi= cf.find_field(fld);
|
TForm_item &fi= cf.find_field(fld);
|
||||||
fi.set(dat);
|
fi.set(dat);
|
||||||
|
fi.put_paragraph(dat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -266,12 +268,12 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TFieldref fref(s.get(), 0);
|
TFieldref fref(s.get(), 0);
|
||||||
cf.set(fref.read(&_firmrel));
|
cf.set(fref.read(_firmrel));
|
||||||
}
|
}
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
} // fine _DITTA
|
} // fine _DITTA
|
||||||
|
|
||||||
if (code== "_CIFRELETTERE") {
|
if (code== "_CIFRELET") {
|
||||||
// conversione di un reale da cifre a lettere
|
// conversione di un reale da cifre a lettere
|
||||||
// sintassi: _CIFRELETTERE[,<campo form>]
|
// sintassi: _CIFRELETTERE[,<campo form>]
|
||||||
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere il valore, se non è specificato è sottointeso il campo corrente
|
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere il valore, se non è specificato è sottointeso il campo corrente
|
||||||
@ -393,7 +395,7 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TFieldref fref(s.get(), 0);
|
TFieldref fref(s.get(), 0);
|
||||||
cf.set(fref.read((TRelation *)_cliente)); // l'oggetto cliente è figlio della TRelation, quindi lo passo al fieldref semplicemente con un typecast
|
cf.set(fref.read(*_cliente)); // l'oggetto cliente è figlio della TRelation, quindi lo passo al fieldref semplicemente con un typecast
|
||||||
}
|
}
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
} // fine _CLIENTE
|
} // fine _CLIENTE
|
||||||
@ -472,6 +474,8 @@ class TStampa_Doc_Vendita: public TApplication {
|
|||||||
TString _provv; // stampa provvisioria
|
TString _provv; // stampa provvisioria
|
||||||
int _anno; // anno della documentazione
|
int _anno; // anno della documentazione
|
||||||
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
||||||
|
TDate _dadata, _adata; // estremi di data dei documenti
|
||||||
|
bool _order_by_num; // flag che indica se e' stato selezionato l'ordine principale per numero documento
|
||||||
bool _interattivo; // flag che indica se il prog. funziona in interattivo o in batch
|
bool _interattivo; // flag che indica se il prog. funziona in interattivo o in batch
|
||||||
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
||||||
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
||||||
@ -484,9 +488,43 @@ protected:
|
|||||||
virtual void on_firm_change(void);
|
virtual void on_firm_change(void);
|
||||||
virtual behaviour on_module_change(const TString &, TString &); // funzione chiamata ad ogni cambio modulo durante la stampa
|
virtual behaviour on_module_change(const TString &, TString &); // funzione chiamata ad ogni cambio modulo durante la stampa
|
||||||
virtual bool query_final_print(void); // funzione chiamata all'inizializzazione per sapere se la stampa è definitiva
|
virtual bool query_final_print(void); // funzione chiamata all'inizializzazione per sapere se la stampa è definitiva
|
||||||
|
static bool date2num_handler(TMask_field& f, KEY key);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
bool TStampa_Doc_Vendita::date2num_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
TMask& m = f.mask();
|
||||||
|
if (key == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
|
short dlg = f.dlg();
|
||||||
|
TLocalisamfile doc(LF_DOC);
|
||||||
|
doc.setkey(3);
|
||||||
|
TString codnum1(m.get(F_CODNUM)),codnum2;
|
||||||
|
TString anno1(m.get(F_ANNO)),anno2;
|
||||||
|
TString provv1(m.get(F_PROVV)),provv2;
|
||||||
|
TDate data1(m.get_date(dlg)),data2;
|
||||||
|
long numdoc;
|
||||||
|
doc.zero();
|
||||||
|
doc.put("CODNUM", codnum1);
|
||||||
|
doc.put("ANNO", anno1);
|
||||||
|
doc.put("PROVV", provv1);
|
||||||
|
doc.put("DATADOC", data1);
|
||||||
|
if (doc.read(_isgteq) == NOERR)
|
||||||
|
{
|
||||||
|
codnum2 = doc.get("CODNUM");
|
||||||
|
anno2 = doc.get("ANNO");
|
||||||
|
provv2 = doc.get("PROVV");
|
||||||
|
data2 = doc.get_date("DATADOC");
|
||||||
|
if (codnum1 == codnum2 && anno1 == anno2 && provv1 == provv2 && data1 == data2)
|
||||||
|
{
|
||||||
|
numdoc = doc.get_long("NDOC");
|
||||||
|
m.set(dlg == F_DA_DATADOC ? F_DA_NDOC : F_A_NDOC, numdoc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
bool TStampa_Doc_Vendita::create() {
|
bool TStampa_Doc_Vendita::create() {
|
||||||
TApplication::create();
|
TApplication::create();
|
||||||
@ -523,12 +561,23 @@ void TStampa_Doc_Vendita::on_firm_change() {
|
|||||||
|
|
||||||
int TStampa_Doc_Vendita::select() {
|
int TStampa_Doc_Vendita::select() {
|
||||||
TMask m("ve1100a");
|
TMask m("ve1100a");
|
||||||
|
TString wdate;
|
||||||
|
m.set_handler(F_DA_DATADOC, date2num_handler);
|
||||||
|
m.set_handler(F_A_DATADOC, date2num_handler);
|
||||||
if (m.run() == K_ENTER) {
|
if (m.run() == K_ENTER) {
|
||||||
_codnum= m.get(F_CODNUM); // lettura dei dati dalla maschera
|
_codnum= m.get(F_CODNUM); // lettura dei dati dalla maschera
|
||||||
_anno= m.get_int(F_ANNO);
|
_anno= m.get_int(F_ANNO);
|
||||||
_provv= m.get(F_PROVV);
|
_provv= m.get(F_PROVV);
|
||||||
_dalnum= m.get_long(F_DA_NDOC);
|
_dalnum= m.get_long(F_DA_NDOC);
|
||||||
_alnum= m.get_long(F_A_NDOC);
|
_alnum= m.get_long(F_A_NDOC);
|
||||||
|
if (_alnum == 0) _alnum = 9999999L;
|
||||||
|
wdate = m.get(F_DA_DATADOC);
|
||||||
|
if (wdate.not_empty()) _dadata = wdate;
|
||||||
|
else _dadata = botime;
|
||||||
|
wdate = m.get(F_A_DATADOC);
|
||||||
|
if (wdate.not_empty()) _adata = wdate;
|
||||||
|
else _adata = eotime;
|
||||||
|
_order_by_num = m.get(F_DATA_O_NUM) == "N";
|
||||||
return 1;
|
return 1;
|
||||||
} else return 0; // 0 indica che non si è usciti con "Conferma" dalla maschera
|
} else return 0; // 0 indica che non si è usciti con "Conferma" dalla maschera
|
||||||
}
|
}
|
||||||
@ -547,12 +596,14 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
TTable tip("%TIP"); // istanzia la tabella dei tipi di documento per i profili
|
TTable tip("%TIP"); // istanzia la tabella dei tipi di documento per i profili
|
||||||
TRelation rel(LF_DOC); // istanzia la relazione sul file principale
|
TRelation rel(LF_DOC); // istanzia la relazione sul file principale
|
||||||
TCursor cur(&rel); // crea il cursore principale dalla relazione
|
TCursor cur(&rel); // crea il cursore principale dalla relazione
|
||||||
|
if (!_order_by_num) cur.setkey(3); // setta l'ordine per data.
|
||||||
TLocalisamfile &doc= cur.file(); // prende il riferimento al file principale
|
TLocalisamfile &doc= cur.file(); // prende il riferimento al file principale
|
||||||
doc.zero(); // vuota il record del file
|
doc.zero(); // vuota il record del file
|
||||||
doc.put("CODNUM", _codnum); // compone la chiave per il record di inizio cursore
|
doc.put("CODNUM", _codnum); // compone la chiave per il record di inizio cursore
|
||||||
doc.put("ANNO", _anno);
|
doc.put("ANNO", _anno);
|
||||||
doc.put("PROVV", _provv);
|
doc.put("PROVV", _provv);
|
||||||
doc.put("NDOC", _dalnum);
|
doc.put("NDOC", _dalnum);
|
||||||
|
if (!_order_by_num) doc.put("DATADOC", _dadata);
|
||||||
doc.read(); // posiziona il file sul record
|
doc.read(); // posiziona il file sul record
|
||||||
TRectype darec= doc.curr(); // copia il record di inizio cursore
|
TRectype darec= doc.curr(); // copia il record di inizio cursore
|
||||||
doc.zero(); // vuota il record del file
|
doc.zero(); // vuota il record del file
|
||||||
@ -560,6 +611,7 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
doc.put("ANNO", _anno);
|
doc.put("ANNO", _anno);
|
||||||
doc.put("PROVV", _provv);
|
doc.put("PROVV", _provv);
|
||||||
doc.put("NDOC", _alnum);
|
doc.put("NDOC", _alnum);
|
||||||
|
if (!_order_by_num) doc.put("DATADOC", _adata);
|
||||||
doc.read(); // posiziona il file sul record
|
doc.read(); // posiziona il file sul record
|
||||||
TRectype arec= doc.curr(); // copia il record di fine cursore
|
TRectype arec= doc.curr(); // copia il record di fine cursore
|
||||||
cur.setregion(darec, arec); // imposta il filtro sul cursore di stampa (nell'ordine giusto :-)
|
cur.setregion(darec, arec); // imposta il filtro sul cursore di stampa (nell'ordine giusto :-)
|
||||||
@ -570,6 +622,10 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
nomeform= tip.get("S5"); // legge il nome del form di stampa
|
nomeform= tip.get("S5"); // legge il nome del form di stampa
|
||||||
profilo= tip.get("S4"); // legge il nome del profilo di configurazione
|
profilo= tip.get("S4"); // legge il nome del profilo di configurazione
|
||||||
profilo.ext("ini"); // aggiunge l'estensione al nome del file del profilo
|
profilo.ext("ini"); // aggiunge l'estensione al nome del file del profilo
|
||||||
|
if (profilo.empty() || nomeform.empty()) {
|
||||||
|
error_box("Nome profilo o form di stampa non valido nella tabella TIP");
|
||||||
|
break;
|
||||||
|
}
|
||||||
TConfig config(profilo, "STAMPA"); // apre il file di configurazione del profilo
|
TConfig config(profilo, "STAMPA"); // apre il file di configurazione del profilo
|
||||||
TToken_string stati((const char*)config.get("STATIVALIDI"), ','); // legge gli stati validi di questo tipo di documento
|
TToken_string stati((const char*)config.get("STATIVALIDI"), ','); // legge gli stati validi di questo tipo di documento
|
||||||
if (_definitiva && (stati.get_pos(doc.get("STATO"))== -1)) { // se lo stato del doc. corrente non è valido...
|
if (_definitiva && (stati.get_pos(doc.get("STATO"))== -1)) { // se lo stato del doc. corrente non è valido...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user