Rese funzionanti (con ricerche) stampe Condizioni di vendita

e Anagrafica magazzino.


git-svn-id: svn://10.65.10.50/trunk@3950 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-11-30 12:16:55 +00:00
parent 6c7aa53e95
commit 96f7df5c8b
5 changed files with 641 additions and 195 deletions

@ -38,6 +38,7 @@ class TStampa_condizioni_vendita: public TPrint_application {
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:
static bool tipo_handler(TMask_field& f, KEY k);
virtual bool user_create(void);
virtual bool user_destroy(void);
virtual bool set_print(int);
@ -47,7 +48,45 @@ protected:
//virtual void process_link(int, const char *);
};
inline TStampa_condizioni_vendita& app() {return (TStampa_condizioni_vendita&) main_app();}
// Gruppi della maschera:
// 1 : Listini
// 2 : Contratti
// 3 : Offerte
// 4 : Articoli(listini)[DA..A]
// 5 : Gr.Merc(listini)[DA..A]
// 6 : Raggr.Fisc(listini)[DA..A]
// 7 : Articoli(contratti)[DA..A]
// 8 : Gr.Merc(contratti)[DA..A]
// 9 : Raggr.Fisc(contratti)[DA..A]
// 10 : Articoli(offerte)[DA..A]
// 11 : Gr.Merc(offerte)[DA..A]
// 12 : Raggr.Fisc(offerte)[DA..A]
bool TStampa_condizioni_vendita::tipo_handler(TMask_field& f, KEY k)
{
if (k==K_SPACE)
{
TMask& m = f.mask();
const char s = f.get()[0];
const char arc = app()._condven[0];
int base = 3;
int other1,other2;
if (arc=='C') base = 6;
else if (arc=='O') base = 9;
if (s == 'A') { base+=1; other1=base+1; other2=base+2;} // articoli
else if (s == 'G') {base+=2; other1=base+1; other2=base-1;} // gr. merc
else {base += 3; other1=base-1; other2=base-2;}// raggr. fiscale
m.reset(-base);
m.show(-base);
m.hide(-other1);
m.hide(-other2);
}
return TRUE;
}
bool TStampa_condizioni_vendita::user_create() {
bool gotcha= FALSE; // booleano di avvenuta inizializzazione
@ -119,8 +158,14 @@ bool TStampa_condizioni_vendita::user_destroy() {
bool TStampa_condizioni_vendita::set_print(int) {
TMask mask("ve3200x");
mask.set(F_TIPO, _condven); // settaggio del campo di tipo archivio
mask.set_handler(F_TIPORIGHE,tipo_handler);
switch (_condven[0]) {
case 'L': // listini
mask.show(-1);// nasconde i campi dei listini
mask.hide(-5);// nasconde i campi del gr. merc
mask.hide(-6);// nasconde i campi del raggr. fisc.
mask.hide(-2);// nasconde i campi dei contratti
mask.hide(-3);// nasconde i campi delle offerte
DESTROY(F_C_COD); // eliminazione campi di altri archivi
DESTROY(F_C_TIPOCF);
DESTROY(F_C_CODCF);
@ -129,6 +174,11 @@ bool TStampa_condizioni_vendita::set_print(int) {
if (!_gest_val) KILL(F_L_LISTVALUTA); // disabilita condizionalmente la gestione delle valute
break;
case 'C': // contratti
mask.show(-2);// nasconde i campi dei contratti
mask.hide(-8);// nasconde i campi del gr. merc
mask.hide(-9); // nasconde i campi del raggr. fisc.
mask.hide(-1);// nasconde i campi dei listini
mask.hide(-3);// nasconde i campi delle offerte
DESTROY(F_L_COD); // settaggio dei campi da eliminare
DESTROY(F_L_CATVEN);
DESTROY(F_L_LISTVALUTA);
@ -139,6 +189,11 @@ bool TStampa_condizioni_vendita::set_print(int) {
}
break;
case 'O': // offerte
mask.show(-3); // nasconde i campi delle offerte
mask.hide(-11);// nasconde i campi del gr. merc
mask.hide(-12);// nasconde i campi del raggr. fisc.
mask.hide(-1);// nasconde i campi dei listini
mask.hide(-2);// nasconde i campi dei contratti
DESTROY(F_L_COD); // settaggio dei campi da eliminare
DESTROY(F_L_CATVEN);
DESTROY(F_L_LISTVALUTA);
@ -160,8 +215,6 @@ bool TStampa_condizioni_vendita::set_print(int) {
case 'L': // listini
if (_codlis_catven) da.put("CATVEN", mask.get(F_L_CATVEN));
else da.blank("CATVEN"); // riempie il campo di blank se non è gestito
da.blank("TIPOCF"); // i campi non gestiti vengono riempiti di blank
da.blank("CODCF");
da.put("COD", mask.get(F_L_COD));
break;
case 'C': // contratti
@ -180,15 +233,13 @@ bool TStampa_condizioni_vendita::set_print(int) {
da.blank("TIPOCF");
da.blank("CODCF");
da.put("COD", mask.get(F_O_COD));
break;
break;
}
TRectype a(da); // prepara il record di fine regione
if (!(mask.get_bool(F_TUTTERIGHE))) { // setta il filtro sulle righe solo se non è stato selezionato il flag di "tutte le righe"
da.put("TIPORIGA", mask.get(F_TIPORIGHE));
da.put("CODRIGA", mask.get(F_DARIGA_A));
a.put("TIPORIGA", mask.get(F_TIPORIGHE));
a.put("CODRIGA", mask.get(F_ARIGA_A));
}
da.put("TIPORIGA", mask.get(F_TIPORIGHE));
da.put("CODRIGA", mask.get(F_DARIGA_A));
a.put("TIPORIGA", mask.get(F_TIPORIGHE));
a.put("CODRIGA", mask.get(F_ARIGA_A));
current_cursor()->setregion(da, a); // setta la regione sul cursore
force_setpage(); // forza il lancio della set_page() ad ogni record del file da stampare
disable_links(); // disabilita tutti i link ipertestuali
@ -219,56 +270,38 @@ void TStampa_condizioni_vendita::preprocess_header() {
reset_header(); // l'header viene resettato
int i= 1; // contatore delle linee
const long firm= get_firm(); // legge l'id della ditta corrente
const bool is_listino = _condven=="L";
const bool is_contratto = _condven=="C";
TString rw(132); rw.fill('-');
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, "@1gDitta %ld %s", firm, (const char *)s); // setta il nome e l'id della ditta della prima linea dell'header
set_header(i, "@1gDitta %ld %s@100gData @<", firm, (const char *)s); // setta il nome e l'id della ditta della prima linea dell'header
}
TLocalisamfile &condv= current_cursor()->file(LF_CONDV);
i+=2; // stampa breve della testata, occupa almeno due linee
set_header(i-1, "@14gCod @18gDescrizione @69gVal. dal @78gal @87gIL @90gUM @93gSC @96gSO @99gST @109gSeq"); // setta l'header del codice, della descrizione, della validità, dei booleani, ecc.
set_header(i, "@14g%3s", (const char *) condv.get("COD"));
set_header(i, "@18g%s", (const char *) condv.get("DESCR"));
set_header(i, "@69g%s", (const char *) condv.get("VALIN"));
set_header(i, "@78g%s", (const char *) condv.get("VALFIN"));
set_header(i, "@87g%s", (const char *) condv.get("IMPLORDI"));
set_header(i, "@93g%s", (const char *) condv.get("GESTUM"));
set_header(i, "@90g%s", (const char *) condv.get("GESTSCAGL"));
set_header(i, "@96g%s", (const char *) condv.get("GESTSCO"));
set_header(i, "@99g%s", (const char *) condv.get("SCONST"));
set_header(i, "@109g%s",(const char *) condv.get("SEQRIC"));
if ((_condven=="L") && _codlis_catven)
{ // siamo sui listini?
set_header(i-1, "@11gCV"); // setta l'header della categoria di vendita
set_header(i, "@11g%s", (const char *)(condv.get("CATVEN"))); // categoria di vendita
set_header(i++,(const char*)rw);
// setta l'header del codice, della descrizione, della validità, dei booleani, ecc.
set_header(i, "@14gCod @18gDescrizione @69gVal. dal @80gal @91gIL @94gUM @97gSC @100gSO @103gST @116gSeq");
if (is_listino)
{
// siamo sui listini?
if (_codlis_catven)
set_header(i, "@11gCV"); // setta l'header della categoria di vendita
set_header(i,"@109gSucc.");
}
if (_condven=="C")
if (is_contratto)
{ // siamo sui contratti?
if (_codcon_codcf)
{ // è abilitato il codice cliente/fornitore?
set_header(i-1, "@1gCF @4gCod.CF"); // setta l'header di clienti/fornitori
set_header(i, "@1g%s", (const char *)condv.get("TIPOCF")); // cliente/fornitore
set_header(i, "@4g%6s", (const char *)condv.get("CODCF")); // cliente/fornitore
}
set_header(i-1, "@102gOB"); // setta l'header di contratto obbligatorio
set_header(i, "@102g%s", (const char *)(condv.get("OBBLIG"))); // booleano
}
if (_condven=="L")
{ // siamo su listini?
set_header(i-1, "@105gSuc"); // setta l'header per il codice di listino successivo
set_header(i, "@105g%3s", (const char *)(condv.get("CODLISSUCC"))); // codice successivo
}
// è abilitato il codice cliente/fornitore?
set_header(i, "@1gCF @4gCod.CF"); // setta l'header di clienti/fornitori
set_header(i, "@106gOB"); // setta l'header di contratto obbligatorio
}
if (_gest_val)
{ // c'è la gestione della valuta?
i+=2; // occupa altre due linee
set_header(i-1, "@1gVal @5gCambio @27gData cambio"); // setta l'header del codice e della descrizione
set_header(i, "@1g%s", (const char *)condv.get("CODVAL")); // cambio e valuta
set_header(i, "@5g%21s", (const char *)condv.get("CAMBIO")); // cambio e valuta
set_header(i, "@27g%s", (const char *)condv.get("DATACAM")); // cambio e valuta
}
set_header(++i, ""); // salta una riga
// se c'è la gestione della valuta occupa altre due linee
set_header(++i, "@1gVal @5gCambio @27gData cambio"); // setta l'header del codice e della descrizione
if (!_righecomp)
{ // impostazione dell'header delle righe se non c'è la stampa esaustiva
set_header(++i, "@1gT @3gCodice riga @27gS @29gQuantita' limite @51gPrezzo @73gSconto @99gA @101gIVA @106gProvvig."); // setta l'header della chiave, della quantità limite e del prezzo
@ -277,6 +310,40 @@ void TStampa_condizioni_vendita::preprocess_header() {
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,(const char*)rw);
set_header(++i, "@14g%3s", (const char *) condv.get("COD"));
set_header(i, "@18g%s", (const char *) condv.get("DESCR"));
set_header(i, "@69g%s", (const char *) condv.get("VALIN"));
set_header(i, "@80g%s", (const char *) condv.get("VALFIN"));
set_header(i, "@91g%s", (const char *) condv.get("IMPLORDI"));
set_header(i, "@94g%s", (const char *) condv.get("GESTUM"));
set_header(i, "@97g%s", (const char *) condv.get("GESTSCAGL"));
set_header(i, "@100g%s", (const char *) condv.get("GESTSCO"));
set_header(i, "@103g%s", (const char *) condv.get("SCONST"));
set_header(i, "@116g%s",(const char *) condv.get("SEQRIC"));
if (is_listino)
{
if (_codlis_catven)
// siamo sui listini?
set_header(i, "@11g%s", (const char *)(condv.get("CATVEN"))); // categoria di vendita
set_header(i, "@109g%3s", (const char *)(condv.get("CODLISSUCC"))); // codice successivo
}
if (is_contratto)
{ // siamo sui contratti?
if (_codcon_codcf)
{ // è abilitato il codice cliente/fornitore?
set_header(i, "@1g%s", (const char *)condv.get("TIPOCF")); // cliente/fornitore
set_header(i, "@4g%6s", (const char *)condv.get("CODCF")); // cliente/fornitore
}
set_header(i, "@106g%s", (const char *)(condv.get("OBBLIG"))); // booleano
}
if (_gest_val)
{ // c'è la gestione della valuta?
set_header(++i, "@1g%3s", (const char *)condv.get("CODVAL")); // cambio e valuta
set_header(i, "@5g%21s", (const char *)condv.get("CAMBIO")); // cambio e valuta
set_header(i, "@27g%s", (const char *)condv.get("DATACAM")); // cambio e valuta
}
set_header(++i, ""); // aggiunge due linee vuote
set_header(++i, "");
}
@ -330,35 +397,42 @@ void TStampa_condizioni_vendita::set_page(int file, int) {
set_row(++i, "Sottogruppo merceologico: @50s", FLD(-GMC2, "S0"));
break;
case 'R':
set_row(++i, "Riga: @1s @2s", FLD(LF_RCONDV, "TIPORIGA"), FLD(LF_RCONDV, "CODRIGA"));
set_row(++i, "Riga: @1s @5s", FLD(LF_RCONDV, "TIPORIGA"), FLD(LF_RCONDV, "CODRIGA"));
set_row(++i, "Raggruppamento fiscale: @50s", FLD(-RFA, "S0"));
break;
}
if (condv.get_bool("GESTUM")) set_row(++i, "Unità di misura: @2s @50s", FLD(LF_RCONDV, "UM"), FLD(-UMS1, "S0"));
if (condv.get_bool("GESTSCAGL")) {
set_row(++i, "Scaglione: @1s", FLD(LF_RCONDV, "NSCAGL"));
set_row(++i, "Quantità limite scaglione: @15.5n", FLD(LF_RCONDV, "QLIM"));
set_row(++i, "Quantità limite scaglione: @pn", FLD(LF_RCONDV, "QLIM","#########,@@@@@"));
}
set_row(++i, "Prezzo: @18.2n", FLD(LF_RCONDV, "PREZZO"));
set_row(++i, "Prezzo: @pn", FLD(LF_RCONDV, "PREZZO","###.###.###,@@"));
set_row(++i, "Sconto: @25s", FLD(LF_RCONDV, "SCONTO"));
set_row(++i, "Addebito IVA: @f", FLD(LF_RCONDV, "ADDIVA"));
set_row(++i, "Codice IVA: @4s", FLD(LF_RCONDV, "CODIVA"));
set_row(++i, "Percentuale di provvigione: @5.2n", FLD(LF_RCONDV, "PERCPROVV"));
set_row(++i, "Percentuale di provvigione: @pn", FLD(LF_RCONDV, "PERCPROVV","###,@@"));
if (condv.get_bool("GESTSCO")) {
set_row(++i, "Quantità merce omaggio: @15.5n", FLD(LF_RCONDV, "QOM"));
set_row(++i, "Quantità base: @15.5n", FLD(LF_RCONDV, "QBASE"));
set_row(++i, "Quantità merce omaggio: @pn", FLD(LF_RCONDV, "QOM","##########,@@@@@"));
set_row(++i, "Quantità base: @pn", FLD(LF_RCONDV, "QBASE","##########,@@@@@"));
set_row(++i, "Articolo omaggio: @20s @50s", FLD(LF_RCONDV, "CODARTOM"), FLD(-ART2, "DESCR"));
set_row(++i, "Prezzo omaggio: @18.2n", FLD(LF_RCONDV, "PROMAGGIO"));
set_row(++i, "Prezzo omaggio: @pn", FLD(LF_RCONDV, "PROMAGGIO","###.###.###,@@"));
if (condv.get_bool("GESTUM")) set_row(++i, "Unità di misura quantità omaggio: @2s @50s", FLD(LF_RCONDV, "UMOM"), FLD(-UMS2, "S0"));
}
// if ((_condven=="C") || (_condven=="O")) set_row(++i, "Codice lotto: @6s", FLD(LF_RCONDV, "CODLOTTO"));
if (_condven=="O") set_row(++i, "Articolo in esaurimento: @f", FLD(LF_RCONDV, "ARTES"));
set_row(++i, ""); // salta una riga
} else { // stampa della riga in forma abbreviata
set_row(++i, "@1g@1s @3g@20s @27g@1s @29g@15.5n @51g@18.2n @73g@25s @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...
set_row(++i, "@1g@1s @3g@20s @27g@1s @29g@pn @51g@pn @73g@25s @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, "@1g@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
set_row(++i, "@1g@2s @5g@pn @27g@pn @49g@20s @70g@pn",
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

@ -3,18 +3,37 @@
#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_DARIGA_A_L 113
#define F_DARIGA_G_L 114
#define F_DARIGA_R_L 115
#define F_ARIGA_A_L 116
#define F_ARIGA_G_L 117
#define F_ARIGA_R_L 118
#define F_DARIGA_A_C 119
#define F_DARIGA_G_C 120
#define F_DARIGA_R_C 121
#define F_ARIGA_A_C 122
#define F_ARIGA_G_C 123
#define F_ARIGA_R_C 124
#define F_DARIGA_A_O 125
#define F_DARIGA_G_O 126
#define F_DARIGA_R_O 127
#define F_ARIGA_A_O 128
#define F_ARIGA_G_O 129
#define F_ARIGA_R_O 130
#define F_TESTACOMP 131
#define F_RIGHECOMP 132
#define F_L_CATVEN 133
#define F_L_COD 134
#define F_L_LISTVALUTA 135
#define F_DARIGA_A 136
#define F_ARIGA_A 137
#define F_C_TIPOCF 141
#define F_C_CODCF 142

@ -1,16 +1,31 @@
#include <lffiles.h>
#include "ve3200x.h"
// Gruppi della maschera:
// 1 : Listini
// 2 : Contratti
// 3 : Offerte
// 4 : Articoli(listini)[DA..A]
// 5 : Gr.Merc(listini)[DA..A]
// 6 : Raggr.Fisc(listini)[DA..A]
// 7 : Articoli(contratti)[DA..A]
// 8 : Gr.Merc(contratti)[DA..A]
// 9 : Raggr.Fisc(contratti)[DA..A]
// 10 : Articoli(offerte)[DA..A]
// 11 : Gr.Merc(offerte)[DA..A]
// 12 : Raggr.Fisc(offerte)[DA..A]
PAGE "Stampa condizioni di vendita" -1 -1 64 15
GROUPBOX DLG_NULL 63 10 // groupbox attorno agli elementi di selezione della chiave
GROUPBOX DLG_NULL 62 10 // groupbox attorno agli elementi di selezione della chiave
BEGIN
PROMPT 0 0 ""
PROMPT 1 0 ""
END
GROUPBOX DLG_NULL 63 5 // groupbox attorno agli ultimi tre checkbox
GROUPBOX DLG_NULL 62 5 // groupbox attorno agli ultimi tre checkbox
BEGIN
PROMPT 0 9 ""
PROMPT 1 9 ""
END
STRING F_TIPO 1 // tipo di archivio
@ -21,7 +36,7 @@ END
STRING F_L_CATVEN 2 // categoria di vendita, solo listini
BEGIN
PROMPT 2 1 "Cat. vendita "
PROMPT 2 1 "Cat. vendita "
FLAG "U"
USE CVE
INPUT CODTAB F_L_CATVEN
@ -39,7 +54,7 @@ END
STRING F_C_CODCF 6 // codice cliente/fornitore, solo contratti
BEGIN
PROMPT 22 1 "Codice "
PROMPT 19 1 "Codice "
FLAG "U"
USE LF_CLIFO
INPUT TIPOCF F_C_TIPOCF
@ -53,11 +68,11 @@ END
STRING F_L_COD 3 // codice listino, solo listini
BEGIN
PROMPT 2 3 "Codice listino "
PROMPT 2 3 "Codice listino "
FLAG "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD
@ -67,9 +82,9 @@ BEGIN
OUTPUT F_L_COD COD
END
NUMBER F_C_COD 3 // codice contratto, solo contratti
STRING F_C_COD 3 // codice contratto, solo contratti
BEGIN
PROMPT 2 3 "Numero contratto "
PROMPT 2 3 "Nr. contratto "
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF
@ -87,7 +102,7 @@ END
STRING F_O_COD 3 // codice offerta, solo offerte
BEGIN
PROMPT 2 2 "Codice offerta "
PROMPT 2 2 "Codice offerta "
FLAG "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
@ -100,81 +115,410 @@ END
LIST F_TIPORIGHE 9 // listbox per tipo di selezione righe
BEGIN
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_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
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_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 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
//BOOLEAN F_TUTTERIGHE // checkbox per selezione di tutte le righe
//BEGIN
// 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
STRING F_DARIGA_A 20 // riga articolo di inizio (complessivo per la get)
BEGIN
PROMPT 2 7 "Da "
USE LF_ANAMAG
INPUT CODART F_DARIGA_A
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_DARIGA_A CODART
FLAGS "H"
END
STRING F_DARIGA_G 20 // riga gruppo merceologico di inizio
BEGIN
PROMPT 2 7 "Da "
USE GMC
INPUT CODTAB F_DARIGA_G
DISPLAY "Gr. merc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DARIGA_G CODTAB
MESSAGE COPY,F_DARIGA_A
END
STRING F_DARIGA_R 20 // riga raggruppamento fiscale di inizio
BEGIN
PROMPT 2 7 "Da "
USE RFA
INPUT CODTAB F_DARIGA_R
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DARIGA_R CODTAB
MESSAGE COPY,F_DARIGA_A
END
STRING F_ARIGA_A 20 // riga articolo di fine
STRING F_ARIGA_A 20 // riga articolo di fine (complessivo per la get)
BEGIN
PROMPT 2 8 "A "
USE LF_ANAMAG
INPUT CODART F_ARIGA_A
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_ARIGA_A CODART
FLAGS "H"
END
STRING F_ARIGA_G 20 // riga gruppo merceologico di fine
// Ricerche per listini
STRING F_DARIGA_A_L 20 // riga articolo di inizio (listini)
BEGIN
PROMPT 2 8 "A "
USE GMC
INPUT CODTAB F_ARIGA_G
DISPLAY "Gr. merc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_ARIGA_G CODTAB
MESSAGE COPY,F_ARIGA_A
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_A_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_DARIGA_A_L CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 1 4
END
STRING F_ARIGA_R 20 // riga raggruppamento fiscale di fine
STRING F_DARIGA_G_L 3 // riga gruppo merceologico di inizio (listini)
BEGIN
PROMPT 2 8 "A "
USE RFA
INPUT CODTAB F_ARIGA_R
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_ARIGA_R CODTAB
MESSAGE COPY,F_ARIGA_A
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 201 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_G_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -201->S0
OUTPUT F_DARIGA_G_L CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 1 5
END
STRING F_DARIGA_R_L 5 // riga raggruppamento fiscale di inizio (listini)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 202 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_R_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -202->S0
OUTPUT F_DARIGA_R_L CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 1 6
END
STRING F_ARIGA_A_L 20 // riga articolo di fine (listini)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_A_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_ARIGA_A_L CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 1 4
END
STRING F_ARIGA_G_L 3 // riga gruppo merceologico di fine (listini)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 203 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_G_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -203->S0
OUTPUT F_ARIGA_G_L CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 1 5
END
STRING F_ARIGA_R_L 5 // riga raggruppamento fiscale di fine (listini)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 204 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_R_L
DISPLAY "C.V." CATVEN
DISPLAY "Listino" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -204->S0
OUTPUT F_ARIGA_R_L CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 1 6
END
// Ricerche per contratti
STRING F_DARIGA_A_C 20 // riga articolo di inizio (contratti)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_A_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_DARIGA_A_C CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 2 7
END
STRING F_DARIGA_G_C 3 // riga gruppo merceologico di inizio (contratti)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 205 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_G_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -205->S0
OUTPUT F_DARIGA_G_C CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 2 8
END
STRING F_DARIGA_R_C 5 // riga raggruppamento fiscale di inizio (contratti)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 206 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_R_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -206->S0
OUTPUT F_DARIGA_R_C CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 2 9
END
STRING F_ARIGA_A_C 20 // riga articolo di fine (contratti)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_A_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_ARIGA_A_C CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 2 7
END
STRING F_ARIGA_G_C 3 // riga gruppo merceologico di fine (contratti)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 207 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_G_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -207->S0
OUTPUT F_ARIGA_G_C CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 2 8
END
STRING F_ARIGA_R_C 5 // riga raggruppamento fiscale di fine (contratti)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 208 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF SELECT
INPUT CODCF F_C_CODCF SELECT
INPUT COD F_C_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_R_C
DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Contratto" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -208->S0
OUTPUT F_ARIGA_R_C CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 2 9
END
// Ricerche per offerte
STRING F_DARIGA_A_O 20 // riga articolo di inizio (offerte)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_A_O
DISPLAY "Offerta" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_DARIGA_A_O CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 3 10
END
STRING F_DARIGA_G_O 3 // riga gruppo merceologico di inizio (offerte)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 209 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_G_O
DISPLAY "Offerta" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -209->S0
OUTPUT F_DARIGA_G_O CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 3 11
END
STRING F_DARIGA_R_O 5 // riga raggruppamento fiscale di inizio (offerte)
BEGIN
PROMPT 2 7 "Da "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 210 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_DARIGA_R_O
DISPLAY "Offerta" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -210->S0
OUTPUT F_DARIGA_R_O CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_DARIGA_A
GROUP 3 12
END
STRING F_ARIGA_A_O 20 // riga articolo di fine (offerte)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN LF_ANAMAG INTO CODART==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_A_O
DISPLAY "Offerta" COD
DISPLAY "Articolo@20" CODRIGA
DISPLAY "Descrizione@50" LF_ANAMAG->DESCR
OUTPUT F_ARIGA_A_O CODRIGA
CHECKTYPE NORMAL
WARNING "Codice articolo non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 3 10
END
STRING F_ARIGA_G_O 3 // riga gruppo merceologico di fine (offerte)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN GMC TO LF_RCONDV ALIAS 211 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_G_O
DISPLAY "Offerta" COD
DISPLAY "Gruppo Merc.@20" CODRIGA
DISPLAY "Descrizione@50" -211->S0
OUTPUT F_ARIGA_G_O CODRIGA
CHECKTYPE NORMAL
WARNING "Gruppo merceologico non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 3 11
END
STRING F_ARIGA_R_O 5 // riga raggruppamento fiscale di fine (offerte)
BEGIN
PROMPT 2 8 "A "
USE LF_RCONDV
JOIN RFA TO LF_RCONDV ALIAS 212 INTO CODTAB==CODRIGA
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD SELECT
INPUT TIPORIGA F_TIPORIGHE SELECT
INPUT CODRIGA F_ARIGA_R_O
DISPLAY "Offerta" COD
DISPLAY "Raggr. fiscale" CODRIGA
DISPLAY "Descrizione@50" -212->S0
OUTPUT F_ARIGA_R_O CODRIGA
CHECKTYPE NORMAL
WARNING "Raggruppamento fiscale non presente"
MESSAGE COPY, F_ARIGA_A
GROUP 3 12
END
BOOLEAN F_TESTACOMP // checkbox per stampa completa della testata

@ -6,9 +6,10 @@
#include "ve3400.h"
#define GMC1 101
#define GMC2 102
#define GMC3 103
#define GMC 101
//#define GMC1 101
//#define GMC2 102
//#define GMC3 103
#define ANAMAG_APP "ve2 -3"
@ -45,9 +46,10 @@ protected:
bool TStampa_anagrafica_magazzino::user_create() {
_rel= new TRelation(LF_ANAMAG); // crea la relazione principale
_rel->add("GMC", "CODTAB==GRMERC1", 1, 0, GMC1); // aggancia la tabella Gruppi Merceologici al primo campo GRMERC1
_rel->add("GMC", "CODTAB==GRMERC2", 1, 0, GMC2); // aggancia la tabella Gruppi Merceologici al secondo campo GRMERC2
_rel->add("GMC", "CODTAB==GRMERC3", 1, 0, GMC3); // aggancia la tabella Gruppi Merceologici al terzo campo GRMERC3
_rel->add("GMC", "CODTAB==GRMERC", 1, 0, GMC); // aggancia la tabella Gruppi Merceologici al primo campo GRMERC1
//_rel->add("GMC", "CODTAB==GRMERC1", 1, 0, GMC1); // aggancia la tabella Gruppi Merceologici al primo campo GRMERC1
//_rel->add("GMC", "CODTAB==GRMERC2", 1, 0, GMC2); // aggancia la tabella Gruppi Merceologici al secondo campo GRMERC2
//_rel->add("GMC", "CODTAB==GRMERC3", 1, 0, GMC3); // aggancia la tabella Gruppi Merceologici al terzo campo GRMERC3
_rel->add(LF_UMART, "CODART==CODART"); // aggancia il file con le unità di misura dell'articolo
_rel->add(LF_CODCORR, "CODART==CODART"); // aggancia il file con i codici corrispondenti
_rel->add(LF_CLIFO, "TIPOCF==\"F\"|CODCF==CODFORN"); // aggancia il file clienti/fornitori
@ -104,42 +106,39 @@ bool TStampa_anagrafica_magazzino::set_print(int) {
}
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
_anagr_link_id= enable_link("Collegamento a anagrafica di magazzino", 'b'); // abilita il collegamento all'anagrafica di magazzino
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
Prima riga
CODART T DESCR GRMER GRMERC-DESCR
12345678901234567890 1 12345678901234567890123456789012345678901234567890 12345 12345678901234567890123456789012345678901234567890
Prima riga
CODART T DESCR GRMER GRMERC-DESCR
12345678901234567890 1 12345678901234567890123456789012345678901234567890 12345 12345678901234567890123456789012345678901234567890
Righe successive
CODARTALT T nota "Codice alternativo" UM UM-FC GRMER GRMERC-DESCR
12345678901234567890 1 123456789012345678 12 1234567890,12345 12345 12345678901234567890123456789012345678901234567890
Righe successive
CODARTALT T nota "Codice alternativo" UM UM-FC GRMER GRMERC-DESCR
12345678901234567890 1 123456789012345678 12 1234567890,12345 12345 12345678901234567890123456789012345678901234567890
Penultima riga
CODCF CODCF-RAGSOC COSTOST UP PESO TARA
12345 12345678901234567890123456789012345678901234567890 123456789012345,67890 12 123456789012345,67890 123456789012345,67890
Penultima riga
CODCF CODCF-RAGSOC COSTOST UP PESO TARA
12345 12345678901234567890123456789012345678901234567890 123456789012345,67890 12 123456789012345,67890 123456789012345,67890
Ultima riga
PPCONF PPCOLLO AP RD AF RAGFI C CCA GRP CON SOTTOC CCV GRP CON SOTTOC CLASSDOG IVA IVAR
123456789012345,67890 123456789012345,67890 12 12 12 12345 1 123 123 123 123456 123 123 123 123456 1234567890 1234 1234
Ultima riga
PPCONF PPCOLLO AP RD AF RAGFI C CCA GRP CON SOTTOC CCV GRP CON SOTTOC CLASSDOG IVA IVAR
123456789012345,67890 123456789012345,67890 12 12 12 12345 1 123 123 123 123456 123 123 123 123456 1234567890 1234 1234
*/
*/
void TStampa_anagrafica_magazzino::preprocess_header()
{
TString separator(132);
separator.fill('-');
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
@ -148,6 +147,8 @@ void TStampa_anagrafica_magazzino::preprocess_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, "@125gPag @#"); // la prima linea contiene, sicuramente, il numero di pagina
set_header(++i, separator);
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
@ -156,15 +157,18 @@ void TStampa_anagrafica_magazzino::preprocess_header()
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, separator);
set_header(++i, "");
}
void TStampa_anagrafica_magazzino::set_page(int file, int) {
if (file== LF_ANAMAG) { // 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_ANAMAG, "CODART"), FLD(LF_ANAMAG, "TIPO"), FLD(LF_ANAMAG, "DESCR"), FLD(LF_ANAMAG, "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.
//set_row(1, "$[g]@20s$[n]@22g@1s@24g@50s@75g@5s@81g@50s", FLD(LF_ANAMAG, "CODART"), FLD(LF_ANAMAG, "TIPO"), FLD(LF_ANAMAG, "DESCR"), FLD(LF_ANAMAG, "GRMERC1"), FLD(-GMC1, "S0")); // imposta la prima linea di dati
set_row(1, "$[b]@20s$[n]@22g@1s@24g@50s@75g@5s@81g@50s",
FLD(LF_ANAMAG, "CODART"), FLD(LF_ANAMAG, "TIPO"), FLD(LF_ANAMAG, "DESCR"),
FLD(LF_ANAMAG, "GRMERC"), FLD(-GMC, "S0")); // imposta la prima linea di dati
int n_codcorr= 0, n_umart= 0, n_gmc= 1;// (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
@ -190,21 +194,26 @@ void TStampa_anagrafica_magazzino::set_page(int file, int) {
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);
}
//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_ANAMAG, "CODFORN"), FLD(LF_CLIFO, "RAGSOC"), FLD(LF_ANAMAG, "COSTSTD"), FLD(LF_ANAMAG, "PESO"), FLD(LF_ANAMAG, "TARA")); // imposta la penultima linea
set_row(n_max+2, "@5s@7g@50s@58g@pn@83g@pn@105g@pn",
FLD(LF_ANAMAG, "CODFORN"), FLD(LF_CLIFO, "RAGSOC"),
FLD(LF_ANAMAG, "COSTSTD","###.###.###,@@"), FLD(LF_ANAMAG, "PESO","#########,@@@@@"),
FLD(LF_ANAMAG, "TARA"),"#########,@@@@@"); // imposta la penultima linea
if (_st_umart) set_row(n_max+2, "@80g@2s", FLD(LF_ANAMAG, "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_ANAMAG, "PPCONF"), FLD(LF_ANAMAG, "PPCOLLO"), FLD(LF_ANAMAG, "ARTPROD"), FLD(LF_ANAMAG, "RIORDINO")); // imposta l'ultima linea
set_row(n_max+3, "@pn@23g@pn@45g@f@48g@f",
FLD(LF_ANAMAG, "PPCONF","#########,@@@@@"), FLD(LF_ANAMAG, "PPCOLLO","#########,@@@@@"),
FLD(LF_ANAMAG, "ARTPROD"), FLD(LF_ANAMAG, "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_ANAMAG, "ARTFIS"), FLD(LF_ANAMAG, "RAGGFIS"), FLD(LF_ANAMAG, "CLASSEFIS"),
FLD(LF_ANAMAG, "CATCONA"), FLD(LF_ANAMAG, "GRUPPOA"), FLD(LF_ANAMAG, "CONTOA"), FLD(LF_ANAMAG, "SOTTOCA"),

@ -1,8 +1,20 @@
#include <lffiles.h>
#include "VE3400.H"
#include "ve3400.h"
PAGE "Stampa anagrafica di magazzino " -1 -1 72 14
GROUPBOX DLG_NULL 71 7
BEGIN
PROMPT 1 0 ""
//FLAG "R"
END
GROUPBOX DLG_NULL 71 5
BEGIN
PROMPT 1 7 "Controllo stampa"
//FLAG "R"
END
STRING F_CODART_1 20
BEGIN
PROMPT 2 1 "Dall'art. "
@ -51,12 +63,6 @@ BEGIN
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"
@ -72,12 +78,6 @@ 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"