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
This commit is contained in:
gianluca 1995-10-17 16:49:47 +00:00
parent 2cd31b0656
commit 9784b96237
14 changed files with 1289 additions and 1486 deletions

View File

@ -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");

View File

@ -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

View File

@ -1,313 +1,310 @@
#include <lffiles.h>
#include "ve2200x.h"
TOOLBAR "" 0 20 60 2
#include <toolbar.h>
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
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include <lffiles.h>
#include "ve2200x.h"
TOOLBAR "" 0 20 60 2
#include <toolbar.h>
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
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -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"

View File

@ -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

// 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

View File

@ -1,457 +1,459 @@
#include <lffiles.h>
#include "ve2300x.h"
TOOLBAR "" 0 20 60 2
#include <toolbar.h>
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

#include <lffiles.h>
#include "ve2300x.h"
TOOLBAR "" 0 20 60 2
#include <toolbar.h>
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

View File

@ -3,22 +3,19 @@
#include <xvt.h>
//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);
}

View File

@ -1,54 +1,98 @@
#include <printapp.h>
#include <mask.h>
#include <config.h>
#include <execp.h>
#include <mailbox.h>
#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");

View File

@ -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

View File

@ -1,7 +1,7 @@
#include <lffiles.h>
#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

View File

@ -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");

View File

@ -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

View File

@ -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

View File

@ -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