Patch level : 10.0 542

Files correlati     : ve2.exe
Ricompilazione Demo : [ ]

Aggiunto ordinamento della descrizione nella generazione codici avanzata


git-svn-id: svn://10.65.10.50/trunk@19723 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-12-03 15:05:19 +00:00
parent 3c0c3350aa
commit 8d78c4b8e7
4 changed files with 152 additions and 52 deletions

View File

@ -37,8 +37,6 @@ BOOLEAN F_ROOT
BEGIN BEGIN
PROMPT 28 2 "Livello radice (Primo livello della gerarchia)" PROMPT 28 2 "Livello radice (Primo livello della gerarchia)"
FIELD B0 FIELD B0
MESSAGE FALSE ENABLE,F_SEPDESC
MESSAGE TRUE CLEAR,F_SEPDESC
END END
// descrizione parte del formato codice // descrizione parte del formato codice

View File

@ -13,39 +13,47 @@
#define F_FORMAT1 301 #define F_FORMAT1 301
#define F_DESCR1 401 #define F_DESCR1 401
#define F_SEPDES1 501 #define F_SEPDES1 501
#define F_ORD1 601
#define F_CHILD2 202 #define F_CHILD2 202
#define F_FORMAT2 302 #define F_FORMAT2 302
#define F_DESCR2 402 #define F_DESCR2 402
#define F_SEPDES2 502 #define F_SEPDES2 502
#define F_ORD2 602
#define F_CHILD3 203 #define F_CHILD3 203
#define F_FORMAT3 303 #define F_FORMAT3 303
#define F_DESCR3 403 #define F_DESCR3 403
#define F_SEPDES3 503 #define F_SEPDES3 503
#define F_ORD3 603
#define F_CHILD4 204 #define F_CHILD4 204
#define F_FORMAT4 304 #define F_FORMAT4 304
#define F_DESCR4 404 #define F_DESCR4 404
#define F_SEPDES4 504 #define F_SEPDES4 504
#define F_ORD4 604
#define F_CHILD5 205 #define F_CHILD5 205
#define F_FORMAT5 305 #define F_FORMAT5 305
#define F_DESCR5 405 #define F_DESCR5 405
#define F_SEPDES5 505 #define F_SEPDES5 505
#define F_ORD5 605
#define F_CHILD6 206 #define F_CHILD6 206
#define F_FORMAT6 306 #define F_FORMAT6 306
#define F_DESCR6 406 #define F_DESCR6 406
#define F_SEPDES6 506 #define F_SEPDES6 506
#define F_ORD6 606
#define F_CHILD7 207 #define F_CHILD7 207
#define F_FORMAT7 307 #define F_FORMAT7 307
#define F_DESCR7 407 #define F_DESCR7 407
#define F_SEPDES7 507 #define F_SEPDES7 507
#define F_ORD7 607
#define F_CHILD8 208 #define F_CHILD8 208
#define F_FORMAT8 308 #define F_FORMAT8 308
#define F_DESCR8 408 #define F_DESCR8 408
#define F_SEPDES8 508 #define F_SEPDES8 508
#define F_ORD8 608

View File

@ -16,7 +16,7 @@ BEGIN
FIELD CODTAB[1,3] FIELD CODTAB[1,3]
KEY 1 KEY 1
FLAG "UZ" FLAG "UZ"
USE FSA USE FSA SELECT (B0=="X")
INPUT CODTAB F_CODLIV INPUT CODTAB F_CODLIV
DISPLAY "Codice Parte" CODTAB DISPLAY "Codice Parte" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
@ -71,7 +71,6 @@ BEGIN
OUTPUT F_CODGROUP CODTAB[4,24] OUTPUT F_CODGROUP CODTAB[4,24]
OUTPUT F_DESGROUP S0 OUTPUT F_DESGROUP S0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
MESSAGE EMPTY ENABLE,F_DESLIV MESSAGE EMPTY ENABLE,F_DESLIV
MESSAGE DISABLE,F_DESLIV MESSAGE DISABLE,F_DESLIV
END END
@ -110,7 +109,7 @@ BEGIN
FIELD S1[1,3] FIELD S1[1,3]
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD2 MESSAGE EMPTY CLEAR,F_CHILD2
MESSAGE ENABLE,F_CHILD2 MESSAGE ENABLE,F_CHILD2
END END
@ -122,7 +121,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR1 50 35 STRING F_DESCR1 50 33
BEGIN BEGIN
PROMPT 28 7 "" PROMPT 28 7 ""
GROUP 3 GROUP 3
@ -131,11 +130,18 @@ END
STRING F_SEPDES1 6 STRING F_SEPDES1 6
BEGIN BEGIN
PROMPT 64 7 "Sep." PROMPT 62 7 "S."
GROUP 3 GROUP 3
FIELD S2[1,6] FIELD S2[1,6]
END END
NUMBER F_ORD1 1
BEGIN
PROMPT 71 7 "O."
GROUP 3
FIELD S2[49,49]
END
STRING F_CHILD2 3 STRING F_CHILD2 3
BEGIN BEGIN
PROMPT 2 8 "Parte 3 " PROMPT 2 8 "Parte 3 "
@ -148,9 +154,9 @@ BEGIN
FIELD S1[4,6] FIELD S1[4,6]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD3|CLEAR,F_SEPDES2 MESSAGE EMPTY CLEAR,F_CHILD3|CLEAR,F_SEPDES2|CLEAR,F_ORD2
MESSAGE ENABLE,F_CHILD3|ENABLE,F_SEPDES2 MESSAGE ENABLE,F_CHILD3|ENABLE,F_SEPDES2|ENABLE,F_ORD2
END END
STRING F_FORMAT2 20 10 STRING F_FORMAT2 20 10
@ -160,7 +166,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR2 50 35 STRING F_DESCR2 50 33
BEGIN BEGIN
PROMPT 28 8 "" PROMPT 28 8 ""
FLAGS "D" FLAGS "D"
@ -169,12 +175,19 @@ END
STRING F_SEPDES2 6 STRING F_SEPDES2 6
BEGIN BEGIN
PROMPT 64 8 "Sep." PROMPT 62 8 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[7,12] FIELD S2[7,12]
END END
NUMBER F_ORD2 1
BEGIN
PROMPT 71 8 "O."
GROUP 3
FIELD S2[50,50]
END
STRING F_CHILD3 3 STRING F_CHILD3 3
BEGIN BEGIN
PROMPT 2 9 "Parte 4 " PROMPT 2 9 "Parte 4 "
@ -187,9 +200,9 @@ BEGIN
FIELD S1[7,9] FIELD S1[7,9]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD4|CLEAR,F_SEPDES3 MESSAGE EMPTY CLEAR,F_CHILD4|CLEAR,F_SEPDES3|CLEAR,F_ORD3
MESSAGE ENABLE,F_CHILD4|ENABLE,F_SEPDES3 MESSAGE ENABLE,F_CHILD4|ENABLE,F_SEPDES3|ENABLE,F_ORD3
END END
STRING F_FORMAT3 20 10 STRING F_FORMAT3 20 10
@ -199,7 +212,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR3 50 35 STRING F_DESCR3 50 33
BEGIN BEGIN
PROMPT 28 9 "" PROMPT 28 9 ""
FLAGS "D" FLAGS "D"
@ -208,12 +221,19 @@ END
STRING F_SEPDES3 6 STRING F_SEPDES3 6
BEGIN BEGIN
PROMPT 64 9 "Sep." PROMPT 62 9 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[13,18] FIELD S2[13,18]
END END
NUMBER F_ORD3 1
BEGIN
PROMPT 71 9 "O."
GROUP 3
FIELD S2[51,51]
END
STRING F_CHILD4 3 STRING F_CHILD4 3
BEGIN BEGIN
PROMPT 2 10 "Parte 5 " PROMPT 2 10 "Parte 5 "
@ -226,9 +246,9 @@ BEGIN
FIELD S1[10,12] FIELD S1[10,12]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD5|CLEAR,F_SEPDES4 MESSAGE EMPTY CLEAR,F_CHILD5|CLEAR,F_SEPDES4|CLEAR,F_ORD4
MESSAGE ENABLE,F_CHILD5|ENABLE,F_SEPDES4 MESSAGE ENABLE,F_CHILD5|ENABLE,F_SEPDES4|ENABLE,F_ORD4
END END
STRING F_FORMAT4 20 10 STRING F_FORMAT4 20 10
@ -239,7 +259,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR4 50 35 STRING F_DESCR4 50 33
BEGIN BEGIN
PROMPT 28 10 "" PROMPT 28 10 ""
FLAGS "D" FLAGS "D"
@ -248,12 +268,19 @@ END
STRING F_SEPDES4 6 STRING F_SEPDES4 6
BEGIN BEGIN
PROMPT 64 10 "Sep." PROMPT 62 10 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[19,24] FIELD S2[19,24]
END END
NUMBER F_ORD4 1
BEGIN
PROMPT 71 10 "O."
GROUP 3
FIELD S2[52,52]
END
STRING F_CHILD5 3 STRING F_CHILD5 3
BEGIN BEGIN
PROMPT 2 11 "Parte 6 " PROMPT 2 11 "Parte 6 "
@ -266,9 +293,9 @@ BEGIN
FIELD S1[13,15] FIELD S1[13,15]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD6|CLEAR,F_SEPDES5 MESSAGE EMPTY CLEAR,F_CHILD6|CLEAR,F_SEPDES5|CLEAR,F_ORD5
MESSAGE ENABLE,F_CHILD6|ENABLE,F_SEPDES5 MESSAGE ENABLE,F_CHILD6|ENABLE,F_SEPDES5|ENABLE,F_ORD5
END END
STRING F_FORMAT5 20 10 STRING F_FORMAT5 20 10
@ -278,7 +305,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR5 50 35 STRING F_DESCR5 50 33
BEGIN BEGIN
PROMPT 28 11 "" PROMPT 28 11 ""
FLAGS "D" FLAGS "D"
@ -287,12 +314,19 @@ END
STRING F_SEPDES5 6 STRING F_SEPDES5 6
BEGIN BEGIN
PROMPT 64 11 "Sep." PROMPT 62 11 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[25,30] FIELD S2[25,30]
END END
NUMBER F_ORD5 1
BEGIN
PROMPT 71 11 "O."
GROUP 3
FIELD S2[53,53]
END
STRING F_CHILD6 3 STRING F_CHILD6 3
BEGIN BEGIN
PROMPT 2 12 "Parte 7 " PROMPT 2 12 "Parte 7 "
@ -305,9 +339,9 @@ BEGIN
FIELD S1[16,18] FIELD S1[16,18]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD7|CLEAR,F_SEPDES6 MESSAGE EMPTY CLEAR,F_CHILD7|CLEAR,F_SEPDES6|CLEAR,F_ORD6
MESSAGE ENABLE,F_CHILD7|ENABLE,F_SEPDES6 MESSAGE ENABLE,F_CHILD7|ENABLE,F_SEPDES6|ENABLE,F_ORD6
END END
STRING F_FORMAT6 20 10 STRING F_FORMAT6 20 10
@ -317,7 +351,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR6 50 35 STRING F_DESCR6 50 33
BEGIN BEGIN
PROMPT 28 12 "" PROMPT 28 12 ""
FLAGS "D" FLAGS "D"
@ -326,12 +360,19 @@ END
STRING F_SEPDES6 6 STRING F_SEPDES6 6
BEGIN BEGIN
PROMPT 64 12 "Sep." PROMPT 62 12 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[31,36] FIELD S2[31,36]
END END
NUMBER F_ORD6 1
BEGIN
PROMPT 71 12 "O."
GROUP 3
FIELD S2[54,54]
END
STRING F_CHILD7 3 STRING F_CHILD7 3
BEGIN BEGIN
PROMPT 2 13 "Parte 8 " PROMPT 2 13 "Parte 8 "
@ -344,9 +385,9 @@ BEGIN
FIELD S1[19,21] FIELD S1[19,21]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
FLAGS "G" FLAGS "GU"
MESSAGE EMPTY CLEAR,F_CHILD8|CLEAR,F_SEPDES7 MESSAGE EMPTY CLEAR,F_CHILD8|CLEAR,F_SEPDES7|CLEAR,F_ORD7
MESSAGE ENABLE,F_CHILD8|ENABLE,F_SEPDES7 MESSAGE ENABLE,F_CHILD8|ENABLE,F_SEPDES7|ENABLE,F_ORD7
END END
STRING F_FORMAT7 20 10 STRING F_FORMAT7 20 10
@ -356,7 +397,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR7 50 35 STRING F_DESCR7 50 33
BEGIN BEGIN
PROMPT 28 13 "" PROMPT 28 13 ""
FLAGS "D" FLAGS "D"
@ -365,12 +406,19 @@ END
STRING F_SEPDES7 6 STRING F_SEPDES7 6
BEGIN BEGIN
PROMPT 64 13 "Sep." PROMPT 62 13 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[37,42] FIELD S2[37,42]
END END
NUMBER F_ORD7 1
BEGIN
PROMPT 71 13 "O."
GROUP 3
FIELD S2[55,55]
END
STRING F_CHILD8 3 STRING F_CHILD8 3
BEGIN BEGIN
PROMPT 2 14 "Parte 9 " PROMPT 2 14 "Parte 9 "
@ -383,9 +431,9 @@ BEGIN
FIELD S1[22,24] FIELD S1[22,24]
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 3 GROUP 3
MESSAGE EMPTY CLEAR,F_SEPDES8 MESSAGE EMPTY CLEAR,F_SEPDES8|CLEAR,F_ORD8
MESSAGE ENABLE,F_SEPDES8 MESSAGE ENABLE,F_SEPDES8|ENABLE,F_ORD8
FLAGS "G" FLAGS "GU"
END END
STRING F_FORMAT8 20 10 STRING F_FORMAT8 20 10
@ -395,7 +443,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_DESCR8 50 35 STRING F_DESCR8 50 33
BEGIN BEGIN
PROMPT 28 14 "" PROMPT 28 14 ""
FLAGS "D" FLAGS "D"
@ -404,12 +452,19 @@ END
STRING F_SEPDES8 6 STRING F_SEPDES8 6
BEGIN BEGIN
PROMPT 64 14 "Sep." PROMPT 62 14 "S."
GROUP 3 GROUP 3
FLAGS "D" FLAGS "D"
FIELD S2[43,48] FIELD S2[43,48]
END END
NUMBER F_ORD8 1
BEGIN
PROMPT 71 14 "O."
GROUP 3
FIELD S2[56,56]
END
STRING F_FORMAT 90 30 STRING F_FORMAT 90 30
BEGIN BEGIN
PROMPT 1 16 "Formato complessivo " PROMPT 1 16 "Formato complessivo "

View File

@ -51,7 +51,7 @@ public:
bool restart() const { return _restart.full(); } bool restart() const { return _restart.full(); }
static void restart_with(const TString& cod) { _restart = cod; } static void restart_with(const TString& cod) { _restart = cod; }
const TString & get_descr_separator(const int level); const TString & get_descr_separator(const int level);
int get_descr_order(const int level);
TCodart_mask(); TCodart_mask();
}; };
@ -108,6 +108,21 @@ void TCodart_mask::start_run()
TAutomask::start_run(); TAutomask::start_run();
} }
int TCodart_mask::get_descr_order(const int level)
{
int order = 0;
const int pos = 48 + (level - 1);
if (level > 0 && _separators.len() >= pos)
{
char ord = _separators[pos];
if (ord > ' ')
order = ord - '0';
}
return order;
}
const TString & TCodart_mask::get_descr_separator(const int level) const TString & TCodart_mask::get_descr_separator(const int level)
{ {
TString & sep = get_tmp_string(8); TString & sep = get_tmp_string(8);
@ -185,7 +200,7 @@ bool TCodart_mask::build_children()
return id2pos(102) > 0; return id2pos(102) > 0;
} }
TCodart_mask::TCodart_mask() : TAutomask(TR("Articolo guidato"), 1, 78, 13) TCodart_mask::TCodart_mask() : TAutomask(TR("Articolo guidato"), 1, 78, 17)
{ {
add_button(DLG_OK, 0, "", -12, -1, 10, 2); add_button(DLG_OK, 0, "", -12, -1, 10, 2);
add_button(DLG_CANCEL, 0, "", -22, -1, 10, 2); add_button(DLG_CANCEL, 0, "", -22, -1, 10, 2);
@ -207,14 +222,38 @@ bool advanced_codart_ask(TString& code, TString& desc)
TCodart_mask m; TCodart_mask m;
ok = m.run() == K_ENTER; ok = m.run() == K_ENTER;
if (ok) if (ok)
{ {
for (short id = 101; m.id2pos(id) >= 0; id++) int order[20];
{ int elements = 0;
code << m.get(id); int id;
if (id > 101)
desc << m.get_descr_separator(id - 101); for (id = 101; m.id2pos(id) >= 0; id++, elements++)
desc << esc(m.get(id+100)); {
} const int el = id - 101;
order[el] = m.get_descr_order(el);
code << m.get(id);
}
while (elements-- > 0)
{
int ord = 1000;
int el = -1;
for (id = 101; m.id2pos(id) >= 0; id++)
{
if (order[id - 101] < ord)
{
el = id - 101;
ord = order[el];
}
}
if (el >= 0)
{
const int dlg = el + 101;
order[el] = 1001;
if (dlg > 101)
desc << m.get_descr_separator(el);
desc << esc(m.get(dlg + 100));
}
}
running = false; running = false;
} }
else else