From 9784b96237c9b9b6d145733b71556a790ae286bb Mon Sep 17 00:00:00 2001 From: gianluca Date: Tue, 17 Oct 1995 16:49:47 +0000 Subject: [PATCH] Risolti problemi in listini, contratti, offerte e sconti. Aggiornate maschere. Modificata stampa. git-svn-id: svn://10.65.10.50/trunk@1971 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve2100.cpp | 33 +- ve/ve2200.cpp | 17 +- ve/ve2200x.uml | 623 +++++++++++++++++---------------- ve/ve2300.cpp | 84 ++--- ve/ve2300x.h | 93 +++-- ve/ve2300x.uml | 916 +++++++++++++++++++++++++------------------------ ve/ve3.cpp | 11 +- ve/ve3200.cpp | 352 +++++++++++-------- ve/ve3200x.h | 22 ++ ve/ve3200x.uml | 332 +++--------------- ve/ve3400.cpp | 2 +- ve/veacc.frm | 155 ++++----- ve/vebol.frm | 16 +- ve/vefat.frm | 119 ++++--- 14 files changed, 1289 insertions(+), 1486 deletions(-) diff --git a/ve/ve2100.cpp b/ve/ve2100.cpp index f1e4951fe..b68484762 100755 --- a/ve/ve2100.cpp +++ b/ve/ve2100.cpp @@ -14,6 +14,8 @@ class TTabelle_sconti: public TRelation_application { TRelation *_rel; // relazione principale char _sconti; // carattere che indica il tipo di tabella + bool _catven; // abilitazione della gestione della categoria di vendita + TString _gessco; // indicatore di abilitazione degli sconti incondizionati virtual bool user_create(); virtual bool user_destroy(); @@ -51,19 +53,24 @@ bool TTabelle_sconti::user_create() { gotcha= TRUE; break; case 'I': // sconti incondizionati - _msk= new TMask("VE2100I"); // apre la maschera relativa - set_search_field(F_I_RICERCA); // setta il campo di ricerca - sci_k_id[0]= F_I_CATVEN; // inizializza l'array dei campi da disabilitare condizionalmente - sci_k_id[1]= F_I_SCCLIENTI; - sci_k_id[2]= F_I_ZONE; - sci_k_id[3]= F_I_CONDPAG; - for (i=0; i<4; i++) { - if (prassid.get_bool("SCOKEY", "ve", i)) { // se nel file di config. il campo è abilitato... - REVIVE(sci_k_id[i]); // ...il campo viene abilitato anche sulla maschera... - gotcha= TRUE; // ...e viene settato il flag di ok - } else KILL(sci_k_id[i]); // se nel file di config. il campo non è abilitato viene disabilitato anche sulla maschera - } - if (!gotcha) error_box("Non ci sono campi chiave abilitati nella configurazione della ditta"); + _gessco= prassid.get("GESSCO"); // legge lo stato del parametro di abilitazione degli sconti + if (_gessco=="A") { + _msk= new TMask("VE2100I"); // apre la maschera relativa + set_search_field(F_I_RICERCA); // setta il campo di ricerca + sci_k_id[0]= F_I_CATVEN; // inizializza l'array dei campi da disabilitare condizionalmente + sci_k_id[1]= F_I_SCCLIENTI; + sci_k_id[2]= F_I_ZONE; + sci_k_id[3]= F_I_CONDPAG; + for (i=0; i<4; i++) { + if (prassid.get_bool("SCOKEY", NULL, i)) { // se nel file di config. il campo è abilitato... + REVIVE(sci_k_id[i]); // ...il campo viene abilitato anche sulla maschera... + gotcha= TRUE; // ...e viene settato il flag di ok + } else KILL(sci_k_id[i]); // se nel file di config. il campo non è abilitato viene disabilitato anche sulla maschera + } + _catven= prassid.get_bool("CODLISCV"); // legge il parametro di abilitazione delle categorie di vendita + if (!_catven) KILL(sci_k_id[1]); // se non è abilitato, viene disabilitato anche il campo + if (!gotcha) error_box("Non ci sono campi chiave abilitati nella configurazione della ditta"); + } else error_box("Gli sconti incondizionati non sono abilitati nella configurazione"); break; default: // messaggio di errore se si indica una tabella non valida error_box("Indicare la tabella sulla linea di comando (D, R o I) oppure selezionarla dalla maschera di partenza"); diff --git a/ve/ve2200.cpp b/ve/ve2200.cpp index 3671d9028..9a03571ce 100755 --- a/ve/ve2200.cpp +++ b/ve/ve2200.cpp @@ -23,6 +23,7 @@ class TCondizioni_vendita: public TRelation_application { TString16 _condven; // stringa che indica il tipo di archivio TBit_array _tohide; // vettore degli identificatori di campi che devono essere nascosti bool _codlis_catven; // booleano di abilitazione della categoria di vendita nella chiave dei listini + bool _codcon_codcf; // booleano di abilitazioni dei campi TIPOCF e CODCF bool _gest_val, _gest_um, _gest_sca, _gest_so; // booleani per l'abilitazione di valute, unità di misura, scaglioni e sconti/omaggi virtual bool user_create(); @@ -75,9 +76,10 @@ bool TCondizioni_vendita::user_create() { DESTROY(F_C_TIPOCF); DESTROY(F_C_CODCF); DESTROY(F_C_OBBLIG); + DESTROY(F_C_DESCF); set_search_field(F_L_COD); // impostazione del campo di ricerca _msk->set_handler(F_LC_CODSUCC, handle_codsucc); // setta l'handler per il campo di codice successivo - _codlis_catven= prassid.get_bool("CODLISCV"); // setta il booleano di abilitazione delle categoria di vendita + _codlis_catven= prassid.get_bool("GESLISCV"); // setta il booleano di abilitazione delle categoria di vendita if (!_codlis_catven) KILL(F_L_CATVEN); // disabilita condizionalmente le categorie di vendita _gest_um= prassid.get_bool("GESUM", NULL, A_LISTINI); // setta il booleano di abilitazione delle unità di misura _gest_sca= prassid.get_bool("GESSCA", NULL, A_LISTINI); // setta il booleano di abilitazione degli scaglioni @@ -93,8 +95,14 @@ bool TCondizioni_vendita::user_create() { DESTROY(F_L_COD); DESTROY(F_O_COD); DESTROY(F_L_CATVEN); - DESTROY(F_LC_CODSUCC); + DESTROY(F_L_DESVEN); + _codcon_codcf= prassid.get_bool("GESCONCC"); // setta il booleano di abilitazione di TIPOCF e CODCF + if (!_codcon_codcf) { // disabilita i campi di gestione clienti/fornitori in base al flag. di config. + KILL(F_R_C_TIPOCF); + KILL(F_R_C_CODCF); + } set_search_field(F_C_COD); // impostazione del campo di ricerca + _msk->set_handler(F_LC_CODSUCC, handle_codsucc); // setta l'handler per il campo di codice successivo _gest_um= prassid.get_bool("GESUM", NULL, A_CONTRATTI); // setta il booleano di abilitazione delle unità di misura _gest_sca= prassid.get_bool("GESSCA", NULL, A_CONTRATTI); // setta il booleano di abilitazione degli scaglioni _gest_so= prassid.get_bool("GESSO", NULL, A_CONTRATTI); // setta il booleano di abilitazione degli sconti/omaggi @@ -110,9 +118,12 @@ bool TCondizioni_vendita::user_create() { DESTROY(F_L_CATVEN); DESTROY(F_C_TIPOCF); DESTROY(F_C_CODCF); + DESTROY(F_C_DESCF); + DESTROY(F_L_DESVEN); DESTROY(F_C_OBBLIG); + DESTROY(F_LC_CODSUCC); + DESTROY(F_LC_DESSUCC); set_search_field(F_O_COD); // impostazione del campo di ricerca - _msk->set_handler(F_LC_CODSUCC, handle_codsucc); // setta l'handler per il campo di codice successivo _gest_um= prassid.get_bool("GESUM", NULL, A_OFFERTE); // setta il booleano di abilitazione delle unità di misura _gest_sca= prassid.get_bool("GESSCA", NULL, A_OFFERTE); // setta il booleano di abilitazione degli scaglioni _gest_so= prassid.get_bool("GESSO", NULL, A_OFFERTE); // setta il booleano di abilitazione degli sconti/omaggi diff --git a/ve/ve2200x.uml b/ve/ve2200x.uml index 75c495fea..ec56136aa 100755 --- a/ve/ve2200x.uml +++ b/ve/ve2200x.uml @@ -1,313 +1,310 @@ -#include -#include "ve2200x.h" - -TOOLBAR "" 0 20 60 2 -#include -ENDPAGE - -PAGE "Archivio condizioni di vendita " 0 0 70 20 - -STRING F_TIPO 1 -BEGIN - PROMPT 100 100 "" - FIELD LF_CONDV->TIPO - FLAG "DUP" - KEY 1 - CHECKTYPE REQUIRED -END - -// campo riservato ai listini -STRING F_L_CATVEN 2 -BEGIN - PROMPT 2 2 "Cat. vendita " - FIELD LF_CONDV->CATVEN - FLAG "U" - KEY 1 - USE %CVE - INPUT CODTAB F_L_CATVEN - DISPLAY "Cat." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_L_CATVEN CODTAB - OUTPUT F_L_DESVEN S0 - CHECKTYPE REQUIRED -END - -// campo riservato ai listini -STRING F_L_DESVEN 50 -BEGIN - PROMPT 22 2 "" - FLAG "D" -END - -// campo riservato ai contratti -LIST F_C_TIPOCF 7 -BEGIN - PROMPT 2 2 "Tipo " - FIELD LF_CONDV->TIPOCF - KEY 1 - ITEM "C|Cliente" - ITEM "F|Fornit." - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -STRING F_C_CODCF 6 -BEGIN - PROMPT 2 3 "Codice " - FIELD LF_CONDV->CODCF - FLAG "U" - KEY 1 - USE LF_CLIFO - INPUT TIPOCF F_C_TIPOCF - INPUT CODCF F_C_CODCF - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Ragione sociale@50" RAGSOC - OUTPUT F_C_TIPOCF TIPOCF - OUTPUT F_C_CODCF CODCF - OUTPUT F_C_DESCF RAGSOC - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -STRING F_C_DESCF 50 -BEGIN - PROMPT 22 3 "" - FLAG "D" -END - -// campo riservato ai listini -STRING F_L_COD 3 -BEGIN - PROMPT 2 4 "Cod. listino " - FIELD LF_CONDV->COD - FLAG "U" - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT CATVEN F_L_CATVEN - INPUT COD F_L_COD - DISPLAY "C.V." CATVEN - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_L_CATVEN CATVEN - OUTPUT F_L_COD COD - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -NUMBER F_C_COD 3 -BEGIN - PROMPT 2 4 "Contratto N. " - FIELD LF_CONDV->COD - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT TIPOCF F_C_TIPOCF - INPUT CODCF F_C_CODCF - INPUT COD F_C_COD - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Numero" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_C_TIPOCF TIPOCF - OUTPUT F_C_CODCF CODCF - OUTPUT F_C_COD COD - CHECKTYPE REQUIRED -END - -// campo riservato alle offerte -STRING F_O_COD 3 -BEGIN - PROMPT 2 3 "Cod. offerta " - FIELD LF_CONDV->COD - FLAG "U" - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT COD F_O_COD - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_O_COD COD - CHECKTYPE REQUIRED -END - -GROUPBOX DLG_NULL 75 8 -BEGIN - PROMPT 0 0 "" - FLAG "R" -END - -STRING F_DESCR 50 -BEGIN - PROMPT 2 5 "Descrizione " - FIELD LF_CONDV->DESCR -END - -STRING F_CODVAL 5 -BEGIN - PROMPT 2 8 "Valuta " - FIELD LF_CONDV->CODVAL - FLAG "U" - USE %VAL - INPUT CODTAB F_CODVAL - DISPLAY "Valuta" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_CODVAL CODTAB - MESSAGE ENABLE,F_CAMBIO|ENABLE,F_DATACAM|DISABLE,F_IMPLORDI - MESSAGE EMPTY "1",F_CAMBIO|DISABLE,F_CAMBIO|CLEAR,F_DATACAM|DISABLE,F_DATACAM|ENABLE,F_IMPLORDI -END - -NUMBER F_CAMBIO 15 5 -BEGIN - PROMPT 21 8 "Cambio " - FIELD LF_CONDV->CAMBIO -END - -DATA F_DATACAM -BEGIN - PROMPT 49 8 "Data " - FIELD LF_CONDV->DATACAM -END - -DATA F_VALIN -BEGIN - PROMPT 2 10 "Inizio validita` " - FIELD LF_CONDV->VALIN -END - -DATA F_VALFIN -BEGIN - PROMPT 39 10 "Fine validita` " - FIELD LF_CONDV->VALFIN -END - -BOOLEAN F_IMPLORDI -BEGIN - PROMPT 2 12 "Importi lordi" - FIELD LF_CONDV->IMPLORDI -END - -BOOLEAN F_GESTUM -BEGIN - PROMPT 34 12 "Gestione unita` di misura" - FIELD LF_CONDV->GESTUM -END - -BOOLEAN F_GESTSCAGL -BEGIN - PROMPT 2 13 "Gestione scaglioni" - FIELD LF_CONDV->GESTSCAGL -END - -BOOLEAN F_GESTSCO -BEGIN - PROMPT 34 13 "Gestione sconti/omaggi" - FIELD LF_CONDV->GESTSCO -END - -BOOLEAN F_SCONST -BEGIN - PROMPT 2 14 "Gestione sconti standard" - FIELD LF_CONDV->SCONST -END - -// campo riservato ai contratti -BOOLEAN F_C_OBBLIG -BEGIN - PROMPT 34 14 "Contratto obbligatorio" - FIELD LF_CONDV->OBBLIG -END - -LIST F_SEQRIC_1 10 -BEGIN - PROMPT 2 15 "Sequenza ricerca " - FIELD LF_CONDV->SEQRIC[1,1] - ITEM "A|Articoli" - ITEM "G|Gruppo M." - ITEM "S|Sottogr.M." - ITEM "R|Ragg.fisc." - STR_EXPR (#THIS_FIELD!=#F_SEQRIC_2)&&(#THIS_FIELD!=#F_SEQRIC_3)&&(#THIS_FIELD!=#F_SEQRIC_4) - WARNING "La sequenza di ricerca deve indicare tre tipi diversi di righe" -END - -LIST F_SEQRIC_2 10 -BEGIN - PROMPT 34 15 "" - FIELD LF_CONDV->SEQRIC[2,2] - ITEM "-|Nessuno" - ITEM "A|Articoli" - ITEM "G|Gruppo M." - ITEM "S|Sottogr.M." - ITEM "R|Ragg.fisc." - STR_EXPR (#THIS_FIELD=="")||((#THIS_FIELD!=#F_SEQRIC_1)&&(#THIS_FIELD!=#F_SEQRIC_3)&&(#THIS_FIELD!=#F_SEQRIC_4)) - WARNING "La sequenza di ricerca deve indicare tre tipi diversi di righe" -END - -LIST F_SEQRIC_3 10 -BEGIN - PROMPT 49 15 "" - FIELD LF_CONDV->SEQRIC[3,3] - ITEM "-|Nessuno" - ITEM "A|Articoli" - ITEM "G|Gruppo M." - ITEM "S|Sottogr.M." - ITEM "R|Ragg.fisc." - STR_EXPR (#THIS_FIELD=="")||((#THIS_FIELD!=#F_SEQRIC_1)&&(#THIS_FIELD!=#F_SEQRIC_2)&&(#THIS_FIELD!=#F_SEQRIC_4)) - WARNING "La sequenza di ricerca deve indicare tre tipi diversi di righe" -END - -LIST F_SEQRIC_4 10 -BEGIN - PROMPT 64 15 "" - FIELD LF_CONDV->SEQRIC[4,4] - ITEM "-|Nessuno" - ITEM "A|Articoli" - ITEM "G|Gruppo M." - ITEM "S|Sottogr.M." - ITEM "R|Ragg.fisc." - STR_EXPR (#THIS_FIELD=="")||((#THIS_FIELD!=#F_SEQRIC_1)&&(#THIS_FIELD!=#F_SEQRIC_2)&&(#THIS_FIELD!=#F_SEQRIC_3)) - WARNING "La sequenza di ricerca deve indicare tre tipi diversi di righe" -END - -// campo riservato ai listini -STRING F_LC_CODSUCC 3 -BEGIN - PROMPT 2 16 "Listino succ. " - FIELD LF_CONDV->CODLISSUCC - FLAG "U" - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT CATVEN F_L_CATVEN SELECT -//INPUT TIPOCF F_C_TIPOCF SELECT -//INPUT CODCF F_C_CODCF SELECT - INPUT COD F_LC_CODSUCC - DISPLAY "C.V." CATVEN - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_LC_CODSUCC COD - OUTPUT F_LC_DESSUCC DESCR - CHECKTYPE NORMAL -END - -// campo riservato ai listini -STRING F_LC_DESSUCC 50 -BEGIN - PROMPT 24 16 "" - FLAG "D" -END - -// bottone di lancio dell'applicazione delle righe -BUTTON BTN_RIGHE 63 1 -BEGIN - PROMPT 0 -1 "Righe di questa testata" - MESSAGE K_F5 -END - -ENDPAGE - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - \ No newline at end of file +#include +#include "ve2200x.h" + +TOOLBAR "" 0 20 60 2 +#include +ENDPAGE + +PAGE "Archivio condizioni di vendita " 0 0 70 20 + +STRING F_TIPO 1 +BEGIN + PROMPT 100 100 "" + FIELD LF_CONDV->TIPO + FLAG "DUP" + KEY 1 + CHECKTYPE REQUIRED +END + +// campo riservato ai listini +STRING F_L_CATVEN 2 +BEGIN + PROMPT 2 2 "Cat. vendita " + FIELD LF_CONDV->CATVEN + FLAG "U" + KEY 1 + USE %CVE + INPUT CODTAB F_L_CATVEN + DISPLAY "Cat." CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_L_CATVEN CODTAB + OUTPUT F_L_DESVEN S0 + CHECKTYPE REQUIRED +END + +// campo riservato ai listini +STRING F_L_DESVEN 50 +BEGIN + PROMPT 22 2 "" + FLAG "D" +END + +// campo riservato ai contratti +LIST F_C_TIPOCF 7 +BEGIN + PROMPT 2 2 "Tipo " + FIELD LF_CONDV->TIPOCF + KEY 1 + ITEM "C|Cliente" + ITEM "F|Fornit." + CHECKTYPE REQUIRED +END + +// campo riservato ai contratti +STRING F_C_CODCF 6 +BEGIN + PROMPT 2 3 "Codice " + FIELD LF_CONDV->CODCF + FLAG "U" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF F_C_TIPOCF + INPUT CODCF F_C_CODCF + DISPLAY "C/F" TIPOCF + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_C_TIPOCF TIPOCF + OUTPUT F_C_CODCF CODCF + OUTPUT F_C_DESCF RAGSOC + CHECKTYPE REQUIRED +END + +// campo riservato ai contratti +STRING F_C_DESCF 50 +BEGIN + PROMPT 22 3 "" + FLAG "D" +END + +// campo riservato ai listini +STRING F_L_COD 3 +BEGIN + PROMPT 2 4 "Cod. listino " + FIELD LF_CONDV->COD + FLAG "U" + KEY 1 + USE LF_CONDV + INPUT TIPO F_TIPO SELECT + INPUT CATVEN F_L_CATVEN + INPUT COD F_L_COD + DISPLAY "C.V." CATVEN + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_TIPO TIPO + OUTPUT F_L_CATVEN CATVEN + OUTPUT F_L_COD COD + CHECKTYPE REQUIRED +END + +// campo riservato ai contratti +NUMBER F_C_COD 3 +BEGIN + PROMPT 2 4 "Contratto N. " + FIELD LF_CONDV->COD + KEY 1 + USE LF_CONDV + INPUT TIPO F_TIPO SELECT + INPUT TIPOCF F_C_TIPOCF + INPUT CODCF F_C_CODCF + INPUT COD F_C_COD + DISPLAY "C/F" TIPOCF + DISPLAY "Codice" CODCF + DISPLAY "Numero" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_TIPO TIPO + OUTPUT F_C_TIPOCF TIPOCF + OUTPUT F_C_CODCF CODCF + OUTPUT F_C_COD COD + CHECKTYPE REQUIRED +END + +// campo riservato alle offerte +STRING F_O_COD 3 +BEGIN + PROMPT 2 3 "Cod. offerta " + FIELD LF_CONDV->COD + FLAG "U" + KEY 1 + USE LF_CONDV + INPUT TIPO F_TIPO SELECT + INPUT COD F_O_COD + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_TIPO TIPO + OUTPUT F_O_COD COD + CHECKTYPE REQUIRED +END + +GROUPBOX DLG_NULL 75 8 +BEGIN + PROMPT 0 0 "" + FLAG "R" +END + +STRING F_DESCR 50 +BEGIN + PROMPT 2 5 "Descrizione " + FIELD LF_CONDV->DESCR +END + +STRING F_CODVAL 5 +BEGIN + PROMPT 2 8 "Valuta " + FIELD LF_CONDV->CODVAL + FLAG "U" + USE %VAL + INPUT CODTAB F_CODVAL + DISPLAY "Valuta" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODVAL CODTAB + MESSAGE ENABLE,F_CAMBIO|ENABLE,F_DATACAM|DISABLE,F_IMPLORDI + MESSAGE EMPTY "1",F_CAMBIO|DISABLE,F_CAMBIO|CLEAR,F_DATACAM|DISABLE,F_DATACAM|ENABLE,F_IMPLORDI +END + +NUMBER F_CAMBIO 15 5 +BEGIN + PROMPT 21 8 "Cambio " + FIELD LF_CONDV->CAMBIO +END + +DATA F_DATACAM +BEGIN + PROMPT 49 8 "Data " + FIELD LF_CONDV->DATACAM +END + +DATA F_VALIN +BEGIN + PROMPT 2 10 "Inizio validita` " + FIELD LF_CONDV->VALIN +END + +DATA F_VALFIN +BEGIN + PROMPT 39 10 "Fine validita` " + FIELD LF_CONDV->VALFIN +END + +BOOLEAN F_IMPLORDI +BEGIN + PROMPT 2 12 "Importi lordi" + FIELD LF_CONDV->IMPLORDI +END + +BOOLEAN F_GESTUM +BEGIN + PROMPT 34 12 "Gestione unita` di misura" + FIELD LF_CONDV->GESTUM +END + +BOOLEAN F_GESTSCAGL +BEGIN + PROMPT 2 13 "Gestione scaglioni" + FIELD LF_CONDV->GESTSCAGL +END + +BOOLEAN F_GESTSCO +BEGIN + PROMPT 34 13 "Gestione sconti/omaggi" + FIELD LF_CONDV->GESTSCO +END + +BOOLEAN F_SCONST +BEGIN + PROMPT 2 14 "Gestione sconti standard" + FIELD LF_CONDV->SCONST +END + +// campo riservato ai contratti +BOOLEAN F_C_OBBLIG +BEGIN + PROMPT 34 14 "Contratto obbligatorio" + FIELD LF_CONDV->OBBLIG +END + +LIST F_SEQRIC_1 10 +BEGIN + PROMPT 2 15 "Sequenza ricerca " + FIELD LF_CONDV->SEQRIC[1,1] + ITEM "A|Articoli" + ITEM "G|Gruppo M." + ITEM "S|Sottogr.M." + ITEM "R|Ragg.fisc." +END + +LIST F_SEQRIC_2 10 +BEGIN + PROMPT 34 15 "" + FIELD LF_CONDV->SEQRIC[2,2] + ITEM "-|Nessuno" + ITEM "A|Articoli" + ITEM "G|Gruppo M." + ITEM "S|Sottogr.M." + ITEM "R|Ragg.fisc." + STR_EXPR (#THIS_FIELD=="-")||(#THIS_FIELD!=#F_SEQRIC_1) + WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe" +END + +LIST F_SEQRIC_3 10 +BEGIN + PROMPT 49 15 "" + FIELD LF_CONDV->SEQRIC[3,3] + ITEM "-|Nessuno" + ITEM "A|Articoli" + ITEM "G|Gruppo M." + ITEM "S|Sottogr.M." + ITEM "R|Ragg.fisc." + STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_SEQRIC_1)&&(#THIS_FIELD!=#F_SEQRIC_2)) + WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe" +END + +LIST F_SEQRIC_4 10 +BEGIN + PROMPT 64 15 "" + FIELD LF_CONDV->SEQRIC[4,4] + ITEM "-|Nessuno" + ITEM "A|Articoli" + ITEM "G|Gruppo M." + ITEM "S|Sottogr.M." + ITEM "R|Ragg.fisc." + STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_SEQRIC_1)&&(#THIS_FIELD!=#F_SEQRIC_2)&&(#THIS_FIELD!=#F_SEQRIC_3)) + WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe" +END + +// campo riservato ai listini +STRING F_LC_CODSUCC 3 +BEGIN + PROMPT 2 16 "Listino succ. " + FIELD LF_CONDV->CODLISSUCC + FLAG "U" + USE LF_CONDV + INPUT TIPO F_TIPO SELECT + INPUT CATVEN F_L_CATVEN SELECT +//INPUT TIPOCF F_C_TIPOCF SELECT +//INPUT CODCF F_C_CODCF SELECT + INPUT COD F_LC_CODSUCC + DISPLAY "C.V." CATVEN + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_LC_CODSUCC COD + OUTPUT F_LC_DESSUCC DESCR + CHECKTYPE NORMAL +END + +// campo riservato ai listini +STRING F_LC_DESSUCC 50 +BEGIN + PROMPT 24 16 "" + FLAG "D" +END + +// bottone di lancio dell'applicazione delle righe +BUTTON BTN_RIGHE 63 1 +BEGIN + PROMPT 0 -1 "Righe di questa testata" + MESSAGE K_F5 +END + +ENDPAGE + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/ve/ve2300.cpp b/ve/ve2300.cpp index fb36a9adf..217f79caf 100755 --- a/ve/ve2300.cpp +++ b/ve/ve2300.cpp @@ -11,30 +11,14 @@ -enum state { // tipo di var. per la gestione delle abilitazioni dei campi - hidden, // nascosto, disabilitato, rimosso, distrutto, ucciso... insomma, fuori dai piedi - disabled, // disabilitato, visibile, non riabilitabile... cioè proprio in mezzo ai piedi e senza possibilità di toglierlo - disactivated, // disabilitato ma visibile... cioè giusto tra i piedi - activated // attivato... cioè utilizzabile come gli altri - }; - -// il campo unità di misura nella chiave viene gestito con i quattro stati per risolvere i -// conflitti di abilitazione/disabilitazione incrociati tra vari flag e stati del programma: -// il listbox del tipo di riga ha la priorità più bassa, cambia solo tra gli ultimi due stati -// (disactivated e activated); il flag "GESTUM" nella testata cambia lo stato del campo tra -// gli intermedi (disabled e disactivated); il tipo di archivio cambia tra il primo e il terzo -// stato (hidden e disactivated) - - - class TRighe_condizioni_vendita: public TRelation_application { TMask *_msk; // maschera principale TRelation *_rel; // relazione principale TString16 _rcondven; // stringa che indica il tipo di archivio bool _codlis_catven; // booleano di abilitazione del campo CATVEN - - state _gest_um; // variabile di abilitazione delle unità di misura + bool _codcon_codcf; // booleano di abilitazioni dei campi TIPOCF e CODCF + bool _gest_um; // variabile di abilitazione delle unità di misura virtual bool user_create(); virtual bool user_destroy(); @@ -80,41 +64,52 @@ bool TRighe_condizioni_vendita::user_create() { TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente switch (_rcondven[0]) { case 'L': // listini - _gest_um= disactivated; // attiva di default la gestione delle unità di misura pur lasciando il campo disabilitato DESTROY(F_R_C_TIPOCF); // settaggio dei campi da eliminare... DESTROY(F_R_C_CODCF); DESTROY(F_R_C_COD); DESTROY(F_R_O_COD); + _msk->hide(F_R_C_DESCF); + _msk->hide(F_R_C_DES); + _msk->hide(F_R_O_DES); _msk->hide(F_R_C_RICERCA); _msk->hide(F_R_O_RICERCA); - _msk->hide(F_R_CO_CODLOTTO); + // _msk->hide(F_R_CO_CODLOTTO); _msk->hide(F_R_O_ARTES); - _codlis_catven= prassid.get_bool("COSLISCV"); // setta il booleano di abilitazione di CATVEN + _codlis_catven= prassid.get_bool("GESLISCV"); // setta il booleano di abilitazione di CATVEN if (!_codlis_catven) KILL(F_R_L_CATVEN); // disabilita condizionalmente le categorie di vendita set_search_field(F_R_L_RICERCA); // impostazione del campo di ricerca _msk->set_handler(F_R_L_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata gotcha= TRUE; break; case 'C': // contratti - _gest_um= hidden; // rimuove la gestione delle unità di misura DESTROY(F_R_L_CATVEN); // settaggio dei campi da eliminare... DESTROY(F_R_L_COD); DESTROY(F_R_O_COD); - DESTROY(F_R_LO_UM); + _msk->hide(F_R_L_DESVEN); + _msk->hide(F_R_L_DES); + _msk->hide(F_R_O_DES); _msk->hide(F_R_L_RICERCA); _msk->hide(F_R_O_RICERCA); _msk->hide(F_R_O_ARTES); + _codcon_codcf= prassid.get_bool("GESCONCC"); // setta il booleano di abilitazione di TIPOCF e CODCF + if (!_codcon_codcf) { // disabilita i campi di gestione clienti/fornitori in base al flag. di config. + KILL(F_R_C_TIPOCF); + KILL(F_R_C_CODCF); + } set_search_field(F_R_C_RICERCA); // impostazione del campo di ricerca _msk->set_handler(F_R_C_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata gotcha= TRUE; break; case 'O': // offerte - _gest_um= disactivated; // attiva di default la gestione delle unità di misura pur lasciando il campo disabilitato DESTROY(F_R_L_CATVEN); // settaggio dei campi da eliminare... DESTROY(F_R_C_TIPOCF); DESTROY(F_R_C_CODCF); DESTROY(F_R_L_COD); DESTROY(F_R_C_COD); + _msk->hide(F_R_C_DESCF); + _msk->hide(F_R_L_DESVEN); + _msk->hide(F_R_L_DES); + _msk->hide(F_R_C_DES); _msk->hide(F_R_L_RICERCA); _msk->hide(F_R_C_RICERCA); set_search_field(F_R_O_RICERCA); // impostazione del campo di ricerca @@ -129,6 +124,7 @@ bool TRighe_condizioni_vendita::user_create() { _rel= new TRelation(LF_RCONDV); // apre la relazione (un unico file) _msk->set(F_R_TIPO, _rcondven); // settaggio del campo di tipo archivio _msk->set_handler(F_R_TIPORIGA, handle_tiporiga); // impostazione dell'handler sul campo di selezione del tipo della riga + _gest_um= TRUE; // abilita la gestione delle unità di misura (di default) hide_and_show_codriga(); // invoca la procedura di controllo della mutua esclusione dei tre campi CODRIGA } return (gotcha); @@ -143,33 +139,18 @@ bool TRighe_condizioni_vendita::user_destroy() { void TRighe_condizioni_vendita::hide_and_show_codriga() { TMask *_msk= app()._msk; // prende il puntatore alla maschera principale dell'applicazione if (_msk->query_mode()) { // se la maschera è in modo query procede con i controlli... - short id_campi[3]= { F_R_CODRIGA_A, F_R_CODRIGA_G, F_R_CODRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione - char tag_campi[3]= { 'A', 'G', 'R' }; // vettore dei tag di TIPORIGA per i tre campi CODRIGA in mutua esclusione - state &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura + short id_campi_1[4]= { F_R_CODRIGA_A, F_R_CODRIGA_G, F_R_CODRIGA_S, F_R_CODRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione + short id_campi_2[4]= { F_R_DESRIGA_A, F_R_DESRIGA_G, F_R_DESRIGA_S, F_R_DESRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione + char tag_campi[4]= { 'A', 'G', 'S', 'R' }; // vettore dei tag di TIPORIGA per i tre campi CODRIGA in mutua esclusione + bool &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura TString &_rcondven= app()._rcondven; // prende il riferimento alla stringa di tipo di archivio char tag_campo= toupper(_msk->get(F_R_TIPORIGA)[0]); // prende il tag del campo da abilitare in TIPORIGA - for (int i=0; i<3; i++) { // ciclo sui tre campi CODRIGA - if (tag_campo == tag_campi[i]) { CREATE(id_campi[i]); } // il campo indicato con il tag viene reso visibile - else { DESTROY(id_campi[i]); } // i campi non corrispondenti al tag vengono resi invisibili - } - if ((_gest_um != hidden) && (_gest_um != disabled)) { // se è abilitata (o abilitabile) la gestione delle unità di misura ed è stata selezionata una riga di articoli... - if (tag_campo=='A') _gest_um= activated; // ...il campo "unità di misura" viene abilitato... - else _gest_um= disactivated; // ...altrimenti viene disabilitato - } - switch (_gest_um) { - case hidden: // se l'unità di misura deve essere fuori dai piedi... - DESTROY(F_R_LO_UM); // ...il campo viene relativo soppresso - break; - case disabled: // se l'unità di misura deve essere tra i piedi (ma inutilizzabile) - case disactivated: - CREATE(F_R_LO_UM); // ...il campo relativo viene rimesso al mondo... - KILL(F_R_LO_UM); // ...ma subito ucciso - break; - case activated: // se l'unità di misura deve funzionare... - CREATE(F_R_LO_UM); // ...il campo relativo viene rimesso al mondo... - REVIVE(F_R_LO_UM); // ...e lasciato vivere in pace - break; + for (int i=0; i<4; i++) { // ciclo sui tre campi CODRIGA + if (tag_campo == tag_campi[i]) { CREATE(id_campi_1[i]); _msk->show(id_campi_2[i]); } // il campo indicato con il tag viene reso visibile + else { DESTROY(id_campi_1[i]); _msk->hide(id_campi_2[i]); } // i campi non corrispondenti al tag vengono resi invisibili } + if (_gest_um && (tag_campo=='A')) { REVIVE(F_R_UM); } // se la gest. delle u.m. è abilitata, il campo viene attivato se la riga è un articolo... + else { KILL(F_R_UM); } // ...altrimenti viene disattivato } } @@ -180,7 +161,7 @@ bool TRighe_condizioni_vendita::handle_tiporiga(TMask_field &fld, KEY k) { bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) { if ((k==K_TAB) && fld.get().not_empty()) { - state &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura + bool &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura TString &_rcondven= app()._rcondven; // prende il riferimento alla stringa di indicazione del tipo di archivio TMask *_msk= app()._msk; // prende il puntatore alla maschera principale dell'applicazione TLocalisamfile condv(LF_CONDV); // apre il file della testata (condizioni di vendita) @@ -200,10 +181,7 @@ bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) { break; } if (condv.read()==NOERR) { // se la lettura è andata a buon fine abilita/disabilita i campi della maschera in base ai booleani della testata - if (_gest_um != hidden) { // se le unità di misura possono essere utilizzate... - if (!(condv.get_bool("GESTUM"))) _gest_um= disabled; // ma nella testata sono disabilitate, setta la disabilitazione del campo "unità di misura"... - else _gest_um= disactivated; // altrimenti ne setta la possibile abilitazione - } + _gest_um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura hide_and_show_codriga(); // lancia la funzione che si occupa di abilitare/disabilitare il campo "unità di misura" if (!condv.get_bool("GESTSCAGL")) { KILL(F_R_NSCAGL); // disabilita il campo "numero scaglione" diff --git a/ve/ve2300x.h b/ve/ve2300x.h index 254d2ca4d..562a9ca69 100755 --- a/ve/ve2300x.h +++ b/ve/ve2300x.h @@ -1,47 +1,46 @@ - -// campi comuni a tutti gli archivi -#define F_R_TIPO 111 -#define F_R_TIPORIGA 112 -#define F_R_CODRIGA_A 113 -#define F_R_CODRIGA_G 114 -#define F_R_CODRIGA_R 115 -#define F_R_NSCAGL 116 -#define F_R_QLIM 117 -#define F_R_PREZZO 118 -#define F_R_SCONTO 119 -#define F_R_ADDIVA 120 -#define F_R_CODIVA 121 -#define F_R_PERCPROVV 122 -#define F_R_QOM 123 -#define F_R_QBASE 124 -#define F_R_CODARTOM 125 -#define F_R_PROMAGGIO 126 -#define F_R_UMOM 127 -#define F_R_CODRIGA_S 128 -#define F_R_DESRIGA_A 161 -#define F_R_DESRIGA_G 162 -#define F_R_DESRIGA_R 163 -#define F_R_DESRIGA_S 163 - -// campi riservati ai listini -#define F_R_L_CATVEN 131 -#define F_R_L_COD 132 -#define F_R_LO_UM 133 // comune anche alle offerte -#define F_R_L_RICERCA 134 -#define F_R_L_DESVEN 135 -#define F_R_L_DES 136 - -// campi riservati ai contratti -#define F_R_C_TIPOCF 141 -#define F_R_C_CODCF 142 -#define F_R_C_COD 143 -#define F_R_C_RICERCA 144 -#define F_R_C_DESCF 145 -#define F_R_C_DES 146 - -// campi riservati alle offerte -#define F_R_O_COD 151 -#define F_R_O_RICERCA 152 -#define F_R_O_ARTES 153 -#define F_R_O_DES 154 - \ No newline at end of file + +// campi comuni a tutti gli archivi +#define F_R_TIPO 111 +#define F_R_TIPORIGA 112 +#define F_R_CODRIGA_A 113 +#define F_R_CODRIGA_G 114 +#define F_R_CODRIGA_R 115 +#define F_R_UM 133 +#define F_R_NSCAGL 116 +#define F_R_QLIM 117 +#define F_R_PREZZO 118 +#define F_R_SCONTO 119 +#define F_R_ADDIVA 120 +#define F_R_CODIVA 121 +#define F_R_PERCPROVV 122 +#define F_R_QOM 123 +#define F_R_QBASE 124 +#define F_R_CODARTOM 125 +#define F_R_PROMAGGIO 126 +#define F_R_UMOM 127 +#define F_R_CODRIGA_S 128 +#define F_R_DESRIGA_A 161 +#define F_R_DESRIGA_G 162 +#define F_R_DESRIGA_R 163 +#define F_R_DESRIGA_S 163 + +// campi riservati ai listini +#define F_R_L_CATVEN 131 +#define F_R_L_COD 132 +#define F_R_L_RICERCA 134 +#define F_R_L_DESVEN 135 +#define F_R_L_DES 136 + +// campi riservati ai contratti +#define F_R_C_TIPOCF 141 +#define F_R_C_CODCF 142 +#define F_R_C_COD 143 +#define F_R_C_RICERCA 144 +#define F_R_C_DESCF 145 +#define F_R_C_DES 146 + +// campi riservati alle offerte +#define F_R_O_COD 151 +#define F_R_O_RICERCA 152 +#define F_R_O_ARTES 153 +#define F_R_O_DES 154 diff --git a/ve/ve2300x.uml b/ve/ve2300x.uml index 018592407..943a9eb17 100755 --- a/ve/ve2300x.uml +++ b/ve/ve2300x.uml @@ -1,457 +1,459 @@ -#include -#include "ve2300x.h" - -TOOLBAR "" 0 20 60 2 -#include -ENDPAGE - -PAGE "Archivio righe condiz. di vendita " 0 0 70 20 - -STRING F_R_TIPO 1 -BEGIN - PROMPT 100 100 "" - FIELD LF_RCONDV->TIPO - FLAG "DUP" - KEY 1 - CHECKTYPE REQUIRED -END - -STRING F_R_L_CATVEN 2 // campo riservato ai listini -BEGIN - PROMPT 2 2 "Cat. vendita " - FIELD LF_RCONDV->CATVEN - FLAG "UP" - KEY 1 - USE %CVE - INPUT CODTAB F_R_L_CATVEN - DISPLAY "Cat." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_L_CATVEN CODTAB - OUTPUT F_R_L_DESVEN S0 - CHECKTYPE REQUIRED -END - -STRING F_R_L_DESVEN 50 // campo riservato ai listini -BEGIN - PROMPT 23 2 "" - FLAG "D" -END - -LIST F_R_C_TIPOCF 7 // campo riservato ai contratti -BEGIN - PROMPT 2 1 "Tipo C/F " - FIELD LF_RCONDV->TIPOCF - FLAG "P" - KEY 1 - ITEM "C|Cliente" - ITEM "F|Fornit." - CHECKTYPE REQUIRED -END - -STRING F_R_C_CODCF 6 // campo riservato ai contratti -BEGIN - PROMPT 2 2 "Cod. C/F " - FIELD LF_RCONDV->CODCF - FLAG "UP" - KEY 1 - USE LF_CLIFO - INPUT TIPOCF F_R_C_TIPOCF - INPUT CODCF F_R_C_CODCF - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Ragione sociale@50" RAGSOC - OUTPUT F_R_C_TIPOCF TIPOCF - OUTPUT F_R_C_CODCF CODCF - OUTPUT F_R_C_DESCF RAGSOC - CHECKTYPE REQUIRED -END - -STRING F_R_C_DESCF 50 // campo riservato ai contratti -BEGIN - PROMPT 23 2 "" - FLAG "D" -END - -STRING F_R_L_COD 3 // campo riservato ai listini -BEGIN - PROMPT 2 3 "Listino " - FIELD LF_RCONDV->COD - FLAG "UPG" - KEY 1 - USE LF_CONDV - INPUT TIPO F_R_TIPO SELECT - INPUT CATVEN F_R_L_CATVEN - INPUT COD F_R_L_COD - DISPLAY "C.V." CATVEN - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_TIPO TIPO - OUTPUT F_R_L_CATVEN CATVEN - OUTPUT F_R_L_COD COD - OUTPUT F_R_L_DES DESCR - CHECKTYPE REQUIRED -END - -STRING F_R_L_DES 50 // campo riservato ai contratti -BEGIN - PROMPT 23 3 "" - FLAG "D" -END - -NUMBER F_R_C_COD 3 // campo riservato ai contratti -BEGIN - PROMPT 2 3 "Contratto N. " - FIELD LF_RCONDV->COD - FLAG "PG" - KEY 1 - USE LF_CONDV - INPUT TIPO F_R_TIPO SELECT - INPUT TIPOCF F_R_C_TIPOCF - INPUT CODCF F_R_C_CODCF - INPUT COD F_R_C_COD - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Numero" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_TIPO TIPO - OUTPUT F_R_C_TIPOCF TIPOCF - OUTPUT F_R_C_CODCF CODCF - OUTPUT F_R_C_COD COD - OUTPUT F_R_C_DES DESCR - CHECKTYPE REQUIRED -END - -STRING F_R_C_DES 50 // campo riservato ai listini -BEGIN - PROMPT 23 3 "" - FLAG "D" -END - -STRING F_R_O_COD 3 // campo riservato alle offerte -BEGIN - PROMPT 2 2 "Codice offerta " - FIELD LF_RCONDV->COD - FLAG "UPG" - KEY 1 - USE LF_CONDV - INPUT TIPO F_R_TIPO SELECT - INPUT COD F_R_O_COD - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_TIPO TIPO - OUTPUT F_R_O_COD COD - CHECKTYPE REQUIRED -END - -STRING F_R_O_DES 50 // campo riservato alle offerte -BEGIN - PROMPT 2 4 "Descr. offerta " - FLAG "D" -END - -LIST F_R_TIPORIGA 14 -BEGIN - PROMPT 2 4 "Tipo riga " - FIELD LF_RCONDV->TIPORIGA - FLAG "P" - KEY 1 - ITEM "A|Articolo" - ITEM "G|Gruppo merc." - ITEM "S|Sottogr. merc." - ITEM "R|Ragg. fiscale" -END - -STRING F_R_CODRIGA_A 20 -BEGIN - PROMPT 37 4 "Codice articolo " - FIELD LF_RCONDV->CODRIGA - FLAG "U" - KEY 1 - USE LF_ANAGR - INPUT CODART F_R_CODRIGA_A - DISPLAY "Articolo@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_CODRIGA_A CODART - OUTPUT F_R_DESRIGA_A DESCR - CHECKTYPE REQUIRED -END - -STRING F_R_DESRIGA_A 50 -BEGIN - PROMPT 2 5 "Descrizione articolo " - FLAG "D" -END - -STRING F_R_CODRIGA_G 3 -BEGIN - PROMPT 2 5 "Gruppo merc. " - FIELD LF_RCONDV->CODRIGA - FLAG "U" - KEY 1 - USE %GMC - INPUT CODTAB[1,3] F_R_CODRIGA_G - DISPLAY "Gr. merc." CODTAB[1,3] - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_G CODTAB[1,3] - OUTPUT F_R_DESRIGA_G S0 - CHECKTYPE REQUIRED - MESSAGE COPY,F_R_CODRIGA_A -END - -STRING F_R_DESRIGA_G 50 -BEGIN - PROMPT 23 5 "" - FLAG "D" -END - -STRING F_R_CODRIGA_S 2 -BEGIN - PROMPT 2 5 "Sottogr. merc. " - FIELD LF_RCONDV->CODRIGA - FLAG "U" - KEY 1 - USE %GMC - INPUT CODTAB[4,5] F_R_CODRIGA_S - DISPLAY "Sottogr. merc." CODTAB[4,5] - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_S CODTAB[4,5] - OUTPUT F_R_DESRIGA_S S0 - CHECKTYPE REQUIRED - MESSAGE COPY,F_R_CODRIGA_A -END - -STRING F_R_DESRIGA_S 50 -BEGIN - PROMPT 23 5 "" - FLAG "D" -END - -STRING F_R_CODRIGA_R 2 -BEGIN - PROMPT 2 5 "Ragg.fiscale " - FIELD LF_RCONDV->CODRIGA - FLAG "U" - KEY 1 - USE %RFA - INPUT CODTAB F_R_CODRIGA_R - DISPLAY "Ragg. fisc." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_R CODTAB - OUTPUT F_R_DESRIGA_R S0 - CHECKTYPE REQUIRED - MESSAGE COPY,F_R_CODRIGA_A -END - -STRING F_R_DESRIGA_R 50 -BEGIN - PROMPT 23 5 "" - FLAG "D" -END - -STRING F_R_NSCAGL 1 -BEGIN - PROMPT 2 7 "N.ro scaglione " - FIELD LF_RCONDV->NSCAGL - KEY 1 - CHECKTYPE REQUIRED -END - -STRING F_R_LO_UM 2 // campo riservato a listini e offerte -BEGIN - PROMPT 28 7 "U.M. " - FIELD LF_RCONDV->UM - FLAG "U" - KEY 1 - USE LF_UMART KEY 2 - JOIN %UMS INTO CODTAB=UM - INPUT CODART F_R_CODRIGA_A SELECT - INPUT UM F_R_LO_UM - DISPLAY "U.M." UM - DISPLAY "Desccrizione@50" %UMS->S0 - OUTPUT F_R_LO_UM UM - CHECKTYPE REQUIRED -END - -STRING F_R_L_RICERCA 1 // campo di aggancio per la ricerca sui listini, nascosto -BEGIN - PROMPT 100 100 "" - FLAG "D" - USE LF_RCONDV SELECT (CATVEN==#F_R_L_CATVEN)&&(COD==#F_R_L_COD) - INPUT TIPO F_R_TIPO SELECT -//INPUT CATVEN F_R_L_CATVEN -//INPUT COD F_R_L_COD - INPUT TIPORIGA F_R_TIPORIGA - INPUT CODRIGA F_R_CODRIGA_A - INPUT UM F_R_LO_UM - INPUT NSCAGL F_R_NSCAGL - DISPLAY "Tipo" TIPORIGA - DISPLAY "Codice@20" CODRIGA - DISPLAY "U.M." UM - DISPLAY "N.S." NSCAGL - OUTPUT F_R_TIPORIGA TIPORIGA - OUTPUT F_R_CODRIGA_A CODRIGA - OUTPUT F_R_CODRIGA_G CODRIGA - OUTPUT F_R_CODRIGA_R CODRIGA - OUTPUT F_R_LO_UM UM - OUTPUT F_R_NSCAGL NSCAGL -END - -STRING F_R_C_RICERCA 1 // campo di aggancio per la ricerca sui contratti, nascosto -BEGIN - PROMPT 100 100 "" - FLAG "D" - USE LF_RCONDV SELECT (TIPOCF==#F_R_C_TIPOCF)&&(CODCF==#F_R_C_CODCF)&&(COD==#F_R_L_COD) - INPUT TIPO F_R_TIPO SELECT -//INPUT TIPOCF F_R_C_TIPOCF -//INPUT CODCF F_R_C_CODCF -//INPUT COD F_R_C_COD - INPUT TIPORIGA F_R_TIPORIGA - INPUT CODRIGA F_R_CODRIGA_A - INPUT NSCAGL F_R_NSCAGL - DISPLAY "Tipo" TIPORIGA - DISPLAY "Codice@20" CODRIGA - DISPLAY "N.S." NSCAGL - OUTPUT F_R_TIPORIGA TIPORIGA - OUTPUT F_R_CODRIGA_A CODRIGA - OUTPUT F_R_CODRIGA_G CODRIGA - OUTPUT F_R_CODRIGA_R CODRIGA - OUTPUT F_R_NSCAGL NSCAGL -END - -STRING F_R_O_RICERCA 1 // campo di aggancio per la ricerca sulle offerte, nascosto -BEGIN - PROMPT 100 100 "" - FLAG "D" - USE LF_RCONDV SELECT COD==#F_R_L_COD - INPUT TIPO F_R_TIPO SELECT -//INPUT COD F_R_O_COD - INPUT TIPORIGA F_R_TIPORIGA - INPUT CODRIGA F_R_CODRIGA_A - INPUT UM F_R_LO_UM - INPUT NSCAGL F_R_NSCAGL - DISPLAY "Tipo" TIPORIGA - DISPLAY "Codice@20" CODRIGA - DISPLAY "U.M." UM - DISPLAY "N.S." NSCAGL - OUTPUT F_R_TIPORIGA TIPORIGA - OUTPUT F_R_CODRIGA_A CODRIGA - OUTPUT F_R_CODRIGA_G CODRIGA - OUTPUT F_R_CODRIGA_R CODRIGA - OUTPUT F_R_LO_UM UM - OUTPUT F_R_NSCAGL NSCAGL -END - -GROUPBOX DLG_NULL 78 9 // fine della chiave -BEGIN - PROMPT 0 0 "" - FLAG "R" -END - -NUMBER F_R_QLIM 15 5 -BEGIN - PROMPT 2 9 "Q.ta' limite scagl. " - FIELD LF_RCONDV->QLIM -END - -NUMBER F_R_PREZZO 18 2 -BEGIN - PROMPT 2 10 "Prezzo " - FIELD LF_RCONDV->PREZZO -END - -STRING F_R_SCONTO 25 -BEGIN - PROMPT 35 10 "Sconto " - FIELD LF_RCONDV->SCONTO - FLAG "U" -END - -BOOLEAN F_R_ADDIVA -BEGIN - PROMPT 2 11 "Addebito IVA" - FIELD LF_RCONDV->ADDIVA -END - -STRING F_R_CODIVA 4 -BEGIN - PROMPT 31 11 "Codice IVA " - FIELD LF_RCONDV->CODIVA - FLAG "U" - USE %IVA - INPUT CODTAB F_R_CODIVA - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODIVA CODTAB - CHECKTYPE NORMAL -END - -NUMBER F_R_PERCPROVV 5 2 -BEGIN - PROMPT 2 12 "Provvigione % " - FIELD LF_RCONDV->PERCPROVV - NUM_EXPR (#F_R_PERCPROVV>=0)&&(#F_R_PERCPROVV<=100) - WARNING "La percentuale di provvigione deve essere compresa tra 0 e 100" -END - -NUMBER F_R_QOM 15 5 -BEGIN - PROMPT 2 13 "Q.ta' sconto/omaggio " - FIELD LF_RCONDV->QOM -END - -STRING F_R_UMOM 2 -BEGIN - PROMPT 47 13 "U.M. q.ta' omaggio " - FIELD LF_RCONDV->UMOM - FLAG "U" - USE LF_UMART KEY 2 - JOIN %UMS INTO CODTAB=UM - INPUT CODART F_R_CODARTOM SELECT - INPUT UM F_R_UMOM - DISPLAY "U.M." UM - DISPLAY "Desccrizione@50" %UMS->S0 - OUTPUT F_R_UMOM UM -END - -NUMBER F_R_QBASE 15 5 -BEGIN - PROMPT 2 14 "Q.ta' base sconto " - FIELD LF_RCONDV->QBASE -END - -STRING F_R_CODARTOM 20 -BEGIN - PROMPT 2 15 "Codice art. omaggio " - FIELD LF_RCONDV->CODARTOM - FLAG "U" - USE LF_ANAGR - INPUT CODART F_R_CODARTOM - DISPLAY "Articolo@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_CODARTOM CODART - CHECKTYPE NORMAL -END - -NUMBER F_R_PROMAGGIO 18 2 -BEGIN - PROMPT 2 16 "Prezzo omaggio " - FIELD LF_RCONDV->PROMAGGIO -END - -//STRINF F_R_CO_CODLOTTO 6 -//BEGIN -//PROMPT 2 17 "Codice lotto " -//FIELD LF_RCONDV->CODLOTTO -//FLAG "U" -//END - -BOOLEAN F_R_O_ARTES -BEGIN - PROMPT 47 17 "Art. in esaurimento" - FIELD LF_RCONDV->ARTES -END - -ENDPAGE - -ENDMASK - \ No newline at end of file +#include +#include "ve2300x.h" + +TOOLBAR "" 0 20 60 2 +#include +ENDPAGE + +PAGE "Archivio righe condiz. di vendita " 0 0 70 20 + +STRING F_R_TIPO 1 +BEGIN + PROMPT 100 100 "" + FIELD LF_RCONDV->TIPO + FLAG "DUP" + KEY 1 + CHECKTYPE REQUIRED +END + +STRING F_R_L_CATVEN 2 // campo riservato ai listini +BEGIN + PROMPT 2 2 "Cat. vendita " + FIELD LF_RCONDV->CATVEN + FLAG "UP" + KEY 1 + USE %CVE + INPUT CODTAB F_R_L_CATVEN + DISPLAY "Cat." CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_L_CATVEN CODTAB + OUTPUT F_R_L_DESVEN S0 + CHECKTYPE REQUIRED +END + +STRING F_R_L_DESVEN 50 // campo riservato ai listini +BEGIN + PROMPT 23 2 "" + FLAG "D" +END + +LIST F_R_C_TIPOCF 7 // campo riservato ai contratti +BEGIN + PROMPT 2 1 "Tipo C/F " + FIELD LF_RCONDV->TIPOCF + FLAG "P" + KEY 1 + ITEM "C|Cliente" + ITEM "F|Fornit." + CHECKTYPE REQUIRED +END + +STRING F_R_C_CODCF 6 // campo riservato ai contratti +BEGIN + PROMPT 2 2 "Cod. C/F " + FIELD LF_RCONDV->CODCF + FLAG "UP" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF F_R_C_TIPOCF + INPUT CODCF F_R_C_CODCF + DISPLAY "C/F" TIPOCF + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_R_C_TIPOCF TIPOCF + OUTPUT F_R_C_CODCF CODCF + OUTPUT F_R_C_DESCF RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_R_C_DESCF 50 // campo riservato ai contratti +BEGIN + PROMPT 23 2 "" + FLAG "D" +END + +STRING F_R_L_COD 3 // campo riservato ai listini +BEGIN + PROMPT 2 3 "Listino " + FIELD LF_RCONDV->COD + FLAG "UPG" + KEY 1 + USE LF_CONDV + INPUT TIPO F_R_TIPO SELECT + INPUT CATVEN F_R_L_CATVEN + INPUT COD F_R_L_COD + DISPLAY "C.V." CATVEN + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_R_TIPO TIPO + OUTPUT F_R_L_CATVEN CATVEN + OUTPUT F_R_L_COD COD + OUTPUT F_R_L_DES DESCR + CHECKTYPE REQUIRED +END + +STRING F_R_L_DES 50 // campo riservato ai contratti +BEGIN + PROMPT 23 3 "" + FLAG "D" +END + +NUMBER F_R_C_COD 3 // campo riservato ai contratti +BEGIN + PROMPT 2 3 "Contratto N. " + FIELD LF_RCONDV->COD + FLAG "PG" + KEY 1 + USE LF_CONDV + INPUT TIPO F_R_TIPO SELECT + INPUT TIPOCF F_R_C_TIPOCF + INPUT CODCF F_R_C_CODCF + INPUT COD F_R_C_COD + DISPLAY "C/F" TIPOCF + DISPLAY "Codice" CODCF + DISPLAY "Numero" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_R_TIPO TIPO + OUTPUT F_R_C_TIPOCF TIPOCF + OUTPUT F_R_C_CODCF CODCF + OUTPUT F_R_C_COD COD + OUTPUT F_R_C_DES DESCR + CHECKTYPE REQUIRED +END + +STRING F_R_C_DES 50 // campo riservato ai listini +BEGIN + PROMPT 23 3 "" + FLAG "D" +END + +STRING F_R_O_COD 3 // campo riservato alle offerte +BEGIN + PROMPT 2 2 "Codice offerta " + FIELD LF_RCONDV->COD + FLAG "UPG" + KEY 1 + USE LF_CONDV + INPUT TIPO F_R_TIPO SELECT + INPUT COD F_R_O_COD + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT F_R_TIPO TIPO + OUTPUT F_R_O_COD COD + CHECKTYPE REQUIRED +END + +STRING F_R_O_DES 50 // campo riservato alle offerte +BEGIN + PROMPT 2 3 "Descr. offerta " + FLAG "D" +END + +LIST F_R_TIPORIGA 14 +BEGIN + PROMPT 2 4 "Tipo riga " + FIELD LF_RCONDV->TIPORIGA + FLAG "P" + KEY 1 + ITEM "A|Articolo" + ITEM "G|Gruppo merc." + ITEM "S|Sottogr. merc." + ITEM "R|Ragg. fiscale" +END + +STRING F_R_CODRIGA_A 20 +BEGIN + PROMPT 37 4 "Codice articolo " + FIELD LF_RCONDV->CODRIGA + FLAG "U" + KEY 1 + USE LF_ANAGR + INPUT CODART F_R_CODRIGA_A + DISPLAY "Articolo@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT F_R_CODRIGA_A CODART + OUTPUT F_R_DESRIGA_A DESCR + CHECKTYPE REQUIRED +END + +STRING F_R_DESRIGA_A 50 +BEGIN + PROMPT 2 5 "Descrizione articolo " + FLAG "D" +END + +STRING F_R_CODRIGA_G 3 +BEGIN + PROMPT 2 5 "Gruppo merc. " + FIELD LF_RCONDV->CODRIGA[1,3] + FLAG "U" + KEY 1 + USE %GMC + INPUT CODTAB[1,3] F_R_CODRIGA_G + DISPLAY "Gr. merc." CODTAB[1,3] + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_CODRIGA_G CODTAB[1,3] + OUTPUT F_R_DESRIGA_G S0 + CHECKTYPE REQUIRED + MESSAGE COPY,F_R_CODRIGA_A +END + +STRING F_R_DESRIGA_G 50 +BEGIN + PROMPT 23 5 "" + FLAG "D" +END + +STRING F_R_CODRIGA_S 2 +BEGIN + PROMPT 2 5 "Sottogr. merc. " + FIELD LF_RCONDV->CODRIGA[1,2] + FLAG "U" + KEY 1 + USE %GMC + INPUT CODTAB[4,5] F_R_CODRIGA_S + DISPLAY "Sottogr. merc." CODTAB[4,5] + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_CODRIGA_S CODTAB[4,5] + OUTPUT F_R_DESRIGA_S S0 + CHECKTYPE REQUIRED + MESSAGE COPY,F_R_CODRIGA_A +END + +STRING F_R_DESRIGA_S 50 +BEGIN + PROMPT 23 5 "" + FLAG "D" +END + +STRING F_R_CODRIGA_R 2 +BEGIN + PROMPT 2 5 "Ragg.fiscale " + FIELD LF_RCONDV->CODRIGA[1,2] + FLAG "U" + KEY 1 + USE %RFA + INPUT CODTAB F_R_CODRIGA_R + DISPLAY "Ragg. fisc." CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_CODRIGA_R CODTAB + OUTPUT F_R_DESRIGA_R S0 + CHECKTYPE REQUIRED + MESSAGE COPY,F_R_CODRIGA_A +END + +STRING F_R_DESRIGA_R 50 +BEGIN + PROMPT 23 5 "" + FLAG "D" +END + +STRING F_R_NSCAGL 1 +BEGIN + PROMPT 2 7 "N.ro scaglione " + FIELD LF_RCONDV->NSCAGL + KEY 1 + CHECKTYPE REQUIRED +END + +STRING F_R_UM 2 +BEGIN + PROMPT 28 7 "U.M. " + FIELD LF_RCONDV->UM + FLAG "U" + KEY 1 + USE LF_UMART KEY 2 + JOIN %UMS INTO CODTAB=UM + INPUT CODART F_R_CODRIGA_A SELECT + INPUT UM F_R_UM + DISPLAY "U.M." UM + DISPLAY "Desccrizione@50" %UMS->S0 + OUTPUT F_R_UM UM + CHECKTYPE REQUIRED +END + +STRING F_R_L_RICERCA 1 // campo di aggancio per la ricerca sui listini, nascosto +BEGIN + PROMPT 100 100 "" + FLAG "D" + USE LF_RCONDV SELECT (TIPO==#F_R_TIPO)&&(CATVEN==#F_R_L_CATVEN)&&(COD==#F_R_L_COD) +//INPUT TIPO F_R_TIPO SELECT +//INPUT CATVEN F_R_L_CATVEN +//INPUT COD F_R_L_COD + INPUT TIPORIGA F_R_TIPORIGA + INPUT CODRIGA F_R_CODRIGA_A + INPUT UM F_R_UM + INPUT NSCAGL F_R_NSCAGL + DISPLAY "Tipo" TIPORIGA + DISPLAY "Codice@20" CODRIGA + DISPLAY "U.M." UM + DISPLAY "N.S." NSCAGL + OUTPUT F_R_TIPORIGA TIPORIGA + OUTPUT F_R_CODRIGA_R CODRIGA[1,2] + OUTPUT F_R_CODRIGA_S CODRIGA[1,2] + OUTPUT F_R_CODRIGA_G CODRIGA[1,3] + OUTPUT F_R_CODRIGA_A CODRIGA + OUTPUT F_R_UM UM + OUTPUT F_R_NSCAGL NSCAGL +END + +STRING F_R_C_RICERCA 1 // campo di aggancio per la ricerca sui contratti, nascosto +BEGIN + PROMPT 100 100 "" + FLAG "D" + USE LF_RCONDV SELECT (TIPO==#F_R_TIPO)&&(TIPOCF==#F_R_C_TIPOCF)&&(CODCF==#F_R_C_CODCF)&&(COD==#F_R_L_COD) +//INPUT TIPO F_R_TIPO SELECT +//INPUT TIPOCF F_R_C_TIPOCF +//INPUT CODCF F_R_C_CODCF +//INPUT COD F_R_C_COD + INPUT TIPORIGA F_R_TIPORIGA + INPUT CODRIGA F_R_CODRIGA_A + INPUT NSCAGL F_R_NSCAGL + DISPLAY "Tipo" TIPORIGA + DISPLAY "Codice@20" CODRIGA + DISPLAY "N.S." NSCAGL + OUTPUT F_R_TIPORIGA TIPORIGA + OUTPUT F_R_CODRIGA_R CODRIGA[1,2] + OUTPUT F_R_CODRIGA_S CODRIGA[1,2] + OUTPUT F_R_CODRIGA_G CODRIGA[1,3] + OUTPUT F_R_CODRIGA_A CODRIGA + OUTPUT F_R_NSCAGL NSCAGL +END + +STRING F_R_O_RICERCA 1 // campo di aggancio per la ricerca sulle offerte, nascosto +BEGIN + PROMPT 100 100 "" + FLAG "D" + USE LF_RCONDV SELECT (TIPO==#F_R_TIPO)&&(COD==#F_R_L_COD) +//INPUT TIPO F_R_TIPO SELECT +//INPUT COD F_R_O_COD + INPUT TIPORIGA F_R_TIPORIGA + INPUT CODRIGA F_R_CODRIGA_A + INPUT UM F_R_UM + INPUT NSCAGL F_R_NSCAGL + DISPLAY "Tipo" TIPORIGA + DISPLAY "Codice@20" CODRIGA + DISPLAY "U.M." UM + DISPLAY "N.S." NSCAGL + OUTPUT F_R_TIPORIGA TIPORIGA + OUTPUT F_R_CODRIGA_R CODRIGA[1,2] + OUTPUT F_R_CODRIGA_S CODRIGA[1,2] + OUTPUT F_R_CODRIGA_G CODRIGA[1,3] + OUTPUT F_R_CODRIGA_A CODRIGA + OUTPUT F_R_UM UM + OUTPUT F_R_NSCAGL NSCAGL +END + +GROUPBOX DLG_NULL 78 9 // fine della chiave +BEGIN + PROMPT 0 0 "" + FLAG "R" +END + +NUMBER F_R_QLIM 15 5 +BEGIN + PROMPT 2 9 "Q.ta' limite scagl. " + FIELD LF_RCONDV->QLIM +END + +NUMBER F_R_PREZZO 18 2 +BEGIN + PROMPT 2 10 "Prezzo " + FIELD LF_RCONDV->PREZZO +END + +STRING F_R_SCONTO 25 +BEGIN + PROMPT 35 10 "Sconto " + FIELD LF_RCONDV->SCONTO + FLAG "U" +END + +BOOLEAN F_R_ADDIVA +BEGIN + PROMPT 2 11 "Addebito IVA" + FIELD LF_RCONDV->ADDIVA +END + +STRING F_R_CODIVA 4 +BEGIN + PROMPT 31 11 "Codice IVA " + FIELD LF_RCONDV->CODIVA + FLAG "U" + USE %IVA + INPUT CODTAB F_R_CODIVA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_CODIVA CODTAB + CHECKTYPE NORMAL +END + +NUMBER F_R_PERCPROVV 5 2 +BEGIN + PROMPT 2 12 "Provvigione % " + FIELD LF_RCONDV->PERCPROVV + NUM_EXPR (#F_R_PERCPROVV>=0)&&(#F_R_PERCPROVV<=100) + WARNING "La percentuale di provvigione deve essere compresa tra 0 e 100" +END + +NUMBER F_R_QOM 15 5 +BEGIN + PROMPT 2 13 "Q.ta' sconto/omaggio " + FIELD LF_RCONDV->QOM +END + +STRING F_R_UMOM 2 +BEGIN + PROMPT 47 13 "U.M. q.ta' omaggio " + FIELD LF_RCONDV->UMOM + FLAG "U" + USE LF_UMART KEY 2 + JOIN %UMS INTO CODTAB=UM + INPUT CODART F_R_CODARTOM SELECT + INPUT UM F_R_UMOM + DISPLAY "U.M." UM + DISPLAY "Desccrizione@50" %UMS->S0 + OUTPUT F_R_UMOM UM +END + +NUMBER F_R_QBASE 15 5 +BEGIN + PROMPT 2 14 "Q.ta' base sconto " + FIELD LF_RCONDV->QBASE +END + +STRING F_R_CODARTOM 20 +BEGIN + PROMPT 2 15 "Codice art. omaggio " + FIELD LF_RCONDV->CODARTOM + FLAG "U" + USE LF_ANAGR + INPUT CODART F_R_CODARTOM + DISPLAY "Articolo@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT F_R_CODARTOM CODART + CHECKTYPE NORMAL +END + +NUMBER F_R_PROMAGGIO 18 2 +BEGIN + PROMPT 2 16 "Prezzo omaggio " + FIELD LF_RCONDV->PROMAGGIO +END + +//STRINF F_R_CO_CODLOTTO 6 +//BEGIN +//PROMPT 2 17 "Codice lotto " +//FIELD LF_RCONDV->CODLOTTO +//FLAG "U" +//END + +BOOLEAN F_R_O_ARTES +BEGIN + PROMPT 47 17 "Art. in esaurimento" + FIELD LF_RCONDV->ARTES +END + +ENDPAGE + +ENDMASK diff --git a/ve/ve3.cpp b/ve/ve3.cpp index d3315068e..4fe69416f 100755 --- a/ve/ve3.cpp +++ b/ve/ve3.cpp @@ -3,22 +3,19 @@ #include //extern int ve3100(int argc, char* argv[]); // stampa tabelle sconti (di riga/di documento/incondizionati) -extern int ve3200(int argc, char* argv[]); // stampa testate listini/contratti/offerte -//extern int ve3300(int argc, char* argv[]); // stampa righe listini/contratti/offerte -extern int ve3400(int argc, char* argv[]); // stampa anagrafica di magazzino +extern int ve3200(int argc, char **argv); // stampa testate listini/contratti/offerte +extern int ve3400(int argc, char **argv); // stampa anagrafica di magazzino -int main( int argc, char** argv) { +int main(int argc, char **argv) { int rt= -1; const int r= (argc>1)?(atoi(&argv[1][1])):(-1); switch (r) { - //case 0: rt = ve3100(argc, argv); break; case 1: rt = ve3200(argc, argv); break; - //case 2: rt = ve3300(argc, argv); break; case 3: rt = ve3400(argc, argv); break; - default: error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 2 [L|C|O] | 3]", argv[0]); break; + default: error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 3]", argv[0]); break; } return (rt); } diff --git a/ve/ve3200.cpp b/ve/ve3200.cpp index 75f902b65..4f4b75eb2 100755 --- a/ve/ve3200.cpp +++ b/ve/ve3200.cpp @@ -1,54 +1,98 @@ #include #include +#include +#include +#include +#include "veconf.h" #include "ve3200.h" -#define UMS1 201 -#define UMS2 202 +#define RCONDV_APP "ve2 -2" +#define DESTROY(x) { mask.field(x).reset_key(1); mask.hide(x); } +#define KILL(x) { mask.field(x).reset_key(1); mask.disable(x); } - -// !! Manca la gestione della maschera di selezione del tipo di archivio nel caso non sia -// specificato sulla linea di comando -// !! Manca la gestione della maschera di filtro (con i relativi handler sui vari tipi di -// abilitazioni incrociate) -// !! Manca la selezione del file in corso di stampa nella set_page() e la relativa impostazione -// della pagina -// !! Manca la creazione della struttura della stampa dei dati -// !! Manca tutto il resto! +#define CVE 201 +#define VAL 202 +#define UMS1 203 +#define UMS2 204 class TStampa_condizioni_vendita: public TPrint_application { TRelation *_rel; // relazione principale + TString16 _condven; // stringa che indica il tipo di archivio + bool _codlis_catven; // booleano di abilitazione della categoria di vendita nella chiave dei listini + bool _listval; // booleano di abilitazione della stampa dei listini in valuta + bool _testacomp, _righecomp; // booleani di selezione della stampa completa per testata e righe; + bool _gest_val, _gest_um, _gest_sca, _gest_so; // booleani per l'abilitazione di valute, unità di misura, scaglioni e sconti/omaggi + int _rcondv_link_id; // id del link ipertestuale all'anagrafica di magazzino protected: virtual bool user_create(void); virtual bool user_destroy(void); virtual bool set_print(int); virtual void set_page(int, int); virtual void preprocess_header(void); - virtual void process_link(int, const char *); +//virtual void process_link(int, const char *); }; bool TStampa_condizioni_vendita::user_create() { - _rel= new TRelation(LF_CONDV); // crea la relazione principale - _rel->add(LF_RCONDV, "TIPO==TIPO|CATVEN==CATVEN|TIPOCF==TIPOCF|CODCF==CODCF|COD==COD"); - _rel->add("%CVE", "CODTAB==CATVEN"); - _rel->add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF"); - _rel->add("%VAL", "CODTAB==CODVAL"); - _rel->add("%UMS", "CODTAB==UM", 1, LF_RCONDV, UMS1); - _rel->add("%UMS", "CODTAB==UMOM", 1, LF_RCONDV, UMS2); - add_cursor(new TCursor(_rel)); // costruisce il cursore sulla relazione e lo passa alla stampa - add_file(LF_CONDV); // notifica il file della testata alla stampa - add_file(LF_RCONDV); // notifica il file delle righe alla stampa - enable_print_menu(); // abilita il menù di stampa - enable_setprint_menu(); // abilita il menù di settaggio della stampa - return TRUE; + bool gotcha= FALSE; // booleano di avvenuta inizializzazione + int indice; // indice delle variabili di configurazione per le abilitazioni + _condven= "*"; // inizializzazione dell'indicatore del tipo di archivio + if (argc()>2) _condven= argv(2); // se c'è, prende il tipo di archivio dalla linea di comando + else { + TMask choose("ve3200"); // istanzia la maschera di scelta del tipo di archivio + if (choose.run() == K_ENTER) _condven= choose.get(F_TIPOCV); // prende il tipo di archivio dalla maschera + } + _condven.upper(); // rende la stringa upper-case + TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente + switch (_condven[0]) { + case 'L': // listini + indice= A_LISTINI; // setta l'indice dell'archivio listini + if (!(prassid.get_bool("GES", NULL, indice))) error_box("L'archivio Listini non è abilititato"); // controlla che l'archivio listini sia abilitato + else { + _codlis_catven= prassid.get_bool("CODLISCV"); // setta il booleano di abilitazione delle categoria di vendita + gotcha= TRUE; + } + break; + case 'C': // contratti + indice= A_CONTRATTI; // setta l'indice dell'archivio contratti + if (!(prassid.get_bool("GES", NULL, indice))) error_box("L'archivio Contratti non è abilititato"); // controlla che l'archivio contratti sia abilitato + else gotcha= TRUE; + break; + case 'O': // offerte + indice= A_OFFERTE; // setta l'indice dell'archivio offerte + if (!(prassid.get_bool("GES", NULL, indice))) error_box("L'archivio Offerte non è abilititato"); // controlla che l'archivio offerte sia abilitato + else gotcha= TRUE; + break; + default: // messaggio di errore se si indica un archivio non valido + error_box("Indicare l'archivio sulla linea di comando (L, C o O) oppure selezionarla dalla maschera di partenza"); + break; + } + if (gotcha) { // se è stato selezionato correttamente un archivio completa l'inizializzazione + _gest_um= prassid.get_bool("GESUM", NULL, indice); // setta il booleano di abilitazione delle unità di misura + _gest_sca= prassid.get_bool("GESSCA", NULL, indice); // setta il booleano di abilitazione degli scaglioni + _gest_so= prassid.get_bool("GESSO", NULL, indice); // setta il booleano di abilitazione degli sconti/omaggi + _gest_val= prassid.get_bool("GESVAL"); // legge il booleano di abilitazione della gestione delle valute + _rel= new TRelation(LF_RCONDV); // crea la relazione principale + _rel->add(LF_CONDV, "TIPO==TIPO|CATVEN==CATVEN|TIPOCF==TIPOCF|CODCF==CODCF|COD==COD"); + _rel->add("%CVE", "CODTAB==CATVEN", 1, LF_CONDV, CVE); + _rel->add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF", 1, LF_CONDV); + _rel->add("%VAL", "CODTAB==CODVAL", 1, LF_CONDV, VAL); + _rel->add("%UMS", "CODTAB==UM", 1, LF_RCONDV, UMS1); + _rel->add("%UMS", "CODTAB==UMOM", 1, LF_RCONDV, UMS2); + add_cursor(new TCursor(_rel)); // costruisce il cursore sulla relazione e lo passa alla stampa + add_file(LF_RCONDV); // notifica il file delle righe alla stampa + enable_print_menu(); // abilita il menù di stampa + enable_setprint_menu(); // abilita il menù di settaggio della stampa + } + return (gotcha); } bool TStampa_condizioni_vendita::user_destroy() { @@ -57,150 +101,160 @@ bool TStampa_condizioni_vendita::user_destroy() { } bool TStampa_condizioni_vendita::set_print(int) { - TMask mask("ve3200x"); // istanzia la maschera di selezione del filtro di stampa + TMask mask("ve3200x"); + mask.set(F_TIPO, _condven); // settaggio del campo di tipo archivio + switch (_condven[0]) { + case 'L': // listini + DESTROY(F_C_COD); // eliminazione campi di altri archivi + DESTROY(F_C_TIPOCF); + DESTROY(F_C_CODCF); + DESTROY(F_O_COD); + if (!_codlis_catven) KILL(F_L_CATVEN); // disabilita condizionalmente le categorie di vendita + if (!_gest_val) KILL(F_L_LISTVALUTA); // disabilita condizionalmente la gestione delle valute + break; + case 'C': // contratti + DESTROY(F_L_COD); // settaggio dei campi da eliminare + DESTROY(F_L_CATVEN); + DESTROY(F_L_LISTVALUTA); + DESTROY(F_O_COD); + break; + case 'O': // offerte + DESTROY(F_L_COD); // settaggio dei campi da eliminare + DESTROY(F_L_CATVEN); + DESTROY(F_L_LISTVALUTA); + DESTROY(F_C_TIPOCF); + DESTROY(F_C_CODCF); + DESTROY(F_C_COD); + break; + } if (mask.run()== K_ENTER) { // lancia la maschera, se viene confermata vengono trovati gli estremi del cursore - - /* TLocalisamfile &anagr= _rel->lfile(); // prende il file principale - TRectype da(anagr.curr()), a(anagr.curr()); // prende due copie del record del file principale - da.zero(); // azzera il record di inizio - a.zero(); // azzera il record di fine - if (mask.get(F_CODART_1).not_empty()) { // se il campo "dall'articolo..." non è vuoto viene trovato il record di inizio - anagr.zero(); // svuota il record corrente - anagr.put("CODART", mask.get(F_CODART_1)); // compone la chiave - if (anagr.read()== NOERR) da= anagr.curr(); // si posiziona, se il record esiste il record iniziale viene riempito - } - if (mask.get(F_CODART_2).not_empty()) { // se il campo "all'articolo..." non è vuoto viene trovato il record di fine - anagr.zero(); // svuota il record corrente - anagr.put("CODART", mask.get(F_CODART_2)); // compone la chiave - if (anagr.read()== NOERR) a= anagr.curr(); // si posiziona, se il record esiste il record finale viene riempito - } - current_cursor()->setregion(da, a); // viene settata la regione del cursore - if (_st_umart) { // se la stampa delle unità di misura è abilitata vengono aperti i file relativi - _umart= new TLocalisamfile(LF_UMART); // crea il file sulle unità di misura dell'articolo - _arr_umart= new TRecord_array(LF_UMART, "NRIGA"); // crea il record array sulle unità di misura degli articoli - } - if (_st_codcorr) { // se la stampa dei codici corrispondenti è abilitata vengono aperti i file relativi - _codcorr= new TLocalisamfile(LF_CODCORR); // crea il file con i codici corrispondenti dell'articolo - _arr_codcorr= new TRecord_array(LF_CODCORR, "NRIGA"); // crea il record array sui codici corrispondenti - } - force_setpage(); // forza il lancio della set_page() ad ogni record del file da stampare - disable_links(); // disabilita tutti i link ipertestuali - _anagr_link_id= enable_link("Collegamento a anagrafica di magazzino", 'g'); // abilita il collegamento all'anagrafica di magazzino - */ + _listval= mask.get_bool(F_L_LISTVALUTA); // legge lo stato del checkbox di abilitazione dei listini in valuta + _testacomp= mask.get_bool(F_TESTACOMP); // legge l'abilitazione della stampa completa della testata + _righecomp= mask.get_bool(F_RIGHECOMP); // legge l'abilitazione della stampa completa delle righe + TLocalisamfile &rcondv= _rel->lfile(); // prende il file principale + TString filtro; + filtro << "(TIPO==\"" << _condven << "\")"; + switch (_condven[0]) { // impostazione della chiave della testata + case 'L': // listini + if (_codlis_catven) filtro << "&&(CATVEN==\"" << mask.get(F_L_CATVEN) << "\")"; + filtro << "&&(COD==\"" << mask.get(F_L_COD) << "\")"; + break; + case 'C': // contratti + filtro << "&&(TIPOCF==\"" << mask.get(F_C_TIPOCF) << "\")"; + filtro << "&&(CODCF==\"" << mask.get(F_C_CODCF) << "\")"; + filtro << "&&(COD==\"" << mask.get(F_C_COD) << "\")"; + break; + case 'O': // offerte + filtro << "&&(COD==\"" << mask.get(F_O_COD) << "\")"; + break; + } + if (!(mask.get_bool(F_TUTTERIGHE))) { + filtro << "&&(TIPORIGA==\"" << mask.get(F_TIPORIGHE) << "\")"; + filtro << "&&(CODRIGA>=\"" << mask.get(F_DARIGA_A) << "\")"; + filtro << "&&(CODORIGA<=\"" << mask.get(F_ARIGA_A) << "\")"; + } + current_cursor()->setfilter(filtro); + force_setpage(); // forza il lancio della set_page() ad ogni record del file da stampare + disable_links(); // disabilita tutti i link ipertestuali +// _rcondv_link_id= enable_link("Collegamento a righe condizioni di vendita", 'g'); // abilita il collegamento return TRUE; } else return FALSE; } /* 1 1 1 1 - 1 2 3 4 5 6 7 8 9 0 1 2 3 - 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 + 1 2 3 4 5 6 7 8 9 0 1 2 3 +123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 +CF CODCF CV COD DESCR VALIN VALFIN IL UM SC SO ST OB SUC SEQ +. ...... .. ... .................................................. ..-..-.. ..-..-.. . . . . . . ... ... +CVA CAMBIO DATACAM +... ...............,..... ..-..-.. +*/ - */ - -void TStampa_condizioni_vendita::preprocess_header() -{ - - - /*reset_header(); // l'header viene resettato - int i= 1; // contatore delle linee - set_header(i, "@125gPag @#"); // la prima linea contiene, sicuramente, il numero di pagina - const long firm= get_firm(); // legge l'id della ditta corrente - TLocalisamfile ditte(LF_NDITTE); // apre il file ditte - ditte.zero(); // vuota il record - ditte.put("CODDITTA", firm); // riempie la chiave - if (ditte.read()== NOERR) { // se il record della ditta viene trovato viene settato l'header - const TString &s= ditte.get("RAGSOC"); // legge la ragione sociale della ditta - set_header(i, "Ditta %ld %s", firm, (const char *)s); // setta il nome e l'id della ditta della prima linea dell'header - } - set_header(++i, "Codice articolo@22gT@24gDescrizione@75gGrMer@81gDescrizione gruppo merceologico"); // setta la linea successiva dell'header - if (_st_umart || _st_codcorr) set_header(++i, ""); // crea una linea vuota se almeno una stampa condizionale è abilitata - if (_st_codcorr) set_header(i, "Cod. art. altern."); // se è abilitata la stampa dei codici corrispondenti l'header lo indica - if (_st_umart) set_header(i, "@50gUM@53gFatt. conv."); // se è abilitata la stampa delle unità di misura l'header lo indica - set_header(++i, "Forn.@7gRagione sociale@58gCosto standard@83gPeso@105gTara"); // la linea successiva contiene il fornitore e altri dati - if (_st_umart) set_header(i, "@80gUP"); // su questa linea viene indicata anche l'unità di misura del peso (se abilitata) - set_header(++i, "Pezzi x conf.@23gPezzi x collo@45gAR@48gRD"); // l'ultima linea d'header contiene i pezzi per confezione e altri dati - if (_st_fisc) set_header(i, "@51gAF@54gRagFs@60gC@62gCCA@66gGrA@70gCnA@74gSottCA@81gCCV@85gGrV@89gCnV@93gSottCV@100gClasseDog@111gIva@116gIvaR"); // aggiunge i dati fiscali sull'ultima linea - set_header(++i, ""); // aggiunge due linee vuote - set_header(++i, ""); - */ +/* 1 1 1 1 + 1 2 3 4 5 6 7 8 9 0 1 2 3 +123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 +T CODRIGA UM S QLIM PREZZO SCONTO A CIVA PERCPROV +. .................... .. . ...............,..... ..................,.. ......................... . .... .....,.. +UO QOM QBASE CODARTOM PROMAGGIO CODLOT E +.. ...............,..... ...............,..... .................... ..................,.. ...... . +*/ +void TStampa_condizioni_vendita::preprocess_header() { + reset_header(); // l'header viene resettato + int i= 1; // contatore delle linee + set_header(i, "@125gPag @#"); // la prima linea contiene, sicuramente, il numero di pagina + const long firm= get_firm(); // legge l'id della ditta corrente + TLocalisamfile ditte(LF_NDITTE); // apre il file ditte + ditte.zero(); // vuota il record + ditte.put("CODDITTA", firm); // riempie la chiave + if (ditte.read()== NOERR) { // se il record della ditta viene trovato viene settato l'header + const TString &s= ditte.get("RAGSOC"); // legge la ragione sociale della ditta + set_header(i, "Ditta %ld %s", firm, (const char *)s); // setta il nome e l'id della ditta della prima linea dell'header + } + if ((get_page_number()==1) && (!_testacomp)) { // se siamo sulla prima pagina si stampa la testata + set_header(++i, "@14gCod @18gDescrizione @69gVal. dal @78gal @87gIL @90gUM @93gSC @96gSO @99gST @109gSeq"); // setta l'header del codice, della descrizione, della validità, dei booleani, ecc. + if ((_condven=="L") && _codlis_catven) set_header(i, "@11gCV"); // setta l'header della categoria di vendita + if (_condven=="C") set_header(i, "CF @4gCod.CF @102gOB"); // setta l'header di clienti/fornitori e di contratto obbligatorio + if ((_condven=="L") || (_condven=="C")) set_header(i, "@105gSuc"); // setta l'header per il codice di listino successivo + if (_gest_val) set_header(++i, "Val @5gCambio @27gData cambio"); // setta l'header del codice e della descrizione + set_header(++i, ""); // salta una riga + } + if (!_righecomp) { + set_header(++i, "T @2gCodice riga @27gS @29gQuantita' limite @51gPrezzo @73gSconto @99gA @101gIVA @106gProvvig."); // setta l'header della chiave, della quantità limite e del prezzo + if ((_condven=="L") || (_condven=="O")) set_header(i, "@24gUM"); // setta l'header dell'unità di misura + set_header(++i, "UMO @5gQuantita' omaggio @27gQuantita' base @49gCod. art. omagg. @70gPrezzo omaggio"); // setta l'header dello sconto/omaggio + if ((_condven=="C") || (_condven=="O")) set_header(i, "@92gLotto"); // setta l'header del lotto + if (_condven=="O") set_header(i, "@99gEsaur."); // setta l'header dell'articolo in esaurimento + } + set_header(++i, ""); // aggiunge due linee vuote + set_header(++i, ""); } void TStampa_condizioni_vendita::set_page(int file, int) { - - /*if (file== LF_ANAGR) { // se il file in stampa non è il file principale non c'è nulla da fare - TLocalisamfile &anagr= _rel->lfile(); // prende il riferimento al file principale - set_row(1, "$[g]@20s$[n]@22g@1s@24g@50s@75g@5s@81g@50s", FLD(LF_ANAGR, "CODART"), FLD(LF_ANAGR, "TIPO"), FLD(LF_ANAGR, "DESCR"), FLD(LF_ANAGR, "GRMERC1"), FLD(-GMC1, "S0")); // imposta la prima linea di dati - int n_codcorr= 0, n_umart= 0, n_gmc= (anagr.get("GRMERC2").not_empty())?(1):(0)+(anagr.get("GRMERC3").not_empty())?(1):(0); // legge il numero di gruppi merc. - if (_st_codcorr) { // se è abilitata la stampa dei codici corrispondenti viene letto il numero di codici presenti, altrimenti viene lasciato a 0 - _codcorr->zero(); // il record corrente del file dei codici corrispondenti viene vuotato - _codcorr->put("CODART", anagr.get("CODART")); // viene composta la chiave - _arr_codcorr->read(_codcorr->curr()); // il record array dei codici viene caricato - n_codcorr= _arr_codcorr->rows(); // viene settato il numero di codici trovato - } - if (_st_umart) { // se è abilitata la stampa delle unità di misura viene letto il numero di unità di mis. da stampare, altrimenti viene lasciato a 0 - _umart->zero(); // il record corrente del file delle unità di misura viene vuotato - _umart->put("CODART", anagr.get("CODART")); // viene composta la chiave - _arr_umart->read(_umart->curr()); // il record array delle unità di misura viene caricato - n_umart= _arr_umart->rows(); // viene settato il numero di unità di misura trovate - } - int n_max= max3(n_gmc, n_codcorr, n_umart); // viene trovato il maggiore dei tre contatori (gruppi merc., unità di mis. e codici corrisp.) - for (int i=1; i<=n_max; i++) { // ciclo sul maggiore dei contatori - set_row(i+1, ""); // vuota la linea di stampa corrente - if (i<=n_codcorr) { // se ci sono ancora codici corrispondenti gli spazi relativi della riga vengono riempiti - TString codartalt(_arr_codcorr->row(i, FALSE).get("CODARTALT")); // legge il codice corrispondente dell'articolo - TString tipo(_arr_codcorr->row(i, FALSE).get("TIPO")); // legge il tipo - set_row(i+1, "@1g%-20s@22g%1s@24gCodice alternativo", (const char *)codartalt, (const char *)tipo); // setta gli spazi della riga con i valori letti - } - if (i<=n_umart) { // se ci sono ancora unità di misura gli spazi relativi della riga vengono riempiti - TString um(_arr_umart->row(i, FALSE).get("UM")); // legge l'id dell'unità di misura - real fc(_arr_umart->row(i, FALSE).get_real("FC")); // legge il suo fattore di conversione - set_row(i+1, "@50g%-2s@53g%-s", (const char *)um, fc.string(10, 5)); // setta gli spazi della riga con i valori letti - } - if (i<=n_gmc) { // se ci sono ancora gruppi merceologici gli spazi relativi della riga vengono riempiti - TString grmerc, descr; // istanzia le due variabili per codice del gruppo e descrizione - if (i==1) { // se è il primo deve essere letto dal secondo campo GRMERC del file dell'anagrafica - grmerc= anagr.get("GRMERC2"); // legge il codice del gruppo - descr= _rel->lfile(-GMC2).get("S0"); // legge la sua descrizione dalla tabella - } else { // se è il secondo deve essere letto dal terzo campo GRMERC del file dell'anagrafica - grmerc= anagr.get("GRMERC3"); // legge il codice del gruppo - descr= _rel->lfile(-GMC3).get("S0"); // legge la sua descriziona dalla tabella - } - set_row(i+1, "@75g%-5s@81g%-50s", (const char *)grmerc, (const char *)descr); - } - } - set_row(n_max+2, "@5s@7g@50s@58g@15.5n@83g@15.5n@105g@15.5n", FLD(LF_ANAGR, "CODFORN"), FLD(LF_CLIFO, "RAGSOC"), FLD(LF_ANAGR, "COSTSTD"), FLD(LF_ANAGR, "PESO"), FLD(LF_ANAGR, "TARA")); // imposta la penultima linea - if (_st_umart) set_row(n_max+2, "@80g@2s", FLD(LF_ANAGR, "UMP")); // se è abilitata la stampa delle unità di misura aggiunge l'u.m. del peso - set_row(n_max+3, "@15.5n@23g@15.5n@45g@f@48g@f", FLD(LF_ANAGR, "PPCONF"), FLD(LF_ANAGR, "PPCOLLO"), FLD(LF_ANAGR, "ARTPROD"), FLD(LF_ANAGR, "RIORDINO")); // imposta l'ultima linea - if (_st_fisc) set_row(n_max+3, "@51g@f@54g@5s@60g@1s@62g@3s@66g@3n@70g@3n@74g@6n@81g@3s@85g@3n@89g@3n@93g@6n@100g@10s@111g@4s@116g@4s", // imposta i dati fiscali sull'ultima linea - FLD(LF_ANAGR, "ARTFIS"), FLD(LF_ANAGR, "RAGGFIS"), FLD(LF_ANAGR, "CLASSEFIS"), - FLD(LF_ANAGR, "CATCONA"), FLD(LF_ANAGR, "GRUPPOA"), FLD(LF_ANAGR, "CONTOA"), FLD(LF_ANAGR, "SOTTOCA"), - FLD(LF_ANAGR, "CATCONV"), FLD(LF_ANAGR, "GRUPPOV"), FLD(LF_ANAGR, "CONTOV"), FLD(LF_ANAGR, "SOTTOCV"), - FLD(LF_ANAGR, "CLASSDOG"), FLD(LF_ANAGR, "CODIVA"), FLD(LF_ANAGR, "CODIVAR")); - set_row(n_max+4, ""); // aggiunge due linee vuote - set_row(n_max+5, ""); - } - */ - + if (file== LF_RCONDV) { // se il file in stampa non è il file principale non c'è nulla da fare + int i= 0; // indice di riga + if (get_page_number()==1) { // se siamo sulla prima pagina deve essere stampata anche la testata + if (_testacomp) { // stampa della testata in forma completa + // ... + } else { // stampa della testata in forma abbreviata + set_row(++i, "@14g@3s @18g@50s @69g@d @78g@d @87g@1s @90g@1s @93g@1s @96g@1s @99g@1s @109g@3s", FLD(LF_CONDV, "COD"), FLD(LF_CONDV, "DESCR"), FLD(LF_CONDV, "VALIN"), FLD(LF_CONDV, "VALFIN"), FLD(LF_CONDV, "IMPLORDI"), FLD(LF_CONDV, "GESTUM"), + FLD(LF_CONDV, "GESTSCAGL"), FLD(LF_CONDV, "GESTSCO"), FLD(LF_CONDV, "SCONST"), FLD(LF_CONDV, "SEQRIC")); // codice, descriz., validità e booleani + if ((_condven=="L") && _codlis_catven) set_row(i, "@11g@2s", FLD(LF_CONDV, "CATVEN")); // categoria di vendita + if (_condven=="C") set_row(i, "@1s @4g@6s @102g@1s", FLD(LF_CONDV, "TIPOCF"), FLD(LF_CONDV, "CODCF"), FLD(LF_CONDV, "OBBLIG")); // cliente/fornitore e booleano + if ((_condven=="L") || (_condven=="C")) set_row(i, "@105g@3s", FLD(LF_CONDV, "CODLISSUCC")); // codice successivo + if (_gest_val) set_row(++i, "@3s @5g@15.5n @27g@d", FLD(LF_CONDV, "CODVAL"), FLD(LF_CONDV, "CAMBIO"), FLD(LF_CONDV, "DATACAM")); // cambio e valuta + set_row(++i, ""); // salta una riga + } + } + if (_righecomp) { // stampa della riga in forma completa + // ... + } else { // stampa della riga in forma abbreviata + set_row(++i, "@1s @2g@20s @27g@1s @29g@15.5n @51g@18.2n @73g25s @99g@1s @101g@4s @106g@5.2n", FLD(LF_RCONDV, "TIPORIGA"), FLD(LF_RCONDV, "CODRIGA"), FLD(LF_RCONDV, "NSCAGL"), FLD(LF_RCONDV, "QLIM"), FLD(LF_RCONDV, "PREZZO"), + FLD(LF_RCONDV, "SCONTO"), FLD(LF_RCONDV, "ADDIVA"), FLD(LF_RCONDV, "CODIVA"), FLD(LF_RCONDV, "PERCPROVV")); // codice, prezzo... + if ((_condven=="L") || (_condven=="O")) set_row(i, "@24g@2s", FLD(LF_RCONDV, "UM")); // unità di misura + set_row(++i, "@2s @5g@15.5n @27g@15.5n @49g@20s @70g@18.2n", FLD(LF_RCONDV, "UMOM"), FLD(LF_RCONDV, "QOM"), FLD(LF_RCONDV, "QBASE"), FLD(LF_RCONDV, "CODARTOM"), FLD(LF_RCONDV, "PROMAGGIO")); // sconto/omaggio + if ((_condven=="C") || (_condven=="O")) set_row(i, "@92g@6s", FLD(LF_RCONDV, "CODLOTTO")); // lotto + if (_condven=="O") set_row(i, "@99g@1s", FLD(LF_RCONDV, "ARTES")); + set_row(++i, ""); // salta una riga + } + } } +/* void TStampa_condizioni_vendita::process_link(int id, const char *text) { - - /*if (id== _anagr_link_id) { + if (id== _rcondv_link_id) { TString body= "1|"; // istanzia la stringa per il corpo del messaggio e gli aggiunge il numero della chiave e il separatore body << text; // aggiunge al corpo del messaggio il codice dell'articolo per riempire la chiave - TMessage msg(ANAMAG_APP, MSG_LN, (const char *)body); // crea il messaggio per l'applicazione di anagrafica di magazzino + TMessage msg(RCONDV_APP, MSG_LN, (const char *)body); // crea il messaggio per l'applicazione msg.send(); // invia il messaggio - TExternal_app ve2_3(ANAMAG_APP); // crea l'applicazione esterna dell'anagrafica di magazzino - ve2_3.run(); // lancia l'applicazione esterna - } - */ - + TExternal_app ve2_2(RCONDV_APP); // crea l'applicazione esterna + ve2_2.run(); // lancia l'applicazione esterna + } } +*/ - -int ve3200(int argc, char* argv[]) { +int ve3200(int argc, char **argv) { TStampa_condizioni_vendita a; a.run(argc, argv, "Stampa condizioni vendita"); diff --git a/ve/ve3200x.h b/ve/ve3200x.h index 8b1378917..c247d5df5 100755 --- a/ve/ve3200x.h +++ b/ve/ve3200x.h @@ -1 +1,23 @@ +#define F_TIPO 102 + +#define F_TIPORIGHE 111 +#define F_TUTTERIGHE 112 +#define F_DARIGA_A 113 +#define F_DARIGA_G 114 +#define F_DARIGA_R 115 +#define F_ARIGA_A 116 +#define F_ARIGA_G 117 +#define F_ARIGA_R 118 +#define F_TESTACOMP 119 +#define F_RIGHECOMP 120 + +#define F_L_CATVEN 131 +#define F_L_COD 132 +#define F_L_LISTVALUTA 133 + +#define F_C_TIPOCF 141 +#define F_C_CODCF 142 +#define F_C_COD 143 + +#define F_O_COD 151 diff --git a/ve/ve3200x.uml b/ve/ve3200x.uml index 7a878e897..3bdba56c7 100755 --- a/ve/ve3200x.uml +++ b/ve/ve3200x.uml @@ -1,7 +1,7 @@ #include #include "ve3200x.h" -PAGE "Stampa condizioni di vendita" -1 -1 72 14 +PAGE "Stampa condizioni di vendita" -1 -1 64 15 STRING F_TIPO 1 // tipo di archivio BEGIN @@ -11,7 +11,7 @@ END STRING F_L_CATVEN 2 // categoria di vendita, solo listini BEGIN - PROMPT 2 2 "Cat. vendita " + PROMPT 2 1 "Cat. vendita " FLAG "U" USE %CVE INPUT CODTAB F_L_CATVEN @@ -22,14 +22,14 @@ END LIST F_C_TIPOCF 7 // tipo cliente/fornitore, solo contratti BEGIN - PROMPT 2 2 "Tipo " + PROMPT 2 1 "Tipo " ITEM "C|Cliente" ITEM "F|Fornit." END STRING F_C_CODCF 6 // codice cliente/fornitore, solo contratti BEGIN - PROMPT 22 2 "Codice " + PROMPT 22 1 "Codice " FLAG "U" USE LF_CLIFO INPUT TIPOCF F_C_TIPOCF @@ -43,7 +43,7 @@ END STRING F_L_COD 3 // codice listino, solo listini BEGIN - PROMPT 2 4 "Codice listino " + PROMPT 2 3 "Codice listino " FLAG "U" USE LF_CONDV INPUT TIPO F_TIPO SELECT @@ -59,7 +59,7 @@ END NUMBER F_C_COD 3 // codice contratto, solo contratti BEGIN - PROMPT 2 4 "Numero contratto " + PROMPT 2 3 "Numero contratto " USE LF_CONDV INPUT TIPO F_TIPO SELECT INPUT TIPOCF F_C_TIPOCF @@ -77,7 +77,7 @@ END STRING F_O_COD 3 // codice offerta, solo offerte BEGIN - PROMPT 2 3 "Codice offerta " + PROMPT 2 2 "Codice offerta " FLAG "U" USE LF_CONDV INPUT TIPO F_TIPO SELECT @@ -90,367 +90,117 @@ END LIST F_TIPORIGHE 8 // listbox per tipo di selezione righe BEGIN - PROMPT 2 6 "Righe " + PROMPT 2 5 "Righe " ITEM "A|Articolo " MESSAGE CLEAR,F_DARIGA_A|ENABLE,F_DARIGA_A|SHOW,F_DARIGA_A|CLEAR,F_ARIGA_A|ENABLE,F_ARIGA_A|SHOW,F_ARIGA_A|HIDE,F_DARIGA_G|HIDE,F_DARIGA_R|HIDE,F_ARIGA_G|HIDE,F_ARIGA_R - ITEM "G|Gr. merc." MESSAGE CLEAR,F_DARIGA_G|ENABLE,F_DARIGA_G|SHOW,F_DARIGA_G|CLEAR,F_ARIGA_G|ENABLE,F_ARIGA_G|SHOW,F_ARIGA_A|HIDE,F_DARIGA_A|HIDE,F_DARIGA_R|HIDE,F_ARIGA_A|HIDE,F_ARIGA_R + ITEM "G|Gr. merc." MESSAGE CLEAR,F_DARIGA_G|ENABLE,F_DARIGA_G|SHOW,F_DARIGA_G|CLEAR,F_ARIGA_G|ENABLE,F_ARIGA_G|SHOW,F_ARIGA_G|HIDE,F_DARIGA_A|HIDE,F_DARIGA_R|HIDE,F_ARIGA_A|HIDE,F_ARIGA_R ITEM "R|Rag. fis." MESSAGE CLEAR,F_DARIGA_R|ENABLE,F_DARIGA_R|SHOW,F_DARIGA_R|CLEAR,F_ARIGA_R|ENABLE,F_ARIGA_R|SHOW,F_ARIGA_R|HIDE,F_DARIGA_A|HIDE,F_DARIGA_G|HIDE,F_ARIGA_A|HIDE,F_ARIGA_G END BOOLEAN F_TUTTERIGHE // checkbox per selezione di tutte le righe BEGIN - PROMPT 20 6 "Tutte" + PROMPT 22 5 "Tutte" MESSAGE TRUE DISABLE,F_TIPORIGHE|DISABLE,F_DARIGA_A|DISABLE,F_DARIGA_G|DISABLE,F_DARIGA_R|DISABLE,F_ARIGA_A|DISABLE,F_ARIGA_G|DISABLE,F_ARIGA_R MESSAGE FALSE ENABLE,F_TIPORIGHE|ENABLE,F_DARIGA_A|ENABLE,F_DARIGA_G|ENABLE,F_DARIGA_R|ENABLE,F_ARIGA_A|ENABLE,F_ARIGA_G|ENABLE,F_ARIGA_R END STRING F_DARIGA_A 20 // riga articolo di inizio BEGIN - PROMPT 2 8 "Da " + PROMPT 2 7 "Da " USE LF_ANAGR - INPUT CODART F_R_CODRIGA_A + INPUT CODART F_DARIGA_A DISPLAY "Articolo@20" CODART DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_CODRIGA_A CODART + OUTPUT F_DARIGA_A CODART END STRING F_DARIGA_G 20 // riga gruppo merceologico di inizio BEGIN - PROMPT 2 8 "Da " + PROMPT 2 7 "Da " USE %GMC - INPUT CODTAB F_R_CODRIGA_G + INPUT CODTAB F_DARIGA_G DISPLAY "Gr. merc." CODTAB DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_G CODTAB + OUTPUT F_DARIGA_G CODTAB MESSAGE COPY,F_DARIGA_A END STRING F_DARIGA_R 20 // riga raggruppamento fiscale di inizio BEGIN - PROMPT 2 8 "Da " + PROMPT 2 7 "Da " USE %RFA - INPUT CODTAB F_R_CODRIGA_R + INPUT CODTAB F_DARIGA_R DISPLAY "Ragg. fisc." CODTAB DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_R CODTAB + OUTPUT F_DARIGA_R CODTAB MESSAGE COPY,F_DARIGA_A END STRING F_ARIGA_A 20 // riga articolo di fine BEGIN - PROMPT 2 9 "A " + PROMPT 2 8 "A " USE LF_ANAGR - INPUT CODART F_R_CODRIGA_A + INPUT CODART F_ARIGA_A DISPLAY "Articolo@20" CODART DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_CODRIGA_A CODART + OUTPUT F_ARIGA_A CODART END STRING F_ARIGA_G 20 // riga gruppo merceologico di fine BEGIN - PROMPT 2 9 "A " + PROMPT 2 8 "A " USE %GMC - INPUT CODTAB F_R_CODRIGA_G + INPUT CODTAB F_ARIGA_G DISPLAY "Gr. merc." CODTAB DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_G CODTAB - MESSAGE COPY,F_DARIGA_A + OUTPUT F_ARIGA_G CODTAB + MESSAGE COPY,F_ARIGA_A END STRING F_ARIGA_R 20 // riga raggruppamento fiscale di fine BEGIN - PROMPT 2 9 "A " + PROMPT 2 8 "A " USE %RFA - INPUT CODTAB F_R_CODRIGA_R + INPUT CODTAB F_ARIGA_R DISPLAY "Ragg. fisc." CODTAB DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_R CODTAB - MESSAGE COPY,F_DARIGA_A + OUTPUT F_ARIGA_R CODTAB + MESSAGE COPY,F_ARIGA_A END -GROUPBOX DLG_NULL 71 10 // groupbox attorno agli ultimi tre checkbox +GROUPBOX DLG_NULL 63 10 // groupbox attorno agli elementi di selezione della chiave BEGIN - PROMPT 0 1 "" + PROMPT 0 0 "" END BOOLEAN F_TESTACOMP // checkbox per stampa completa della testata BEGIN - PROMPT 2 11 "Testata completa" + PROMPT 2 10 "Testata completa" END -BOOLEAN F_RICHECOMP // checkbox per stampa completa delle righe +BOOLEAN F_RIGHECOMP // checkbox per stampa completa delle righe BEGIN - PROMPT 2 12 "Righe complete" + PROMPT 2 11 "Righe complete" END BOOLEAN F_L_LISTVALUTA // checkbox per stampa del listino in valuta o in lire BEGIN - PROMPT 2 13 "Listino in valuta" + PROMPT 2 12 "Listino in valuta" END -GROUPBOX DLG_NULL 71 5 // groupbox attorno agli ultimi tre checkbox +GROUPBOX DLG_NULL 63 5 // groupbox attorno agli ultimi tre checkbox BEGIN - PROMPT 0 10 "" + PROMPT 0 9 "" END - /* ------------------------------------------------------------------------- - -STRING F_TIPO 1 -BEGIN - PROMPT 100 100 "" - FIELD LF_CONDV->TIPO - FLAG "DU" - KEY 1 - CHECKTYPE REQUIRED -END - -// campo riservato ai listini -STRING F_L_CATVEN 2 -BEGIN - PROMPT 2 2 "Cat. vendita " - FIELD LF_CONDV->CATVEN - FLAG "U" - KEY 1 - USE %CVE - INPUT CODTAB F_L_CATVEN - DISPLAY "Cat." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_L_CATVEN CODTAB - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -LIST F_C_TIPOCF 7 -BEGIN - PROMPT 2 2 "Tipo " - FIELD LF_CONDV->TIPOCF - KEY 1 - ITEM "C|Cliente" - ITEM "F|Fornit." - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -STRING F_C_CODCF 6 -BEGIN - PROMPT 22 2 "Codice " - FIELD LF_CONDV->CODCF - FLAG "U" - KEY 1 - USE LF_CLIFO - INPUT TIPOCF F_C_TIPOCF - INPUT CODCF F_C_CODCF - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Ragione sociale@50" RAGSOC - OUTPUT F_C_TIPOCF TIPOCF - OUTPUT F_C_CODCF CODCF - CHECKTYPE REQUIRED -END - -// campo riservato ai listini -STRING F_L_COD 3 -BEGIN - PROMPT 2 4 "Codice listino " - FIELD LF_CONDV->COD - FLAG "U" - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT CATVEN F_L_CATVEN - INPUT COD F_L_COD - DISPLAY "C.V." CATVEN - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_L_CATVEN CATVEN - OUTPUT F_L_COD COD - CHECKTYPE REQUIRED -END - -// campo riservato ai contratti -NUMBER F_C_COD 3 -BEGIN - PROMPT 2 4 "Numero contratto " - FIELD LF_CONDV->COD - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT TIPOCF F_C_TIPOCF - INPUT CODCF F_C_CODCF - INPUT COD F_C_COD - DISPLAY "C/F" TIPOCF - DISPLAY "Codice" CODCF - DISPLAY "Numero" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_C_TIPOCF TIPOCF - OUTPUT F_C_CODCF CODCF - OUTPUT F_C_COD COD - CHECKTYPE REQUIRED -END - -// campo riservato alle offerte -STRING F_O_COD 3 -BEGIN - PROMPT 2 3 "Codice offerta " - FIELD LF_CONDV->COD - FLAG "U" - KEY 1 - USE LF_CONDV - INPUT TIPO F_TIPO SELECT - INPUT COD F_O_COD - DISPLAY "Codice" COD - DISPLAY "Descrizione@50" DESCR - OUTPUT F_TIPO TIPO - OUTPUT F_O_COD COD - CHECKTYPE REQUIRED -END - - ---------------------------------------------------------------------------- - -LIST F_R_TIPORIGA 8 -BEGIN - PROMPT 2 5 "Riga " - FIELD LF_RCONDV->TIPORIGA - FLAG "P" - KEY 1 - ITEM "A|Articolo" // MESSAGE ENABLE,F_CODRIGA_A|SHOW,F_CODRIGA_A|CLEAR,F_CODRIGA_G|HIDE,F_CODRIGA_G|CLEAR,F_CODRIGA_R|HIDE,F_CODRIGA_R - ITEM "G|Gr. merc." // MESSAGE ENABLE,F_CODRIGA_G|SHOW,F_CODRIGA_G|CLEAR,F_CODRIGA_A|HIDE,F_CODRIGA_A|CLEAR,F_CODRIGA_R|HIDE,F_CODRIGA_R - ITEM "R|Rag. fis." // MESSAGE ENABLE,F_CODRIGA_R|SHOW,F_CODRIGA_R|CLEAR,F_CODRIGA_A|HIDE,F_CODRIGA_A|CLEAR,F_CODRIGA_G|HIDE,F_CODRIGA_G -END - -STRING F_R_CODRIGA_A 20 -BEGIN - PROMPT 19 5 "Codice " - FIELD LF_RCONDV->CODRIGA - KEY 1 - USE LF_ANAGR - INPUT CODART F_R_CODRIGA_A - DISPLAY "Articolo@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_R_CODRIGA_A CODART - CHECKTYPE REQUIRED -END - -STRING F_R_CODRIGA_G 20 -BEGIN - PROMPT 19 5 "Codice " - FIELD LF_RCONDV->CODRIGA - KEY 1 - USE %GMC - INPUT CODTAB F_R_CODRIGA_G - DISPLAY "Gr. merc." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_G CODTAB - CHECKTYPE REQUIRED - MESSAGE COPY,F_R_CODRIGA_A -END - -STRING F_R_CODRIGA_R 20 -BEGIN - PROMPT 19 5 "Codice " - FIELD LF_RCONDV->CODRIGA - KEY 1 - USE %RFA - INPUT CODTAB F_R_CODRIGA_R - DISPLAY "Ragg. fisc." CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_R_CODRIGA_R CODTAB - CHECKTYPE REQUIRED - MESSAGE COPY,F_R_CODRIGA_A -END - - - ---------------------------------------------------------------------------- - - -STRING F_CODART_1 20 -BEGIN - PROMPT 2 1 "Dall'art. " - FLAG "U" - USE LF_ANAGR - INPUT CODART F_CODART_1 - DISPLAY "Codice@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_CODART_1 CODART - OUTPUT F_DESCR_1 DESCR - CHECKTYPE NORMAL -END - -STRING F_DESCR_1 50 -BEGIN - PROMPT 2 2 "Descrizione " - USE LF_ANAGR KEY 2 - INPUT DESCR F_DESCR_1 - DISPLAY "Codice@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_CODART_1 CODART - OUTPUT F_DESCR_1 DESCR -END - -STRING F_CODART_2 20 -BEGIN - PROMPT 2 4 "All'art. " - FLAG "U" - USE LF_ANAGR - INPUT CODART F_CODART_2 - DISPLAY "Codice@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_CODART_2 CODART - OUTPUT F_DESCR_2 DESCR - CHECKTYPE NORMAL -END - -STRING F_DESCR_2 50 -BEGIN - PROMPT 2 5 "Descrizione " - USE LF_ANAGR KEY 2 - INPUT DESCR F_DESCR_2 - DISPLAY "Codice@20" CODART - DISPLAY "Descrizione@50" DESCR - OUTPUT F_CODART_2 CODART - OUTPUT F_DESCR_2 DESCR -END - -GROUPBOX DLG_NULL 71 7 -BEGIN - PROMPT 0 0 "" -//FLAG "R" -END - -BOOLEAN F_ST_UMART -BEGIN - PROMPT 2 8 "Stampa unita' di misura" -END - -BOOLEAN F_ST_CODCORR -BEGIN - PROMPT 2 9 "Stampa codici corrispondenti" -END - -BOOLEAN F_ST_FISC -BEGIN - PROMPT 2 10 "Stampa dati fiscali" -END - -GROUPBOX DLG_NULL 71 5 -BEGIN - PROMPT 0 7 "Controllo stampa" -//FLAG "R" -END - - ------------------------------------------------------------------------- */ - - BUTTON DLG_SELECT 9 2 BEGIN - PROMPT -12 -1 "Selezione" - MESSAGE EXIT,K_ENTER + PROMPT -12 -1 "Selezione" + MESSAGE EXIT,K_ENTER END BUTTON DLG_QUIT 9 2 BEGIN - PROMPT -22 -1 "" + PROMPT -22 -1 "" END ENDPAGE diff --git a/ve/ve3400.cpp b/ve/ve3400.cpp index b748fddeb..7fbe38d58 100755 --- a/ve/ve3400.cpp +++ b/ve/ve3400.cpp @@ -228,7 +228,7 @@ void TStampa_anagrafica_magazzino::process_link(int id, const char *text) { -int ve3400(int argc, char* argv[]) { +int ve3400(int argc, char **argv) { TStampa_anagrafica_magazzino a; a.run(argc, argv, "Stampa anagrafica magazzino"); diff --git a/ve/veacc.frm b/ve/veacc.frm index d96dfe9bf..6a9b0ff82 100755 --- a/ve/veacc.frm +++ b/ve/veacc.frm @@ -5,50 +5,36 @@ // Una volta completato, togliere dalla relazione i files che non servono. -USE 33 -JOIN 34 ALIAS 101 INTO CODNUM=CODNUM ANNO=ANNO PROVV=PROVV NDOC=NDOC -JOIN 17 ALIAS 201 INTO TIPOCF=TIPOCF CODCF=CODCF -JOIN 20 ALIAS 202 INTO TIPOCF=TIPOCF CODCF=CODCF -JOIN %CPG ALIAS 301 INTO CODTAB=CODPAG -JOIN %VAL ALIAS 302 INTO CODTAB=CODVAL -JOIN %LNG ALIAS 303 INTO CODTAB=CODLIN -JOIN AGE ALIAS 304 INTO CODTAB=CODAG -JOIN MSP ALIAS 305 INTO CODTAB=CODSPMEZZO -JOIN POR ALIAS 306 INTO CODTAB=CODPORTO -JOIN 47 TO 101@ ALIAS 401 INTO CODART=CODART -JOIN 52 ALIAS 601 INTO TIPOCF=TIPOCF CODCF=CODCF -JOIN 16 ALIAS 701 INTO TIPOCF=TIPOCF CODCF=CODCF CODIND=CODINDSP -JOIN 16 TO 201@ ALIAS 801 INTO TIPOCF=TIPOCF CODCF=CODCF CODIND=CODINDSP -JOIN %BAN ALIAS 901 INTO CODTAB=CODABIA+CODCABA -JOIN %BAN ALIAS 902 INTO CODTAB=CODABIP+CODCABP -JOIN NDO ALIAS 1001 INTO CODTAB=CODNOTESP1 -JOIN NDO ALIAS 1002 INTO CODTAB=CODNOTESP2 -JOIN 13 TO 304@ ALIAS 1101 INTO COM=COMCF -JOIN 13 TO 304@ ALIAS 1102 INTO COM=COM +USE 34 +JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC +JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 47 INTO CODART==CODART +JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG +JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG +JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO +JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA +JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 +JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 END DESCRIPTION BEGIN + 34->* "Righe documenti di vendita" 33->* "Documenti di vendita" - 101@->* "Righe documenti di vendita" - 201@->* "Clienti/Fornitori per vendite" - 202@->* "Clienti/Fornitori" - 301@->* "CPG" - 302@->* "VAL" - 303@->* "LNG" - 304@->* "AGE" - 305@->* "MSP" - 306@->* "POR" - 401@->* "Righe listini" - 601@->* "Contratti clienti" - 701@->* "Indirizzi di spedizione" - 801@->* "Indirizzi di spedizione" - 901@->* "Tabella banche" - 902@->* "Tabella banche" - 1001@->* "Tabella Note Documento" - 1002@->* "Tabella Note Documento" - 1101@->* "Comuni" - 1102@->* "Comuni" + 17->* "Clienti/Fornitori per vendite" + 20->* "Clienti/Fornitori" + 16->* "Indirizzi di spedizione (destinazione)" + 116@->* "Indirizzi di spedizione (destinatario)" + 47->* "Anagrafica magazzino" + 201@->* "Tabella condizioni di pagamento" + 202@->* "Tabella agenti" + 203@->* "Tabella porto" + 204@->* "Tabella banche" + 205@->* "Tabella vettori" + 206@->* "Tabella apsetto beni" END GENERAL @@ -56,36 +42,38 @@ BEGIN OFFSET 0 0 FONT "Courier New" SIZE 12 + MODULE BUFFETTI_FATTURA_ACCOMPAGNATORIA_01 END +///////////////////////////////////////////////// SECTION HEADER ODD 27 STRINGA 1 36 1 BEGIN KEY "nome ditta" PROMPT 5 1 "" - MESSAGE _DITTA6->RAGSOC + MESSAGE _DITTA !RAGSOC END STRINGA 2 36 1 BEGIN KEY "indirizzo ditta" PROMPT 5 2 "" - MESSAGE _DITTA6->INDRES + MESSAGE _DITTA !IND END STRINGA 3 5 1 BEGIN KEY "cap ditta" PROMPT 5 3 "" - MESSAGE _DITTA6->CAPRES + MESSAGE _DITTA !CAP END STRINGA 4 30 1 BEGIN KEY "comune ditta" PROMPT 12 3 "" - MESSAGE _DITTA113@->DENCOM + MESSAGE _DITTA !COM END STRINGA 5 5 1 @@ -98,7 +86,7 @@ STRINGA 6 16 1 BEGIN KEY "partita iva ditta" PROMPT 11 4 "" - MESSAGE _DITTA6->PAIV + MESSAGE _DITTA !PIVA END STRINGA 7 9 1 @@ -111,7 +99,7 @@ STRINGA 8 16 1 BEGIN KEY "codice fiscale ditta" PROMPT 15 5 "" - MESSAGE _DITTA6->CODFI + MESSAGE _DITTA !CF END NUMERO 9 @@ -142,35 +130,32 @@ STRINGA 14 36 2 BEGIN KEY "destinatario, ditta" PROMPT 44 10 "" - FIELD 202@->RAGSOC + FIELD 20->RAGSOC END STRINGA 15 36 2 BEGIN KEY "destinatario, indirizzo" PROMPT 44 12 "" - FIELD 202@->INDCF + FIELD 20->INDCF END STRINGA 16 5 1 BEGIN KEY "destinatario, cap" PROMPT 44 14 "" - FIELD 1101@->CAPCOM END STRINGA 17 30 2 BEGIN KEY "destinatario, comune" PROMPT 50 14 "" - FIELD 1101@->DENCOM END STRINGA 18 2 1 BEGIN KEY "destinatario, provincia" PROMPT 77 15 "" - FIELD 1101@->PROVCOM END STRINGA 19 8 1 @@ -191,14 +176,13 @@ STRINGA 21 30 1 BEGIN KEY "destinazione, indirizzo" PROMPT 1 10 "" - FIELD 701@->INDIR + FIELD 16->INDIR END STRINGA 84 30 1 BEGIN KEY "destinazione, cap" PROMPT 1 12 "" - FIELD 1102@->CAPCOM END STRINGA 85 50 1 @@ -212,7 +196,6 @@ STRINGA 86 30 1 BEGIN KEY "destinazione, comune" PROMPT 1 14 "" - FIELD 1102@->DENCOM END STRINGA 22 26 1 @@ -226,7 +209,7 @@ DATA 23 8 1 BEGIN KEY "data conferma" PROMPT 28 19 "" - FIELD DATADOCRIF + FIELD 33->DATADOCRIF FORMAT "1444-" END @@ -234,14 +217,14 @@ STRINGA 24 48 1 BEGIN KEY "condizioni di pagamento" PROMPT 1 21 "" - FIELD 301@->S0 + FIELD 201@->S0 END STRINGA 25 29 1 BEGIN KEY "banca d'appoggio" PROMPT 50 21 "" - FIELD 901@->S0 + FIELD 204@->S0 END STRINGA 26 8 1 @@ -255,14 +238,14 @@ STRINGA 27 16 1 BEGIN KEY "partita iva cliente" PROMPT 16 23 "" - FIELD 202@->PAIV + FIELD 17->PAIV END STRINGA 28 25 1 BEGIN KEY "porto" PROMPT 35 23 "" - FIELD 306@->S0 + FIELD 203@->S0 END STRINGA 29 3 1 @@ -280,72 +263,75 @@ END END -SECTION BODY ODD 18 +///////////////////////////////////////////////// +SECTION BODY ODD 1 STRINGA 31 8 1 BEGIN KEY "codice articolo" - PROMPT 1 0 "" - FIELD 101@->CODART + PROMPT 1 1 "" + FIELD 34->CODART END STRINGA 32 30 1 BEGIN KEY "descrizione articolo" - PROMPT 17 0 "" - FIELD 401@->DESCR + PROMPT 17 1 "" + FIELD 47->DESCR END NUMERO 33 BEGIN KEY "unita' di misura" - PROMPT 46 0 "" + PROMPT 46 1 "" END STRINGA 34 6 1 BEGIN KEY "quantita'" - PROMPT 10 0 "" - FIELD 101@->QTA + PROMPT 10 1 "" + FIELD 34->QTA END STRINGA 35 8 1 BEGIN KEY "prezzo unitario" - PROMPT 48 0 "" + PROMPT 48 1 "" END STRINGA 36 8 1 BEGIN KEY "sconto" - PROMPT 57 0 "" + PROMPT 57 1 "" END STRINGA 37 9 1 BEGIN KEY "importo netto" - PROMPT 66 0 "" + PROMPT 66 1 "" END STRINGA 38 3 1 BEGIN KEY "iva" - PROMPT 76 0 "" + PROMPT 76 1 "" END END -SECTION FOOTER LAST 1 +///////////////////////////////////////////////// +SECTION FOOTER LAST 19 STRINGA 71 5 1 BEGIN KEY "messaggio 'segue' in coda" - PROMPT 68 54 "segue" + PROMPT 68 19 "SEGUE" END END -SECTION FOOTER ODD 20 +///////////////////////////////////////////////// +SECTION FOOTER ODD 19 STRINGA 39 11 1 BEGIN @@ -543,31 +529,34 @@ LISTA 72 1 1 BEGIN KEY "trasporto a cura del mitt." PROMPT 1 57 "" + ITEM "|" // default ITEM "M|x" - FIELD CODSPMEZZO + FIELD 33->CODSPMEZZO END LISTA 73 1 1 BEGIN KEY "trasporto a cura del dest." PROMPT 7 57 "" + ITEM "|" // default ITEM "D|x" - FIELD CODSPMEZZO + FIELD 33->CODSPMEZZO END STRINGA 74 1 1 BEGIN KEY "trasporto a cura del vett." PROMPT 15 57 "" + ITEM "|" // default ITEM "V|x" - FIELD CODSPMEZZO + FIELD 33->CODSPMEZZO END DATA 75 8 1 BEGIN KEY "data inizio trasporto" PROMPT 45 57 "" - FIELD DATAPART + FIELD 33->DATAPART FORMAT "1444-" END @@ -575,42 +564,42 @@ STRINGA 76 5 1 BEGIN KEY "ora inizio trasporto" PROMPT 57 57 "" - FIELD ORAPART + FIELD 33->ORAPART END STRINGA 77 40 1 BEGIN KEY "nominativo vettore" // nell'originale (.gen) c'era: "nominativo vettore 1" PROMPT 1 59 "" - FIELD %VET->S0 + FIELD 205@->S0 END STRINGA 78 40 1 BEGIN KEY "indirizzo vettore" // nell'originale (.gen) c'era: "nominativo vettore 2" PROMPT 1 60 "" - FIELD %VET->S1 // il campo S1 e' usato per l'indirizzo vettore + FIELD 205@->S1 // il campo S1 e' usato per l'indirizzo vettore END STRINGA 79 41 1 BEGIN KEY "aspetto esteriore dei beni" PROMPT 1 63 "" - FIELD %ASP->S0 + FIELD 206@->S0 END STRINGA 81 12 1 BEGIN KEY "peso" PROMPT 44 63 "" - FIELD PNETTO + FIELD 33->PNETTO END STRINGA 82 8 1 BEGIN KEY "colli" PROMPT 57 63 "" - FIELD NCOLLI + FIELD 33->NCOLLI END END diff --git a/ve/vebol.frm b/ve/vebol.frm index 05d9fb4bb..dfe26230b 100755 --- a/ve/vebol.frm +++ b/ve/vebol.frm @@ -39,6 +39,7 @@ BEGIN MODULE BUFFETTI_BOLLA_01 END +///////////////////////////////////////////////// SECTION HEADER ODD 33 STRING 1 36 1 @@ -255,6 +256,7 @@ END END +///////////////////////////////////////////////// SECTION BODY ODD 1 STRING 32 13 1 @@ -295,6 +297,7 @@ END END +///////////////////////////////////////////////// SECTION FOOTER ODD 9 STRING 47 5 1 @@ -305,6 +308,7 @@ END END +///////////////////////////////////////////////// SECTION FOOTER LAST 9 LIST 37 1 1 @@ -312,9 +316,7 @@ BEGIN KEY "trasporto a cura del mittente" PROMPT 4 1 "" FIELD 33->CODSPMEZZO - ITEM "|" - ITEM "D|" - ITEM "V|" + ITEM "|" // default ITEM "M|x" END @@ -323,10 +325,8 @@ BEGIN KEY "trasporto a cura del destinatario" PROMPT 13 1 "" FIELD 33->CODSPMEZZO - ITEM "|" + ITEM "|" // default ITEM "D|x" - ITEM "V|" - ITEM "M|" END LIST 39 1 1 @@ -334,10 +334,8 @@ BEGIN KEY "trasporto a cura del vettore" PROMPT 23 1 "" FIELD 33->CODSPMEZZO - ITEM "|" - ITEM "D|" + ITEM "|" // default ITEM "V|x" - ITEM "M|" END STRING 40 45 1 diff --git a/ve/vefat.frm b/ve/vefat.frm index 660534703..891a4690c 100755 --- a/ve/vefat.frm +++ b/ve/vefat.frm @@ -18,77 +18,75 @@ // // Togliere dalla relazione i files che non servono, quando tutti i campi sono OK. -USE 33 -JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC -JOIN 17 INTO TIPOCF==TIPOCF CODCF==CODCF -JOIN 20 INTO TIPOCF==TIPOCF CODCF==CODCF -JOIN 16 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +USE 34 +JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC +JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP -JOIN 47 TO 34 INTO CODART==CODART -JOIN 52 INTO TIPOCF==TIPOCF CODCF==CODCF -JOIN 13 TO 20 INTO CAPCOM==CAPCF // da togliere quando ci saranno i messaggi _CLIENTE -JOIN %CPG INTO CODTAB==CODPAG -JOIN %AGE INTO CODTAB==CODAG -JOIN %POR INTO CODTAB==CODPORTO -JOIN %BAN INTO CODTAB==CODABIA+CODCABA -JOIN %VET INTO CODTAB==CODVETT1 -JOIN %ASP INTO CODTAB==ASPBENI1 -END +JOIN 47 INTO CODART==CODART +JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG +JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG +JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO +JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA +JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 +JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 +END DESCRIPTION BEGIN - 33->* "Documenti di vendita" 34->* "Righe documenti di vendita" + 33->* "Documenti di vendita" 17->* "Clienti/Fornitori per vendite" 20->* "Clienti/Fornitori" - 47 ->* "Righe listini" - 52 ->* "Contratti clienti" - 16 ->* "Indirizzi di spedizione" - 116->* "Indirizzi di spedizione" - 13->* "Comuni" - %CPG->* "Condizioni di pagamento" - %AGE ->* "Agenti" - %MSP ->* "Modalità di spedizioni" - %POR ->* "Modalità di consegna" - %BAN ->* "Banche" + 16->* "Indirizzi di spedizione (destinazione)" + 116@->* "Indirizzi di spedizione (destinatario)" + 47->* "Anagrafica magazzino" + 201@->* "Tabella condizioni di pagamento" + 202@->* "Tabella agenti" + 203@->* "Tabella porto" + 204@->* "Tabella banche" + 205@->* "Tabella vettori" + 206@->* "Tabella apsetto beni" END GENERAL BEGIN - OFFSET 0 0 - FONT "Courier New" - SIZE 12 + OFFSET 0 0 + FONT "Courier New" + SIZE 12 + MODULE BUFFETTI_FATTURA_01 END -/////////////////////////////////////////////// -SECTION HEADER ODD 28 0 -5 +///////////////////////////////////////////////// +SECTION HEADER ODD 28 STRINGA 1 35 1 BEGIN KEY "nome ditta" PROMPT 3 4 "" - MESSAGE _DITTA 6->RAGSOC + MESSAGE _DITTA !RAGSOC END STRINGA 2 35 1 BEGIN KEY "indirizzo ditta" PROMPT 3 5 "" - MESSAGE _DITTA 6->INDRES + MESSAGE _DITTA !IND END STRINGA 3 5 1 BEGIN KEY "cap ditta" PROMPT 3 6 "" - MESSAGE _DITTA 6->CAPRES + MESSAGE _DITTA !CAP END STRINGA 4 30 1 BEGIN KEY "comune ditta" PROMPT 10 6 "" - MESSAGE _DITTA 6->DENCOM + MESSAGE _DITTA !COM END STRINGA 5 5 1 @@ -101,7 +99,7 @@ STRINGA 6 16 1 BEGIN KEY "partita iva ditta" PROMPT 9 7 "" - MESSAGE _DITTA 6->PAIV + MESSAGE _DITTA !PIVA END STRINGA 7 9 1 @@ -114,7 +112,7 @@ STRINGA 8 16 1 BEGIN KEY "codice fiscale ditta" PROMPT 13 8 "" - MESSAGE _DITTA-> 6->CODFI + MESSAGE _DITTA !CF END NUMERO 9 10 1 @@ -161,7 +159,7 @@ STRINGA 18 14 1 BEGIN KEY "porto" PROMPT 52 23 "" - FIELD 306@->S0 + FIELD 203@->S0 END NUMERO 19 7 1 @@ -175,7 +173,7 @@ DATA 20 8 1 BEGIN KEY "data conferma" PROMPT 20 23 "" - FIELD DATADOCRIF + FIELD 33->DATADOCRIF FORMAT "1444-" END @@ -183,14 +181,14 @@ STRINGA 21 49 1 BEGIN KEY "condizioni di pagamento" PROMPT 3 25 "" - FIELD %CPG->S0 + FIELD 201@->S0 END STRINGA 22 29 1 BEGIN KEY "banca d'appoggio" PROMPT 54 25 "" - FIELD 901@->S0 + FIELD 204@->S0 END STRINGA 23 38 1 @@ -245,63 +243,63 @@ END END ///////////////////////////////////////////////// -SECTION BODY ODD 22 +SECTION BODY ODD 1 STRINGA 32 13 1 BEGIN KEY "codice articolo" - PROMPT 2 "" - FIELD 101@->CODART + PROMPT 2 1 "" + FIELD 34->CODART END STRINGA 33 19 1 BEGIN KEY "descrizione articolo" - PROMPT 17 "" - FIELD 401@->DESCR + PROMPT 17 1 "" + FIELD 47->DESCR END STRINGA 34 3 1 BEGIN KEY "unita' di misura" - PROMPT 38 "" + PROMPT 38 1 "" END -STRINGA 35 8 1 +NUMBER 35 8 1 BEGIN KEY "quantita'" - PROMPT 42 "" - FIELD 101@->QTA + PROMPT 42 1 "" + FIELD 34->QTA END STRINGA 36 10 1 BEGIN KEY "prezzo unitario" - PROMPT 52 "" + PROMPT 52 1 "" END STRINGA 37 3 1 BEGIN KEY "sconto" - PROMPT 64 "" + PROMPT 64 1 "" END STRINGA 38 11 1 BEGIN KEY "importo netto" - PROMPT 68 "" + PROMPT 68 1 "" END STRINGA 39 3 1 BEGIN KEY "iva" - PROMPT 81 "" + PROMPT 81 1 "" END END -/////////////////////////////////////////////////// -SECTION FOOTER ODD +///////////////////////////////////////////////// +SECTION FOOTER ODD 13 STRINGA 40 11 1 BEGIN @@ -522,13 +520,14 @@ END END -//////////////////////////////////// -SECTION FOOTER LAST 1 +///////////////////////////////////////////////// +SECTION FOOTER LAST 13 STRINGA 76 5 1 BEGIN KEY "stampa 'segue' in coda" - PROMPT 73 70 "segue" + PROMPT 73 13 "SEGUE" +END + END -END \ No newline at end of file