Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
aggiunta prima stesura del nuovo programma listini (per adesso li legge ma non li scrive! è un carabiniere..)


git-svn-id: svn://10.65.10.50/trunk@19327 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-09-24 09:15:09 +00:00
parent 48b2f8e30b
commit 76d5da7cff
12 changed files with 962 additions and 28 deletions

View File

@ -17,7 +17,6 @@
#define CONDV_GESTUM "GESTUM"
#define CONDV_GESTSCAGL "GESTSCAGL"
#define CONDV_GESTSCO "GESTSCO"
#define CONDV_SCONST "SCONST"
#define CONDV_OBBLIG "OBBLIG"
#define CONDV_CODLISSUCC "CODLISSUCC"
#define CONDV_SEQRIC "SEQRIC"

View File

@ -1,3 +1,3 @@
52
0
$condv|0|0|121|0|Cond.di vendita(listini,contratti,offerte)|||
$condv|0|0|133|0|Cond.di vendita(listini,contratti,offerte)|||

View File

@ -1,5 +1,5 @@
52
21
23
TIPO|1|1|0|Tipo (<L>istini, <C>ontratti, <O>fferte)
CATVEN|1|2|0|Categoria vendite (L)
TIPOCF|1|1|0|<C>liente, <F>ornitore (C)
@ -16,10 +16,12 @@ IMPLORDI|8|1|0|Importi lordi
GESTUM|8|1|0|Gestione unitá di misura
GESTSCAGL|8|1|0|Gestione scaglioni
GESTSCO|8|1|0|Gestione sconti
SCONST|8|1|0|Gestione sconti standard
OBBLIG|8|1|0|Contratto obbligatorio (C)
CODLISSUCC|1|3|0|Codice listino successivo (L)
SEQRIC|1|4|0|Combinazione di (<A>rticolo,<G>ruppo merceologico,<R>aggr.fiscale)
DECIMALI|2|1|0|Numero di decimali significativi per la qta limite scaglione
FATHCATVEN|1|2|0|Listino padre: categoria vendite (L)
FATHCOD|1|3|0|Listino padre: codice (L)
ARROTONDA|1|8|0|Regola per arrotondamento importi (L)
1
TIPO+CATVEN+TIPOCF+CODCF+COD|

View File

@ -6,10 +6,12 @@ int main( int argc, char** argv)
const int r = argc>1 ? (argv[1][1]-'0') : 0;
switch (r)
{
case 1: ve2200(argc, argv); break;
case 2: ve2300(argc, argv); break;
case 3: ve2400(argc, argv); break;
case 5: ve2600(argc, argv); break;
case 1: ve2200(argc, argv); break;
case 2: ve2300(argc, argv); break;
case 3: ve2400(argc, argv); break;
case 4: ve2500(argc, argv); break;
case 5: ve2600(argc, argv); break;
//case 6: ve2700(argc, argv); break;
default: ve2100(argc, argv); break;
}
return 0;

View File

@ -5,7 +5,9 @@ int ve2100(int argc, char* argv[]); // tabelle sconti (di riga/di documento/inc
int ve2200(int argc, char* argv[]); // testate listini/contratti/offerte
int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte
int ve2400(int argc, char* argv[]); // anagrafica di magazzino
int ve2500(int argc, char* argv[]); // gestione semplificata (ovvero comprensibile) listini
int ve2600(int argc, char* argv[]); // relazioni articoli livelli di giacenza
//int ve2700(int argc, char* argv[]); // aggirnamento multiplo listini figli
#endif

View File

@ -12,7 +12,6 @@
#define F_GESTUM 120
#define F_GESTSCAGL 121
#define F_GESTSCO 122
#define F_SCONST 123
#define F_SEQRIC_1 124
#define F_SEQRIC_2 125
#define F_SEQRIC_3 126

View File

@ -324,8 +324,6 @@ BEGIN
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_L_CODSUCC
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD

View File

@ -175,7 +175,7 @@ STRING F_R_CODRIGA_A 20
BEGIN
PROMPT 37 4 "Codice articolo "
FIELD LF_RCONDV->CODRIGA
FLAG "U"
FLAGS "U"
KEY 1
USE LF_ANAMAG
INPUT CODART F_R_CODRIGA_A
@ -184,7 +184,7 @@ BEGIN
OUTPUT F_R_CODRIGA_A CODART
OUTPUT F_R_DESRIGA_A DESCR
CHECKTYPE FORCED
ADD RUN ve2 -3
ADD RUN ve2 -3
END
STRING F_R_DESRIGA_A 50
@ -197,14 +197,14 @@ BEGIN
DISPLAY "Articolo@20" CODART
COPY OUTPUT F_R_CODRIGA_A
CHECKTYPE NORMAL
ADD RUN ve2 -3
ADD RUN ve2 -3
END
STRING F_R_CODRIGA_G 3
BEGIN
PROMPT 2 5 "Gruppo merc. "
FIELD LF_RCONDV->CODRIGA[1,3]
FLAG "U"
FLAGS "U"
KEY 1
USE GMC SELECT CODTAB[4,5] == ""
INPUT CODTAB[1,3] F_R_CODRIGA_G
@ -212,7 +212,6 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_R_CODRIGA_G CODTAB[1,3]
OUTPUT F_R_DESRIGA_G S0
// MESSAGE COPY,F_R_CODRIGA_A
CHECKTYPE FORCED
END
@ -225,14 +224,13 @@ BEGIN
DISPLAY "Descrizione@50" S0
DISPLAY "Gr. merc." CODTAB[1,3]
COPY OUTPUT F_R_CODRIGA_G
// FLAG "D"
END
STRING F_R_CODRIGA_S 5
BEGIN
PROMPT 2 5 "Sottogr.mer. "
FIELD LF_RCONDV->CODRIGA[1,5]
FLAG "U"
FLAGS "U"
KEY 1
USE GMC SELECT CODTAB[4,5] != ""
INPUT CODTAB F_R_CODRIGA_S
@ -241,7 +239,6 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_R_CODRIGA_S CODTAB
OUTPUT F_R_DESRIGA_S S0
// MESSAGE COPY,F_R_CODRIGA_A
CHECKTYPE FORCED
END
@ -255,14 +252,13 @@ BEGIN
DISPLAY "Gr. merc." CODTAB[1,3]
DISPLAY "Sottogr. merc." CODTAB[4,5]
COPY OUTPUT F_R_CODRIGA_S
// FLAG "D"
END
STRING F_R_CODRIGA_R 5
BEGIN
PROMPT 2 5 "Ragg.fiscale "
FIELD LF_RCONDV->CODRIGA[1,5]
FLAG "U"
FLAGS "U"
KEY 1
USE RFA
INPUT CODTAB F_R_CODRIGA_R
@ -270,7 +266,6 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_R_CODRIGA_R CODTAB
OUTPUT F_R_DESRIGA_R S0
// MESSAGE COPY,F_R_CODRIGA_A
CHECKTYPE FORCED
END
@ -283,7 +278,6 @@ BEGIN
DISPLAY "Descrizione@50" S0
DISPLAY "Ragg. fisc." CODTAB
COPY OUTPUT F_R_CODRIGA_R
// FLAG "D"
END
STRING F_R_UM 2
@ -315,7 +309,6 @@ 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 SELECT
INPUT COD F_R_L_COD SELECT
@ -341,7 +334,6 @@ 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_C_COD)
INPUT TIPO F_R_TIPO SELECT
INPUT TIPOCF F_R_C_TIPOCF SELECT
INPUT CODCF F_R_C_CODCF SELECT
@ -365,7 +357,6 @@ BEGIN
PROMPT 100 100 ""
FLAG "D"
USE LF_RCONDV
// SELECT (TIPO==#F_R_TIPO)&&(COD==#F_R_O_COD)
INPUT TIPO F_R_TIPO SELECT
INPUT COD F_R_O_COD SELECT
INPUT TIPORIGA F_R_TIPORIGA

213
ve/ve2500.cpp Executable file
View File

@ -0,0 +1,213 @@
#include <automask.h>
#include <defmask.h>
#include <recset.h>
#include <relapp.h>
#include "condv.h"
#include "rcondv.h"
#include "ve2500a.h"
///////////////////////////////////////////////////////////////
// MASCHERA
///////////////////////////////////////////////////////////////
class TGestione_listini_semplice_mask: public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TGestione_listini_semplice_mask();
};
TGestione_listini_semplice_mask::TGestione_listini_semplice_mask() : TAutomask("ve2500a")
{
//in base alla cervellotica configurazione impostata dall'utonto abilita/disabilita campi
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
enable(F_L_CATVEN, gesliscv);
enable(F_L_DESVEN, gesliscv);
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
if (!gesliscv)
efield(F_L_CATVEN).reset_key(1);
}
bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_event e, long jolly)
{
switch(o.dlg())
{
//se abilita la gestione scaglioni nello sheet devono comparire le colonne NSCAGL e QLIM
case F_L_GESTSCAGL:
if (e == fe_init || e == fe_modify)
{
TSheet_field& sf_righe = sfield(F_RIGHE);
const bool gest_scagl = o.get().full();
sf_righe.enable_column(F_NSCAGL, gest_scagl);
sf_righe.enable_column(F_QLIM, gest_scagl);
sf_righe.force_update();
}
break;
//stesso giochetto per UM
case F_L_GESTUM:
if (e == fe_init || e == fe_modify)
{
TSheet_field& sf_righe = sfield(F_RIGHE);
const bool gest_um = o.get().full();
sf_righe.enable_column(F_UM, gest_um);
sf_righe.force_update();
}
break;
//e anche per i campi omaggio
case F_L_GESTSCO:
if (e == fe_init || e == fe_modify)
{
TSheet_field& sf_righe = sfield(F_RIGHE);
const bool gest_sco = o.get().full();
sf_righe.enable_column(F_ADDIVA, gest_sco);
sf_righe.enable_column(F_CODIVA, gest_sco);
sf_righe.enable_column(F_QOM, gest_sco);
sf_righe.enable_column(F_QBASE, gest_sco);
sf_righe.enable_column(F_CODARTOM, gest_sco);
sf_righe.enable_column(F_UMOM, gest_sco);
sf_righe.enable_column(F_PROMAGGIO, gest_sco);
sf_righe.force_update();
}
break;
default:
break;
}
return true;
}
///////////////////////////////////////////////////////////////
// APPLICAZIONE
///////////////////////////////////////////////////////////////
class TGestione_listini_semplice : public TRelation_application
{
TGestione_listini_semplice_mask *_mask;
TRelation* _rel;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask *get_mask(int) { return _mask; }
virtual bool changing_mask(int) { return false; }
// virtual void init_query_mode(TMask& m);
// virtual void init_insert_mode(TMask& m);
// virtual void init_modify_mode(TMask& m);
virtual bool protected_record(TRectype& rec);
virtual int read(TMask& m);
// virtual bool remove();
// virtual int write(const TMask& m);
// virtual int rewrite(const TMask& m);
public:
virtual TRelation *get_relation() const { return _rel; }
TGestione_listini_semplice() { _rel = NULL; _mask = NULL;}
virtual ~TGestione_listini_semplice() {}
};
bool TGestione_listini_semplice::protected_record(TRectype& rec)
{
//non deve consentire l'eliminazione di un listino se ha dei figli da mantenere!
TString query;
query << "USE CONDV\n";
query << "SELECT (FATHCATVEN=#CATVEN)&&(FATHCOD=#COD)\n";
query << "FROM TIPO=L\n";
query << "TO TIPO=L\n";
TISAM_recordset figli(query);
figli.set_var("#CATVEN", rec.get(CONDV_CATVEN));
figli.set_var("#COD", rec.get(CONDV_COD));
return figli.items() > 0;
}
int TGestione_listini_semplice::read(TMask& m)
{
//eseguo la read() standard
int err = TRelation_application::read(m);
//se la read va a buon fine
if (err == NOERR)
{
//instanzio un TISAM_recordset sulle righe listino (RCONDV)
TString query;
query << "USE RCONDV\n";
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD\n";
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD\n";
TISAM_recordset righelist(query);
righelist.set_var("#CATVEN", m.get(F_L_CATVEN));
righelist.set_var("#COD", m.get(F_L_COD));
const long righelist_items = righelist.items();
const TRectype& rec = righelist.cursor()->curr();
/* //instanzio un TLcalisamfile su LF_CLIFOGIAC
TLocalisamfile magcli(LF_CLIFOGIAC);
//setto alcune variabili di interesse
const TDate oggi(TODAY);
const int year = oggi.year();
const long clifo = m.get_long(F_CODCF);
const int indsp = m.get_int(F_INDSPED);*/
//recupero sheet e realtiva mashera di riga
TSheet_field& sf_righe = m.sfield(F_RIGHE);
TMask& msk = sf_righe.sheet_mask();
sf_righe.destroy();
//per ogni riga dello sheet
int pos = -1;
for (bool ok = righelist.move_first(); ok; ok = righelist.move_next())
{
++pos;
TToken_string& row = sf_righe.row(-1);
//per ogni campo della maschera scrivi setta all'interno del record corrente di file
//il valore di quei campi che hanno un field
FOR_EACH_MASK_FIELD(msk,i,f)
{
const TFieldref* fr = f->field();
if (fr != NULL)
row.add(fr->read(rec),sf_righe.cid2index(f->dlg()));
}
//forzo una check_row
sf_righe.check_row(sf_righe.items()-1, 3);
}
}
return err;
}
bool TGestione_listini_semplice::user_create()
{
_rel = new TRelation(LF_CONDV);
//attenzione!! questo è il parametro per avere la lunghezza del numero riga
TSheet_field::set_line_number_width(4);
_mask = new TGestione_listini_semplice_mask;
return true;
}
bool TGestione_listini_semplice::user_destroy()
{
delete _mask;
delete _rel;
return true;
}
int ve2500(int argc, char* argv[])
{
TGestione_listini_semplice a;
a.run(argc, argv, "Gestione listini");
return 0;
}

61
ve/ve2500a.h Executable file
View File

@ -0,0 +1,61 @@
//maschera gestione listini comprensibile
#define F_L_CATVEN 201
#define F_L_DESVEN 202
#define F_L_COD 203
#define F_L_DESCR 204
#define F_VALINI 205
#define F_VALFIN 206
#define F_RIGHE 207
#define F_L_CODVAL 208
#define F_L_CAMBIO 209
#define F_L_CONTROEURO 210
#define F_L_DATACAM 211
#define F_L_GESTSCAGL 212
#define F_L_DECIMALI 213
#define F_L_SEQRIC_1 214
#define F_L_SEQRIC_2 215
#define F_L_SEQRIC_3 216
#define F_L_SEQRIC_4 217
#define F_L_IMPLORDI 218
#define F_L_GESTUM 219
#define F_L_GESTSCO 220
#define F_L_CODSUCC 221
#define F_L_DESSUCC 222
#define F_L_FATHCATVEN 223
#define F_L_FATHDESVEN 224
#define F_L_FATHCOD 225
#define F_L_FATHDESCR 226
#define F_L_ARROTONDA 227
//campi dello sheet delle righe
#define F_TIPORIGA 101
#define F_CODRIGA_A 102
#define F_DESRIGA_A 103
#define F_CODRIGA_G 202
#define F_DESRIGA_G 203
#define F_CODRIGA_S 302
#define F_DESRIGA_S 303
#define F_CODRIGA_R 402
#define F_DESRIGA_R 403
#define F_PREZZO 104
#define F_UM 105
#define F_NSCAGL 106
#define F_QLIM 107
#define F_SCONTO 108
#define F_ADDIVA 109
#define F_CODIVA 110
#define F_QOM 111
#define F_QBASE 112
#define F_CODARTOM 113
#define F_UMOM 114
#define F_PROMAGGIO 115
#define F_PRZSTO 116
#define F_DATAPRZSTO 117
#define F_DATAULTAUM 118
#define F_PERCPROVV 119

669
ve/ve2500a.uml Executable file
View File

@ -0,0 +1,669 @@
#include "ve2500a.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Dati generali e Righe" 0 2 0 0
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 0 "@bDati Listino"
END
LIST DLG_NULL 1 7
BEGIN
PROMPT 100 100 ""
ITEM "L|Listino"
FLAGS "D"
FIELD TIPO
KEY 1
END
STRING F_L_CATVEN 2
BEGIN
PROMPT 1 1 "Cat. ven. "
FIELD CATVEN
FLAGS "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 FORCED
END
STRING F_L_DESVEN 50
BEGIN
PROMPT 18 1 ""
USE CVE KEY 2
INPUT S0 F_L_DESVEN
DISPLAY "Descrizione@50" S0
DISPLAY "Cat." CODTAB
COPY OUTPUT F_L_CATVEN
CHECKTYPE NORMAL
END
STRING F_L_COD 3
BEGIN
PROMPT 1 2 "Listino "
FIELD COD
FLAGS "U"
KEY 1
USE LF_CONDV
INPUT TIPO "L"
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
DISPLAY "Valuta" CODVAL
DISPLAY "Fine validita'" VALFIN
OUTPUT F_L_CATVEN CATVEN
OUTPUT F_L_COD COD
OUTPUT F_L_DESCR DESCR
CHECKTYPE REQUIRED
END
STRING F_L_DESCR 50
BEGIN
PROMPT 18 2 ""
FIELD DESCR
END
DATA F_VALINI
BEGIN
PROMPT 1 3 "Inizio validita` "
FIELD VALIN
END
DATA F_VALFIN
BEGIN
PROMPT 42 3 "Fine validita` "
FIELD VALFIN
END
TEXT -1
BEGIN
PROMPT 0 5 "@bRighe listino"
END
SPREADSHEET F_RIGHE
BEGIN
PROMPT 1 6 "Righe"
ITEM "Tipo@4"
ITEM "Codice@20"
ITEM "Descrizione@50"
ITEM "Prezzo netto@18"
ITEM "UM"
ITEM "N.Scagl."
ITEM "Qta lim. scagl."
ITEM "Sconto@25"
ITEM "Add.IVA"
ITEM "Cod.IVA"
ITEM "Qta sconto/omag"
ITEM "Qta base sconto"
ITEM "Cod. art. omaggio@20"
ITEM "UM omaggio"
ITEM "Prezzo omaggio"
ITEM "Prezzo storico"
ITEM "Data prz.storico"
ITEM "Data ult.aumento"
ITEM "% provvigione"
END
ENDPAGE
PAGE "Dati avanzati" 0 2 0 0
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 0 "@bGestione valuta"
END
STRING F_L_CODVAL 5
BEGIN
PROMPT 1 1 "Valuta "
FIELD CODVAL
FLAGS "U"
USE %VAL
INPUT CODTAB F_L_CODVAL
DISPLAY "Valuta" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Cambio" S4
OUTPUT F_L_CODVAL CODTAB
OUTPUT F_L_CONTROEURO B1
OUTPUT F_L_CAMBIO S4
CHECKTYPE NORMAL
MESSAGE EMPTY CLEAR,F_L_CAMBIO|CLEAR,F_L_DATACAM|DISABLE,F_L_DATACAM
MESSAGE ENABLE,F_L_CAMBIO|ENABLE,F_L_DATACAM
END
NUMBER F_L_CAMBIO 15 6
BEGIN
PROMPT 17 1 "Cambio "
FIELD CAMBIO
END
BOOLEAN F_L_CONTROEURO
BEGIN
PROMPT 42 1 "Contro Euro"
FIELD CONTROEURO
END
DATA F_L_DATACAM
BEGIN
PROMPT 61 1 "Data "
FIELD DATACAM
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 3 "@bScaglioni"
END
BOOLEAN F_L_GESTSCAGL
BEGIN
PROMPT 1 4 "Gestione scaglioni"
FIELD GESTSCAGL
MESSAGE FALSE CLEAR,F_L_DECIMALI
MESSAGE TRUE ENABLE,F_L_DECIMALI
END
LISTBOX F_L_DECIMALI 7
BEGIN
PROMPT 25 4 "Decimali per quantita' limite "
FIELD DECIMALI
ITEM "0|Nessuno"
ITEM "1|1"
ITEM "2|2"
ITEM "3|3"
ITEM "4|4"
ITEM "5|5"
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 6 "@bSequenza ricerca"
END
LIST F_L_SEQRIC_1 10
BEGIN
PROMPT 1 7 ""
FIELD SEQRIC[1,1]
ITEM "A|Articoli"
ITEM "G|Gruppo M."
ITEM "S|Sottog. M."
ITEM "R|Ragg.fisc."
END
LIST F_L_SEQRIC_2 10
BEGIN
PROMPT 18 7 ""
FIELD SEQRIC[2,2]
ITEM "-|Nessuno" MESSAGE CLEAR,5@
ITEM "A|Articoli" MESSAGE ENABLE,F_L_SEQRIC_3
ITEM "G|Gruppo M." MESSAGE ENABLE,F_L_SEQRIC_3
ITEM "S|Sottog. M." MESSAGE ENABLE,F_L_SEQRIC_3
ITEM "R|Ragg.fisc." MESSAGE ENABLE,F_L_SEQRIC_3
STR_EXPR (#THIS_FIELD=="-")||(#THIS_FIELD!=#F_L_SEQRIC_1)
WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe"
END
LIST F_L_SEQRIC_3 10
BEGIN
PROMPT 33 7 ""
FIELD SEQRIC[3,3]
ITEM "-|Nessuno" MESSAGE CLEAR,F_L_SEQRIC_4
ITEM "A|Articoli" MESSAGE ENABLE,F_L_SEQRIC_4
ITEM "G|Gruppo M." MESSAGE ENABLE,F_L_SEQRIC_4
ITEM "S|Sottog. M." MESSAGE ENABLE,F_L_SEQRIC_4
ITEM "R|Ragg.fisc." MESSAGE ENABLE,F_L_SEQRIC_4
GROUP 5
STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_L_SEQRIC_1)&&(#THIS_FIELD!=#F_L_SEQRIC_2))
WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe"
END
LIST F_L_SEQRIC_4 10
BEGIN
PROMPT 48 7 ""
FIELD SEQRIC[4,4]
ITEM "-|Nessuno"
ITEM "A|Articoli"
ITEM "G|Gruppo M."
ITEM "S|Sottog. M."
ITEM "R|Ragg.fisc."
GROUP 5
STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_L_SEQRIC_1)&&(#THIS_FIELD!=#F_L_SEQRIC_2)&&(#THIS_FIELD!=#F_L_SEQRIC_3))
WARNING "La sequenza di ricerca deve indicare quattro tipi diversi di righe"
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 9 "@bListino successivo"
END
STRING F_L_CODSUCC 3
BEGIN
PROMPT 1 10 ""
FIELD CODLISSUCC
FLAGS "U"
USE LF_CONDV
INPUT TIPO "L"
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_CODSUCC
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT F_L_CODSUCC COD
OUTPUT F_L_DESSUCC DESCR
CHECKTYPE NORMAL
END
STRING F_L_DESSUCC 50
BEGIN
PROMPT 10 10 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 12 "@bListino padre"
END
STRING F_L_FATHCATVEN 2
BEGIN
PROMPT 1 13 "Cat. ven. "
FIELD FATHCATVEN
FLAGS "U"
USE CVE
INPUT CODTAB F_L_FATHCATVEN
DISPLAY "Cat." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_L_FATHCATVEN CODTAB
OUTPUT F_L_FATHDESVEN S0
CHECKTYPE NORMAL
END
STRING F_L_FATHDESVEN 50
BEGIN
PROMPT 18 13 ""
USE CVE KEY 2
INPUT S0 F_L_FATHDESVEN
DISPLAY "Descrizione@50" S0
DISPLAY "Cat." CODTAB
COPY OUTPUT F_L_FATHCATVEN
END
STRING F_L_FATHCOD 3
BEGIN
PROMPT 1 14 "Listino "
FIELD FATHCOD
FLAGS "U"
USE LF_CONDV SELECT COD!=#F_L_COD
INPUT TIPO "L"
INPUT CATVEN F_L_FATHCATVEN SELECT
INPUT COD F_L_FATHCOD
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
DISPLAY "Valuta" CODVAL
DISPLAY "Fine validita'" VALFIN
OUTPUT F_L_FATHCATVEN CATVEN
OUTPUT F_L_FATHCOD COD
OUTPUT F_L_FATHDESCR DESCR
CHECKTYPE NORMAL
END
STRING F_L_FATHDESCR 50
BEGIN
PROMPT 18 14 ""
FLAGS "D"
END
STRING F_L_ARROTONDA 8
BEGIN
PROMPT 1 15 "Arrotonda "
END
TEXT -1
BEGIN
PROMPT 21 15 "es. -0,05=per difetto ai 5 cent; +0,10=per eccesso ai 10 cent"
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 17 "@bParametri gestione"
END
BOOLEAN F_L_IMPLORDI
BEGIN
PROMPT 1 18 "Importi lordi"
FIELD IMPLORDI
END
BOOLEAN F_L_GESTUM
BEGIN
PROMPT 20 18 "Gestione unita` di misura"
FIELD GESTUM
END
BOOLEAN F_L_GESTSCO
BEGIN
PROMPT 50 18 "Gestione sconti/omaggi"
FIELD GESTSCO
END
ENDPAGE
ENDMASK
/////////////////////////////////////////
//maschera di riga
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
PAGE "Riga listino" -1 -1 78 22
LIST F_TIPORIGA 1 16
BEGIN
PROMPT 1 0 "Tipo riga "
FIELD TIPORIGA
FLAGS "P"
ITEM "A|Articolo"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|SHOW,1@
ITEM "G|Gruppo merc."
MESSAGE HIDE,1@|HIDE,3@|HIDE,4@|SHOW,2@
ITEM "S|Sottogr. merc."
MESSAGE HIDE,1@|HIDE,2@|HIDE,4@|SHOW,3@
ITEM "R|Ragg. fiscale"
MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@
END
STRING F_CODRIGA_A 20
BEGIN
PROMPT 1 1 "Articolo "
FIELD CODRIGA
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_CODRIGA_A
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODRIGA_A CODART
OUTPUT F_DESRIGA_A DESCR
CHECKTYPE FORCED
ADD RUN ve2 -3
GROUP 1
END
STRING F_DESRIGA_A 50 39
BEGIN
PROMPT 35 1 ""
USE LF_ANAMAG KEY 2
INPUT DESCR F_DESRIGA_A
DISPLAY "Descrizione@50" DESCR
DISPLAY "Articolo@20" CODART
COPY OUTPUT F_CODRIGA_A
CHECKTYPE NORMAL
ADD RUN ve2 -3
GROUP 1
END
STRING F_CODRIGA_G 20 3
BEGIN
PROMPT 1 1 "Gr. merceologico "
FIELD CODRIGA
FLAGS "U"
USE GMC SELECT CODTAB[4,5] == ""
INPUT CODTAB[1,3] F_CODRIGA_G
DISPLAY "Gr. merc." CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_CODRIGA_G CODTAB[1,3]
OUTPUT F_DESRIGA_G S0
CHECKTYPE FORCED
GROUP 2
END
STRING F_DESRIGA_G 50
BEGIN
PROMPT 24 1 ""
USE GMC KEY 2 SELECT CODTAB[4,5] == ""
INPUT S0 F_DESRIGA_G
DISPLAY "Descrizione@50" S0
DISPLAY "Gr. merc." CODTAB[1,3]
COPY OUTPUT F_CODRIGA_G
GROUP 2
END
STRING F_CODRIGA_S 20 5
BEGIN
PROMPT 1 1 "Sottogr. merc. "
FIELD CODRIGA
FLAGS "U"
USE GMC SELECT CODTAB[4,5] != ""
INPUT CODTAB F_CODRIGA_S
DISPLAY "Gruppo merc." CODTAB[1,3]
DISPLAY "Sottogr. merc." CODTAB[4,5]
DISPLAY "Descrizione@50" S0
OUTPUT F_CODRIGA_S CODTAB
OUTPUT F_DESRIGA_S S0
CHECKTYPE FORCED
GROUP 3
END
STRING F_DESRIGA_S 50
BEGIN
PROMPT 24 1 ""
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
INPUT S0 F_DESRIGA_S
DISPLAY "Descrizione@50" S0
DISPLAY "Gr. merc." CODTAB[1,3]
DISPLAY "Sottogr. merc." CODTAB[4,5]
COPY OUTPUT F_CODRIGA_S
GROUP 3
END
STRING F_CODRIGA_R 20 5
BEGIN
PROMPT 1 1 "Raggr. fiscale "
FIELD CODRIGA
FLAGS "U"
USE RFA
INPUT CODTAB F_CODRIGA_R
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODRIGA_R CODTAB
OUTPUT F_DESRIGA_R S0
CHECKTYPE FORCED
GROUP 4
END
STRING F_DESRIGA_R 50
BEGIN
PROMPT 24 1 ""
USE RFA KEY 2
INPUT S0 F_DESRIGA_R
DISPLAY "Descrizione@50" S0
DISPLAY "Ragg. fisc." CODTAB
COPY OUTPUT F_CODRIGA_R
GROUP 4
END
NUMBER F_PREZZO 18 5
BEGIN
PROMPT 2 2 "Prezzo "
FIELD PREZZO
FLAGS "U"
DRIVENBY -F_L_CODVAL
END
STRING F_UM 2
BEGIN
PROMPT 67 0 "U.M. "
FIELD UM
FLAGS "U"
USE LF_UMART KEY 2
JOIN %UMS INTO CODTAB=UM
INPUT CODART F_CODRIGA_A SELECT
INPUT UM F_UM
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_UM UM
CHECKTYPE FORCED
GROUP 1
END
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 3 "Scaglione"
END
NUMBER F_NSCAGL 1
BEGIN
PROMPT 2 4 "Numero "
FIELD NSCAGL
CHECKTYPE REQUIRED
END
NUMBER F_QLIM 15 5
BEGIN
PROMPT 24 4 "Qta limite "
FIELD QLIM
END
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 6 "IVA"
END
BOOLEAN F_ADDIVA
BEGIN
PROMPT 2 7 "Addebito"
FIELD ADDIVA
END
STRING F_CODIVA 4
BEGIN
PROMPT 25 7 "Codice"
FIELD CODIVA
FLAGS "U"
USE %IVA
INPUT CODTAB F_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVA CODTAB
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 76 8
BEGIN
PROMPT 1 9 "Sconti e omaggi"
END
STRING F_SCONTO 25
BEGIN
PROMPT 2 10 "Sconto/maggiorazione "
FIELD SCONTO
FLAGS "U"
END
NUMBER F_QOM 15 5
BEGIN
PROMPT 2 11 "Qta sconto/omaggio "
FIELD QOM
END
NUMBER F_QBASE 15 5
BEGIN
PROMPT 2 12 "Qta base sconto "
FIELD QBASE
END
STRING F_CODARTOM 20
BEGIN
PROMPT 2 13 "Cod. articolo omaggio "
FIELD CODARTOM
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_CODARTOM
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODARTOM CODART
CHECKTYPE NORMAL
END
STRING F_UMOM 2
BEGIN
PROMPT 2 14 "U.M. qta omaggio "
FIELD UMOM
FLAGS "U"
USE LF_UMART KEY 2
JOIN %UMS INTO CODTAB=UM
INPUT CODART F_CODARTOM SELECT
INPUT UM F_UMOM
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_UMOM UM
END
NUMBER F_PROMAGGIO 18 5
BEGIN
PROMPT 2 15 "Prezzo omaggio "
FIELD PROMAGGIO
FLAGS "U"
DRIVENBY -F_L_CODVAL
END
GROUPBOX DLG_NULL 76 5
BEGIN
PROMPT 1 17 "Storico"
END
NUMBER F_PRZSTO 18 5
BEGIN
PROMPT 2 18 "Prezzo storico "
FIELD PRZSTO
FLAGS "U"
END
DATA F_DATAPRZSTO
BEGIN
PROMPT 2 19 "Data prz storico "
FIELD DATAPRZSTO
END
DATA F_DATAULTAUM
BEGIN
PROMPT 2 20 "Data ultimo aumento "
FIELD DATAULTAUM
END
NUMBER F_PERCPROVV 5 2
BEGIN
PROMPT 2 22 "% provv. "
FIELD PERCPROVV
NUM_EXPR (#F_PERCPROVV>=0)&&(#F_PERCPROVV<=100)
WARNING "La percentuale di provvigione deve essere compresa tra 0 e 100"
END
ENDPAGE
ENDMASK

View File

@ -392,7 +392,6 @@ void TStampa_condizioni_vendita::preprocess_header() {
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)
{
@ -458,7 +457,6 @@ void TStampa_condizioni_vendita::set_page(int file, int) {
set_row(++i, "Gestione unità di misura: @f", FLD(LF_CONDV, "GESTUM"));
set_row(++i, "Gestione scaglioni: @f", FLD(LF_CONDV, "GESTSCAGL"));
set_row(++i, "Gestione sconti: @f", FLD(LF_CONDV, "GESTSCO"));
set_row(++i, "Gestione sconti standard: @f", FLD(LF_CONDV, "SCONST"));
if (_condven=="C") set_row(++i, "Contratto obbligatorio: @f", FLD(LF_CONDV, "OBBLIG"));
if (_condven=="L") set_row(++i, "Codice listino successivo: @3s", FLD(LF_CONDV, "CODLISSUCC"));
set_row(++i, "Sequenza di ricerca: @4s", FLD(LF_CONDV, "SEQRIC"));