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
PROMPT 28 2 "Livello radice (Primo livello della gerarchia)"
FIELD B0
MESSAGE FALSE ENABLE,F_SEPDESC
MESSAGE TRUE CLEAR,F_SEPDESC
END
// descrizione parte del formato codice

View File

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

View File

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

View File

@ -51,7 +51,7 @@ public:
bool restart() const { return _restart.full(); }
static void restart_with(const TString& cod) { _restart = cod; }
const TString & get_descr_separator(const int level);
int get_descr_order(const int level);
TCodart_mask();
};
@ -108,6 +108,21 @@ void TCodart_mask::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)
{
TString & sep = get_tmp_string(8);
@ -185,7 +200,7 @@ bool TCodart_mask::build_children()
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_CANCEL, 0, "", -22, -1, 10, 2);
@ -207,14 +222,38 @@ bool advanced_codart_ask(TString& code, TString& desc)
TCodart_mask m;
ok = m.run() == K_ENTER;
if (ok)
{
for (short id = 101; m.id2pos(id) >= 0; id++)
{
code << m.get(id);
if (id > 101)
desc << m.get_descr_separator(id - 101);
desc << esc(m.get(id+100));
}
{
int order[20];
int elements = 0;
int id;
for (id = 101; m.id2pos(id) >= 0; id++, elements++)
{
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;
}
else