Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
modifiche gestione moderna listini richieste da roberto


git-svn-id: svn://10.65.10.50/trunk@19502 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-10-23 08:36:25 +00:00
parent c6b154d19f
commit 047098c290
3 changed files with 212 additions and 112 deletions

View File

@ -373,13 +373,14 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
case F_L_CODRIGA_G:
case F_L_CODRIGA_S:
case F_L_CODRIGA_R:
//ricerca della riga listino attraverso codice nello sheet usando il campo di ricerca
if (e == fe_edit || e == fe_modify)
{
const char tiporiga = get(F_L_TIPORIGA)[0];
const TString& codriga = ((TEditable_field&)o).get_window_data();
TSheet_field& sf_righe = sfield(F_L_RIGHE);
const long riga = guess_art(sf_righe, tiporiga, codriga, 1);
if (riga >= 0)
if (riga >= 0 && riga != sf_righe.selected())
{
sf_righe.select(riga, true);
const short f_descr = o.dlg() + 1;
@ -392,6 +393,7 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
case F_L_DESRIGA_G:
case F_L_DESRIGA_S:
case F_L_DESRIGA_R:
//ricerca della riga listino attraverso descrizione nello sheet usando il campo di ricerca
if (!o.empty() && e == fe_edit)
{
const char tiporiga = get(F_L_TIPORIGA)[0];
@ -413,8 +415,8 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
{
TSheet_field& sf_righe = sfield(F_L_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.enable_column(S_NSCAGL, gest_scagl);
sf_righe.enable_column(S_QLIM, gest_scagl);
sf_righe.force_update();
}
@ -425,7 +427,7 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
{
TSheet_field& sf_righe = sfield(F_L_RIGHE);
const bool gest_um = o.get().full();
sf_righe.enable_column(F_UM, gest_um);
sf_righe.enable_column(S_UM, gest_um);
sf_righe.force_update();
}
@ -436,13 +438,13 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
{
TSheet_field& sf_righe = sfield(F_L_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.enable_column(S_ADDIVA, gest_sco);
sf_righe.enable_column(S_CODIVA, gest_sco);
sf_righe.enable_column(S_QOM, gest_sco);
sf_righe.enable_column(S_QBASE, gest_sco);
sf_righe.enable_column(S_CODARTOM, gest_sco);
sf_righe.enable_column(S_UMOM, gest_sco);
sf_righe.enable_column(S_PROMAGGIO, gest_sco);
sf_righe.force_update();
}
@ -459,6 +461,73 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
if (found_riga >= 0)
return error_box(TR("Non è possibile inserire lo stesso articolo più di una volta!"));
}
if (e == se_enter)
{
TSheet_field& sf_righe = sfield(F_L_RIGHE);
TToken_string& riga = sf_righe.row(jolly);
const char tipo = riga.get_char(0);
const TString& art = riga.get(1);
if (get(F_L_TIPO)[0] != tipo)
set(F_L_TIPO, tipo, 0x1); //0x1 perchè ha dei message e non degli output
switch (tipo)
{
case 'A':
if (art.full() && get(F_L_CODRIGA_A) != art)
{
//deve scriversi nel campo di ricerca; 0x2 serve x far funzionare le output del campo stesso
set(F_L_CODRIGA_A, art, 0x2);
}
break;
case 'G':
if (art.full() && get(F_L_CODRIGA_G) != art)
{
set(F_L_CODRIGA_G, art, 0x2);
}
break;
case 'S':
if (art.full() && get(F_L_CODRIGA_S) != art)
{
set(F_L_CODRIGA_S, art, 0x2);
}
break;
case 'R':
if (art.full() && get(F_L_CODRIGA_R) != art)
{
set(F_L_CODRIGA_R, art, 0x2);
}
break;
default:
break;
}
}
break;
case DLG_GRMERC:
if (e == fe_button)
{
TISAM_recordset gmc_recset("USE GMC");
//TCursor_sheet cs(gmc_recset.cursor(), "CODTAB|S0", TR("Gruppi merceologici"), HR("Gr.Merc.|Descrizione@50"), 0, 0, win());
TToken_string siblings;
TBrowse_sheet cs (gmc_recset.cursor(), "CODTAB|S0", TR("Gruppi merceologici"), HR("Gr.Merc.|Descrizione@50"), 0,
efield(F_L_GRMERC_A), siblings);
if (cs.run() == K_ENTER)
{
TLocalisamfile anamag(LF_ANAMAG);
anamag.put(ANAMAG_CODART, get(F_L_CODRIGA_A));
int err = anamag.read();
if (err == NOERR)
{
TToken_string& row = cs.row(cs.selected());
const TString& grmerc = row.get(0);
anamag.put(ANAMAG_GRMERC, grmerc);
anamag.rewrite();
set(F_L_GRMERC_A, grmerc, 0x2);
}
}
}
break;
case DLG_CREA: //copia / generazione listino
if (e == fe_button)
@ -696,7 +765,7 @@ int TGestione_listini_semplice::read(TMask& m)
//creatore delle descrizioni al posto della check_row; quest'ultima non si può usare..
//..perchè al cambio di tipo riga impazzisce; si fa solo con il campo codice
const int codice = f->dlg();
if (codice == F_CODRIGA_A || codice == F_CODRIGA_G || codice == F_CODRIGA_S || codice == F_CODRIGA_R)
if (codice == S_CODRIGA_A || codice == S_CODRIGA_G || codice == S_CODRIGA_S || codice == S_CODRIGA_R)
{
TString80 descr = find_descr(row);
row.add(descr, 2);

View File

@ -16,55 +16,60 @@
#define F_L_CODRIGA_R 214
#define F_L_DESRIGA_R 215
#define F_L_RIGHE 216
#define F_L_GRMERC_A 216
#define F_L_SOTGRMERC_A 217
#define F_L_DESGRMERC_A 218
#define DLG_GRMERC 219
#define F_L_CODVAL 217
#define F_L_CAMBIO 218
#define F_L_CONTROEURO 219
#define F_L_DATACAM 220
#define F_L_GESTSCAGL 221
#define F_L_DECIMALI 222
#define F_L_SEQRIC_1 223
#define F_L_SEQRIC_2 224
#define F_L_SEQRIC_3 225
#define F_L_SEQRIC_4 226
#define F_L_IMPLORDI 227
#define F_L_GESTUM 228
#define F_L_GESTSCO 229
#define F_L_CODSUCC 230
#define F_L_DESSUCC 231
#define F_L_FATHCATVEN 232
#define F_L_FATHDESVEN 233
#define F_L_FATHCOD 234
#define F_L_FATHDESCR 235
#define F_L_ARROTONDA 236
#define F_L_RIGHE 220
#define F_L_CODVAL 227
#define F_L_CAMBIO 228
#define F_L_CONTROEURO 229
#define F_L_DATACAM 230
#define F_L_GESTSCAGL 231
#define F_L_DECIMALI 232
#define F_L_SEQRIC_1 233
#define F_L_SEQRIC_2 234
#define F_L_SEQRIC_3 235
#define F_L_SEQRIC_4 236
#define F_L_IMPLORDI 237
#define F_L_GESTUM 238
#define F_L_GESTSCO 239
#define F_L_CODSUCC 240
#define F_L_DESSUCC 241
#define F_L_FATHCATVEN 242
#define F_L_FATHDESVEN 243
#define F_L_FATHCOD 244
#define F_L_FATHDESCR 245
#define F_L_ARROTONDA 246
//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
#define S_TIPORIGA 101
#define S_CODRIGA_A 102
#define S_DESRIGA_A 103
#define S_CODRIGA_G 202
#define S_DESRIGA_G 203
#define S_CODRIGA_S 302
#define S_DESRIGA_S 303
#define S_CODRIGA_R 402
#define S_DESRIGA_R 403
#define S_PREZZO 104
#define S_UM 105
#define S_NSCAGL 106
#define S_QLIM 107
#define S_SCONTO 108
#define S_ADDIVA 109
#define S_CODIVA 110
#define S_QOM 111
#define S_QBASE 112
#define S_CODARTOM 113
#define S_UMOM 114
#define S_PROMAGGIO 115
#define S_PRZSTO 116
#define S_DATAPRZSTO 117
#define S_DATAULTAUM 118
#define S_PERCPROVV 119
//bottoni
#define DLG_CREA 501

View File

@ -127,6 +127,7 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
OUTPUT F_L_CODRIGA_A CODART
OUTPUT F_L_DESRIGA_A DESCR
OUTPUT F_L_GRMERC_A GRMERC
CHECKTYPE SEARCH
ADD RUN ve2 -3
GROUP 1
@ -224,6 +225,31 @@ BEGIN
CHECKTYPE SEARCH
GROUP 4
END
STRING F_L_GRMERC_A 5
BEGIN
PROMPT 15 6 "Gr.merc. "
USE GMC
INPUT CODTAB F_L_GRMERC_A
OUTPUT F_L_DESGRMERC_A S0
FLAGS "DG"
CHECKTYPE NORMAL
GROUP 1 2 3
END
STRING F_L_DESGRMERC_A 50 27
BEGIN
PROMPT 30 6 ""
FLAGS "D"
GROUP 1 2 3
END
BUTTON DLG_GRMERC 18 1
BEGIN
PROMPT 58 6 "Modifica Gr.Merc."
GROUP 1
END
//------------------------------------------
TEXT -1
@ -525,7 +551,7 @@ ENDPAGE
PAGE "Riga listino" -1 -1 78 22
LIST F_TIPORIGA 1 16
LIST S_TIPORIGA 1 16
BEGIN
PROMPT 1 0 "Tipo riga "
FIELD TIPORIGA
@ -539,119 +565,119 @@ BEGIN
MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@
END
STRING F_CODRIGA_A 20
STRING S_CODRIGA_A 20
BEGIN
PROMPT 1 1 "Articolo "
FIELD CODRIGA
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_CODRIGA_A
INPUT CODART S_CODRIGA_A
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODRIGA_A CODART
OUTPUT F_DESRIGA_A DESCR
OUTPUT S_CODRIGA_A CODART
OUTPUT S_DESRIGA_A DESCR
CHECKTYPE FORCED
ADD RUN ve2 -3
GROUP 1
END
STRING F_DESRIGA_A 50 39
STRING S_DESRIGA_A 50 39
BEGIN
PROMPT 35 1 ""
USE LF_ANAMAG KEY 2
INPUT DESCR F_DESRIGA_A
INPUT DESCR S_DESRIGA_A
DISPLAY "Descrizione@50" DESCR
DISPLAY "Articolo@20" CODART
COPY OUTPUT F_CODRIGA_A
COPY OUTPUT S_CODRIGA_A
CHECKTYPE NORMAL
ADD RUN ve2 -3
GROUP 1
END
STRING F_CODRIGA_G 20 3
STRING S_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
INPUT CODTAB[1,3] S_CODRIGA_G
DISPLAY "Gr. merc." CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_CODRIGA_G CODTAB[1,3]
OUTPUT F_DESRIGA_G S0
OUTPUT S_CODRIGA_G CODTAB[1,3]
OUTPUT S_DESRIGA_G S0
CHECKTYPE FORCED
GROUP 2
END
STRING F_DESRIGA_G 50
STRING S_DESRIGA_G 50
BEGIN
PROMPT 24 1 ""
USE GMC KEY 2 SELECT CODTAB[4,5] == ""
INPUT S0 F_DESRIGA_G
INPUT S0 S_DESRIGA_G
DISPLAY "Descrizione@50" S0
DISPLAY "Gr. merc." CODTAB[1,3]
COPY OUTPUT F_CODRIGA_G
COPY OUTPUT S_CODRIGA_G
CHECKTYPE NORMAL
GROUP 2
END
STRING F_CODRIGA_S 20 5
STRING S_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
INPUT CODTAB S_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
OUTPUT S_CODRIGA_S CODTAB
OUTPUT S_DESRIGA_S S0
CHECKTYPE FORCED
GROUP 3
END
STRING F_DESRIGA_S 50
STRING S_DESRIGA_S 50
BEGIN
PROMPT 24 1 ""
USE GMC KEY 2 SELECT CODTAB[4,5] != ""
INPUT S0 F_DESRIGA_S
INPUT S0 S_DESRIGA_S
DISPLAY "Descrizione@50" S0
DISPLAY "Gr. merc." CODTAB[1,3]
DISPLAY "Sottogr. merc." CODTAB[4,5]
COPY OUTPUT F_CODRIGA_S
COPY OUTPUT S_CODRIGA_S
CHECKTYPE NORMAL
GROUP 3
END
STRING F_CODRIGA_R 20 5
STRING S_CODRIGA_R 20 5
BEGIN
PROMPT 1 1 "Raggr. fiscale "
FIELD CODRIGA
FLAGS "U"
USE RFA
INPUT CODTAB F_CODRIGA_R
INPUT CODTAB S_CODRIGA_R
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODRIGA_R CODTAB
OUTPUT F_DESRIGA_R S0
OUTPUT S_CODRIGA_R CODTAB
OUTPUT S_DESRIGA_R S0
CHECKTYPE FORCED
GROUP 4
END
STRING F_DESRIGA_R 50
STRING S_DESRIGA_R 50
BEGIN
PROMPT 24 1 ""
USE RFA KEY 2
INPUT S0 F_DESRIGA_R
INPUT S0 S_DESRIGA_R
DISPLAY "Descrizione@50" S0
DISPLAY "Ragg. fisc." CODTAB
COPY OUTPUT F_CODRIGA_R
COPY OUTPUT S_CODRIGA_R
CHECKTYPE NORMAL
GROUP 4
END
NUMBER F_PREZZO 18 5
NUMBER S_PREZZO 18 5
BEGIN
PROMPT 2 2 "Prezzo "
FIELD PREZZO
@ -659,18 +685,18 @@ BEGIN
DRIVENBY -F_L_CODVAL
END
STRING F_UM 2
STRING S_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
INPUT CODART S_CODRIGA_A SELECT
INPUT UM S_UM
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_UM UM
OUTPUT S_UM UM
CHECKTYPE FORCED
END
@ -679,14 +705,14 @@ BEGIN
PROMPT 1 3 "Scaglione"
END
NUMBER F_NSCAGL 1
NUMBER S_NSCAGL 1
BEGIN
PROMPT 2 4 "Numero "
FIELD NSCAGL
CHECKTYPE REQUIRED
END
NUMBER F_QLIM 15 5
NUMBER S_QLIM 15 5
BEGIN
PROMPT 24 4 "Qta limite "
FIELD QLIM
@ -697,22 +723,22 @@ BEGIN
PROMPT 1 6 "IVA"
END
BOOLEAN F_ADDIVA
BOOLEAN S_ADDIVA
BEGIN
PROMPT 2 7 "Addebito"
FIELD ADDIVA
END
STRING F_CODIVA 4
STRING S_CODIVA 4
BEGIN
PROMPT 25 7 "Codice"
FIELD CODIVA
FLAGS "U"
USE %IVA
INPUT CODTAB F_CODIVA
INPUT CODTAB S_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVA CODTAB
OUTPUT S_CODIVA CODTAB
CHECKTYPE NORMAL
END
@ -721,53 +747,53 @@ BEGIN
PROMPT 1 9 "Sconti e omaggi"
END
STRING F_SCONTO 25
STRING S_SCONTO 25
BEGIN
PROMPT 2 10 "Sconto/maggiorazione "
FIELD SCONTO
FLAGS "U"
END
NUMBER F_QOM 15 5
NUMBER S_QOM 15 5
BEGIN
PROMPT 2 11 "Qta sconto/omaggio "
FIELD QOM
END
NUMBER F_QBASE 15 5
NUMBER S_QBASE 15 5
BEGIN
PROMPT 2 12 "Qta base sconto "
FIELD QBASE
END
STRING F_CODARTOM 20
STRING S_CODARTOM 20
BEGIN
PROMPT 2 13 "Cod. articolo omaggio "
FIELD CODARTOM
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_CODARTOM
INPUT CODART S_CODARTOM
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODARTOM CODART
OUTPUT S_CODARTOM CODART
CHECKTYPE NORMAL
END
STRING F_UMOM 2
STRING S_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 CODART S_CODARTOM SELECT
INPUT UM F_UMOM
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_UMOM UM
OUTPUT S_UMOM UM
END
NUMBER F_PROMAGGIO 18 5
NUMBER S_PROMAGGIO 18 5
BEGIN
PROMPT 2 15 "Prezzo omaggio "
FIELD PROMAGGIO
@ -780,26 +806,26 @@ BEGIN
PROMPT 1 17 "Storico"
END
NUMBER F_PRZSTO 18 5
NUMBER S_PRZSTO 18 5
BEGIN
PROMPT 2 18 "Prezzo storico "
FIELD PRZSTO
FLAGS "U"
END
DATA F_DATAPRZSTO
DATA S_DATAPRZSTO
BEGIN
PROMPT 2 19 "Data prz storico "
FIELD DATAPRZSTO
END
DATA F_DATAULTAUM
DATA S_DATAULTAUM
BEGIN
PROMPT 2 20 "Data ultimo aumento "
FIELD DATAULTAUM
END
NUMBER F_PERCPROVV 5 2
NUMBER S_PERCPROVV 5 2
BEGIN
PROMPT 2 22 "% provv. "
FIELD PERCPROVV