Lavoro di matteo
git-svn-id: svn://10.65.10.50/trunk@1770 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f8b0972f7d
commit
3359cbd129
60
ve/batbnum.h
60
ve/batbnum.h
@ -1,28 +1,32 @@
|
||||
#define F_CODTAB 101
|
||||
#define F_DESNUM 102
|
||||
#define F_ULTNUM 103
|
||||
#define F_ULTNUMPROV 104
|
||||
#define F_PREFISSO 105
|
||||
#define F_SUFFISSO 106
|
||||
#define F_ULTDATA 107
|
||||
#define F_ANNO 108
|
||||
#define F_TIPODOC1 110
|
||||
#define F_DESDOC1 111
|
||||
#define F_TIPODOC2 112
|
||||
#define F_DESDOC2 113
|
||||
#define F_TIPODOC3 114
|
||||
#define F_DESDOC3 115
|
||||
#define F_TIPODOC4 116
|
||||
#define F_DESDOC4 117
|
||||
#define F_TIPODOC5 118
|
||||
#define F_DESDOC5 119
|
||||
#define F_TIPODOC6 120
|
||||
#define F_DESDOC6 121
|
||||
#define F_TIPODOC7 122
|
||||
#define F_DESDOC7 123
|
||||
#define F_TIPODOC8 124
|
||||
#define F_DESDOC8 125
|
||||
#define F_TIPODOC9 126
|
||||
#define F_DESDOC9 127
|
||||
#define F_TIPODOC10 128
|
||||
#define F_DESDOC10 129
|
||||
#define F_CODTAB 101
|
||||
#define F_DESNUM 102
|
||||
#define F_ULTNUM 103
|
||||
#define F_ULTNUMPROV 104
|
||||
#define F_PREFISSO 105
|
||||
#define F_SUFFISSO 106
|
||||
#define F_ULTDATA 107
|
||||
#define F_ANNO 108
|
||||
#define F_TIPODOC1 110
|
||||
#define F_DESDOC1 111
|
||||
#define F_TIPODOC2 112
|
||||
#define F_DESDOC2 113
|
||||
#define F_TIPODOC3 114
|
||||
#define F_DESDOC3 115
|
||||
#define F_TIPODOC4 116
|
||||
#define F_DESDOC4 117
|
||||
#define F_TIPODOC5 118
|
||||
#define F_DESDOC5 119
|
||||
#define F_TIPODOC6 120
|
||||
#define F_DESDOC6 121
|
||||
#define F_TIPODOC7 122
|
||||
#define F_DESDOC7 123
|
||||
#define F_TIPODOC8 124
|
||||
#define F_DESDOC8 125
|
||||
#define F_TIPODOC9 126
|
||||
#define F_DESDOC9 127
|
||||
#define F_TIPODOC10 128
|
||||
#define F_DESDOC10 129
|
||||
#define F_NUMPROVV 130
|
||||
#define F_NUMAUTO 131
|
||||
#define F_ULTDATAPROV 132
|
||||
|
314
ve/batbnum.uml
314
ve/batbnum.uml
@ -2,11 +2,11 @@
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
||||
PAGE "Numerazione documenti" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 75 7
|
||||
BEGIN
|
||||
@ -14,12 +14,18 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
// GROUPBOX DLG_NULL 84 13
|
||||
// BEGIN
|
||||
// PROMPT 1 5 ""
|
||||
// FLAG "R"
|
||||
// END
|
||||
|
||||
STRING F_CODTAB 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod. numerazione "
|
||||
PROMPT 2 2 "Cod. numerazione "
|
||||
FIELD CODTAB
|
||||
HELP "Codice numerazione"
|
||||
USE NUM
|
||||
HELP "Codice numerazione"
|
||||
USE NUM
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODTAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -32,10 +38,10 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
HELP "Descrizione numerazione"
|
||||
USE NUM
|
||||
HELP "Descrizione numerazione"
|
||||
USE NUM KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -45,251 +51,243 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
||||
KEY 2
|
||||
END
|
||||
|
||||
NUMBER F_ULTNUM 7 0
|
||||
BEGIN
|
||||
PROMPT 2 7 "Numero ultimo documento emesso "
|
||||
FIELD I0
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
NUMBER F_ULTNUMPROV 7 0
|
||||
BEGIN
|
||||
PROMPT 2 8 "Numero ultimo documento creato "
|
||||
FIELD I1
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
DATE F_ULTDATA
|
||||
BEGIN
|
||||
PROMPT 2 10 "Data emissione ultimo documento "
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
STRING F_PREFISSO 7
|
||||
BEGIN
|
||||
PROMPT 2 12 "Prefisso numerazione "
|
||||
PROMPT 2 8 "Prefisso per la numerazione "
|
||||
FIELD S6
|
||||
END
|
||||
|
||||
STRING F_SUFFISSO 7
|
||||
BEGIN
|
||||
PROMPT 2 13 "Suffisso numerazione "
|
||||
PROMPT 2 10 "Suffisso per la numerazione "
|
||||
FIELD S7
|
||||
END
|
||||
|
||||
STRING F_ANNO 4
|
||||
BOOLEAN F_NUMPROVV
|
||||
BEGIN
|
||||
PROMPT 2 15 "Anno d'esercizio "
|
||||
FIELD S8
|
||||
PROMPT 2 12 "Utilizzo della numerazione provvisoria"
|
||||
FIELD B0
|
||||
END
|
||||
|
||||
BOOLEAN F_NUMAUTO
|
||||
BEGIN
|
||||
PROMPT 2 14 "Utilizzo della numerazione automatica"
|
||||
FIELD B1
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella numerazioni Pagina 2/2" -1 -1 60 14
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipi di documento validi per la numerazione"
|
||||
END
|
||||
|
||||
PAGE "Numerazioni documenti pag.2" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 64 15
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
// FLAG "R"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipi di documento validi per la numerazione"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC1 4
|
||||
BEGIN
|
||||
PROMPT 2 4 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC1
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC1 TIP->CODTAB
|
||||
OUTPUT F_DESDOC1 TIP->S0
|
||||
HELP "Tipo di documento 1"
|
||||
OUTPUT F_TIPODOC1 CODTAB
|
||||
OUTPUT F_DESDOC1 S0
|
||||
HELP "Tipo di documento 1"
|
||||
FIELD S2[1,4]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC1 50
|
||||
BEGIN
|
||||
PROMPT 10 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
STRING F_DESDOC1 40
|
||||
BEGIN
|
||||
PROMPT 12 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC2 4
|
||||
BEGIN
|
||||
PROMPT 2 5 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC2
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC2
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC2 TIP->CODTAB
|
||||
OUTPUT F_DESDOC2 TIP->S0
|
||||
HELP "Tipo di documento 2"
|
||||
OUTPUT F_TIPODOC2 CODTAB
|
||||
OUTPUT F_DESDOC2 S0
|
||||
HELP "Tipo di documento 2"
|
||||
FIELD S2[5,8]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC2 50
|
||||
BEGIN
|
||||
PROMPT 10 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC2 40
|
||||
BEGIN
|
||||
PROMPT 12 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC3 4
|
||||
BEGIN
|
||||
PROMPT 2 6 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC3
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC3
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC3 TIP->CODTAB
|
||||
OUTPUT F_DESDOC3 TIP->S0
|
||||
HELP "Tipo di documento 3"
|
||||
OUTPUT F_TIPODOC3 CODTAB
|
||||
OUTPUT F_DESDOC3 S0
|
||||
HELP "Tipo di documento 3"
|
||||
FIELD S2[9,12]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC3 50
|
||||
BEGIN
|
||||
PROMPT 10 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC3 40
|
||||
BEGIN
|
||||
PROMPT 12 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC4 4
|
||||
BEGIN
|
||||
PROMPT 2 7 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC4
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC4
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC4 TIP->CODTAB
|
||||
OUTPUT F_DESDOC4 TIP->S0
|
||||
HELP "Tipo di documento 4"
|
||||
OUTPUT F_TIPODOC4 CODTAB
|
||||
OUTPUT F_DESDOC4 S0
|
||||
HELP "Tipo di documento 4"
|
||||
FIELD S2[13,16]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC4 50
|
||||
BEGIN
|
||||
PROMPT 10 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC4 40
|
||||
BEGIN
|
||||
PROMPT 12 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC5 4
|
||||
BEGIN
|
||||
PROMPT 2 8 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC5
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC5
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC5 TIP->CODTAB
|
||||
OUTPUT F_DESDOC5 TIP->S0
|
||||
HELP "Tipo di documento 5"
|
||||
OUTPUT F_TIPODOC5 CODTAB
|
||||
OUTPUT F_DESDOC5 S0
|
||||
HELP "Tipo di documento 5"
|
||||
FIELD S2[17,20]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC5 50
|
||||
BEGIN
|
||||
PROMPT 10 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC5 40
|
||||
BEGIN
|
||||
PROMPT 12 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC6 4
|
||||
BEGIN
|
||||
PROMPT 2 9 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC6
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC6
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC6 TIP->CODTAB
|
||||
OUTPUT F_DESDOC6 TIP->S0
|
||||
HELP "Tipo di documento 6"
|
||||
OUTPUT F_TIPODOC6 CODTAB
|
||||
OUTPUT F_DESDOC6 S0
|
||||
HELP "Tipo di documento 6"
|
||||
FIELD S2[21,24]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC6 50
|
||||
BEGIN
|
||||
PROMPT 10 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC6 40
|
||||
BEGIN
|
||||
PROMPT 12 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC7 4
|
||||
BEGIN
|
||||
PROMPT 2 10 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC7
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC7
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC7 TIP->CODTAB
|
||||
OUTPUT F_DESDOC7 TIP->S0
|
||||
HELP "Tipo di documento 7"
|
||||
OUTPUT F_TIPODOC7 CODTAB
|
||||
OUTPUT F_DESDOC7 S0
|
||||
HELP "Tipo di documento 7"
|
||||
FIELD S2[25,28]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC7 50
|
||||
BEGIN
|
||||
PROMPT 10 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC7 40
|
||||
BEGIN
|
||||
PROMPT 12 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC8 4
|
||||
BEGIN
|
||||
PROMPT 2 11 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC8
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC8
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC8 TIP->CODTAB
|
||||
OUTPUT F_DESDOC8 TIP->S0
|
||||
HELP "Tipo di documento 8"
|
||||
OUTPUT F_TIPODOC8 CODTAB
|
||||
OUTPUT F_DESDOC8 S0
|
||||
HELP "Tipo di documento 8"
|
||||
FIELD S2[29,32]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC8 50
|
||||
BEGIN
|
||||
PROMPT 10 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC8 40
|
||||
BEGIN
|
||||
PROMPT 12 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC9 4
|
||||
BEGIN
|
||||
PROMPT 2 12 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC9
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC9
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC9 TIP->CODTAB
|
||||
OUTPUT F_DESDOC9 TIP->S0
|
||||
HELP "Tipo di documento 9"
|
||||
OUTPUT F_TIPODOC9 CODTAB
|
||||
OUTPUT F_DESDOC9 S0
|
||||
HELP "Tipo di documento 9"
|
||||
FIELD S2[32,36]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC9 50
|
||||
BEGIN
|
||||
PROMPT 10 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_DESDOC9 40
|
||||
BEGIN
|
||||
PROMPT 12 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC10 4
|
||||
BEGIN
|
||||
PROMPT 2 13 ""
|
||||
USE TIP
|
||||
INPUT CODTAB F_TIPODOC10
|
||||
DISPLAY "Codice" CODTAB
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC10
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC10 TIP->CODTAB
|
||||
OUTPUT F_DESDOC10 TIP->S0
|
||||
HELP "Tipo di documento 10"
|
||||
OUTPUT F_TIPODOC10 CODTAB
|
||||
OUTPUT F_DESDOC10 S0
|
||||
HELP "Tipo di documento 10"
|
||||
FIELD S2[37,40]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC10 50
|
||||
BEGIN
|
||||
PROMPT 10 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
STRING F_DESDOC10 40
|
||||
BEGIN
|
||||
PROMPT 12 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
ENDMASK
|
||||
|
130
ve/batbtip.uml
130
ve/batbtip.uml
@ -1,65 +1,65 @@
|
||||
#include "ve4.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella tipi di documento" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 75 7
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod. tipo docum. "
|
||||
FIELD CODTAB
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODTAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 1
|
||||
FLAG "UZ"
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
HELP "Descrizione tipo documento"
|
||||
USE %TIP KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING F_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Profilo documento "
|
||||
FIELD S4
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
STRING F_PSTAMPA 8
|
||||
BEGIN
|
||||
PROMPT 2 10 "Profilo stampa documento "
|
||||
FIELD S5
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "ve4.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella tipi di documento" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 75 7
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod. tipo docum. "
|
||||
FIELD CODTAB
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODTAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 1
|
||||
FLAG "UZ"
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
HELP "Descrizione tipo documento"
|
||||
USE %TIP KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING F_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Profilo documento "
|
||||
FIELD S4
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
STRING F_PSTAMPA 8
|
||||
BEGIN
|
||||
PROMPT 2 10 "Profilo stampa documento "
|
||||
FIELD S5
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
108
ve/batbtri.uml
108
ve/batbtri.uml
@ -1,54 +1,54 @@
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_PROFILO 103
|
||||
|
||||
PAGE "Tipo di riga" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 75 7
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
STRING F_CODICE 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice "
|
||||
FIELD CODTAB
|
||||
FLAGS "U"
|
||||
USE %TRI
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
USE %TRI KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
COPY DISPLAY F_CODICE
|
||||
COPY OUTPUT F_CODICE
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING f_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Profilo "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD S4
|
||||
END
|
||||
|
||||
END
|
||||
ENDMASK
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_PROFILO 103
|
||||
|
||||
PAGE "Tipo di riga" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 75 7
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
STRING F_CODICE 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice "
|
||||
FIELD CODTAB
|
||||
FLAGS "U"
|
||||
USE %TRI
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
USE %TRI KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
COPY DISPLAY F_CODICE
|
||||
COPY OUTPUT F_CODICE
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING f_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Profilo "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD S4
|
||||
END
|
||||
|
||||
END
|
||||
ENDMASK
|
||||
|
664
ve/ve0100.cpp
664
ve/ve0100.cpp
@ -29,7 +29,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __VEUML_H
|
||||
#include "f:\u\alex\p.due\ve\VEUML.H"
|
||||
#include "VEUML.H"
|
||||
#endif
|
||||
|
||||
#ifndef __SHEET_H
|
||||
@ -56,17 +56,10 @@
|
||||
#include "VE0100D.H"
|
||||
#endif
|
||||
|
||||
// Handlers per i campi delle bolle
|
||||
|
||||
extern bool ora_hndl(TMask_field& field, KEY key);
|
||||
extern bool codcli_hndl(TMask_field& field, KEY key);
|
||||
extern bool dummy_hndl(TMask_field& field, KEY key);
|
||||
|
||||
// Numero di colonne presenti sullo sheet totale
|
||||
#define MAX_COLUMNS 22
|
||||
|
||||
#define F_LBTIPORIGA 175
|
||||
#define F_TIPIDOCS 172
|
||||
|
||||
// Definizione della classe dell'applicazione motore
|
||||
class TMotore_application : public TRelation_application
|
||||
@ -95,9 +88,13 @@ class TMotore_application : public TRelation_application
|
||||
// Puntatore allo sheet delle righe documento
|
||||
TSheet_field* _sheet;
|
||||
|
||||
|
||||
// Posizione delle colonne nello sheet
|
||||
int _pos_cols[ MAX_COLUMNS ];
|
||||
// Numero di colonne realmente presenti sullo sheet
|
||||
int _realcols;
|
||||
|
||||
// Ridefinizione dei metodi virtuali
|
||||
|
||||
// Ridefinizione dei metodi virtuali
|
||||
virtual bool user_create( );
|
||||
virtual bool user_destroy( );
|
||||
virtual TMask* get_mask(int mode);
|
||||
@ -108,7 +105,6 @@ class TMotore_application : public TRelation_application
|
||||
virtual bool remove( void );
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual void init_query_mode(TMask&);
|
||||
|
||||
// Punti di ingresso per le funzioni utente
|
||||
|
||||
@ -157,7 +153,7 @@ protected:
|
||||
static TMask * ss_getmask( int numriga, TMask& fullmask, bool destroy );
|
||||
|
||||
// Handler che gestisce la richiesta del tipo riga in inserimento
|
||||
static bool ss_handler( int r, KEY key );
|
||||
static bool ss_handler( TSheet_field& ss, int r, KEY key );
|
||||
|
||||
// Handler per la maschera di ricerca
|
||||
static bool ndoc_handler(TMask_field& f, KEY key);
|
||||
@ -187,6 +183,9 @@ public:
|
||||
TMotore_application( ) { _pro = NULL; }
|
||||
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
||||
virtual const char* get_next_key( );
|
||||
|
||||
int numero_colonne( ){ return _realcols; }
|
||||
int posizione_colonna( int index ){ return _pos_cols[ index ]; }
|
||||
};
|
||||
|
||||
HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( ); }
|
||||
@ -195,7 +194,8 @@ HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( );
|
||||
int TMotore_application::user_function( int index )
|
||||
{
|
||||
switch( index )
|
||||
{ case 1:
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
default:
|
||||
yesnofatal_box( "Chiamata ad una procedura utente non definita: %d", index );
|
||||
@ -210,34 +210,50 @@ int TMotore_application::user_function( int index )
|
||||
// Da migliorare, mettendo una cache
|
||||
|
||||
TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destroy )
|
||||
{ static TMask* m;
|
||||
|
||||
if ( destroy )
|
||||
{ delete m;
|
||||
return( NULL ); }
|
||||
else
|
||||
{ TFilename nome_proriga( fullmask.get( 103 ) );
|
||||
nome_proriga.ext( "ini" );
|
||||
TConfig proriga( nome_proriga );
|
||||
m = new TMask( proriga.get( "MSK", "MAIN" ) );
|
||||
return( m ); }
|
||||
}
|
||||
{
|
||||
static TMask* m;
|
||||
|
||||
if ( destroy )
|
||||
{
|
||||
delete m;
|
||||
return( NULL );
|
||||
}
|
||||
else
|
||||
{
|
||||
TFilename nome_proriga( fullmask.get( 103 ) );
|
||||
nome_proriga.ext( "ini" );
|
||||
TConfig proriga( nome_proriga );
|
||||
m = new TMask( proriga.get( "MSK", "MAIN" ) );
|
||||
int numhandler = proriga.get_int( "NHANDLER", "HANDLERS" );
|
||||
for( int i = 1; i <= numhandler; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
chiave.format( "%d", i );
|
||||
TToken_string riga = proriga.get( chiave, "HANDLERS" );
|
||||
app().user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
};
|
||||
return( m );
|
||||
}
|
||||
}
|
||||
|
||||
real TMotore_application::user_row_calculate( TRectype& r, int index )
|
||||
{ switch( index )
|
||||
{ case 100 :
|
||||
return ( f100( r ) );
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "Tentativo di chiamare una funzione di calcolo riga inesistente!" );
|
||||
return 0.0;
|
||||
}
|
||||
};
|
||||
{
|
||||
switch( index )
|
||||
{
|
||||
case 100 :
|
||||
return ( f100( r ) );
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "Tentativo di chiamare una funzione di calcolo riga inesistente!" );
|
||||
return 0.0;
|
||||
}
|
||||
};
|
||||
|
||||
void TMotore_application::user_set_handler( int fieldid, int index )
|
||||
{
|
||||
switch( index )
|
||||
{ case 1:
|
||||
{
|
||||
case 1:
|
||||
edit_mask( ).set_handler( fieldid, ora_hndl );
|
||||
break;
|
||||
case 2:
|
||||
@ -247,56 +263,125 @@ void TMotore_application::user_set_handler( int fieldid, int index )
|
||||
edit_mask( ).set_handler( fieldid, dummy_hndl );
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "tentativo di installare un handler non definito" );
|
||||
CHECK( FALSE, "Tentativo di installare un handler non definito" );
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
bool TMotore_application::ss_handler( int r, KEY key )
|
||||
bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key )
|
||||
{
|
||||
if ( key == K_INS )
|
||||
{
|
||||
TMask m( "ve1000b" );
|
||||
TList_field& listbox = ( TList_field& ) m.field( F_LBTIPORIGA );
|
||||
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" );
|
||||
TTable tabtr( "TRI" );
|
||||
TToken_string keys( "" ), descrs( "" );
|
||||
for ( int i = 1; i <= numtr; i ++ )
|
||||
{ TString chiave;
|
||||
TToken_string item;
|
||||
chiave.format( "%d", i );
|
||||
tabtr.zero( );
|
||||
tabtr.put( "CODTAB", app( ).pro( ).get( chiave, "RIGHE" ) );
|
||||
tabtr.read( );
|
||||
keys.add( tabtr.get( "CODTAB" ) );
|
||||
descrs.add( tabtr.get( "S0" ) );
|
||||
}
|
||||
listbox.replace_items( keys, descrs );
|
||||
if( m.run( ) == K_ESC ) return FALSE;
|
||||
TMask& m = *app( )._msk1;
|
||||
TTable tabtr( "%TRI" );
|
||||
tabtr.zero( );
|
||||
tabtr.put( "CODTAB", m.get( F_LBTIPORIGA ) );
|
||||
tabtr.read( );
|
||||
TToken_string& riga = app( ).sheet( ).row( r );
|
||||
TToken_string& riga = ss.row( r );
|
||||
riga.add( 1, 0 );
|
||||
riga.add( m.get( F_LBTIPORIGA ), 1 );
|
||||
riga.add( tabtr.get( "S4" ), 2 );
|
||||
app( ).sheet( ).force_update( );
|
||||
return TRUE;
|
||||
}
|
||||
TFilename nome_proriga( tabtr.get( "S4" ) );
|
||||
riga.add( nome_proriga, 2 );
|
||||
nome_proriga.ext( "ini" );
|
||||
TConfig pro( nome_proriga );
|
||||
int ncols = pro.get_int( "NCOLS", "COLUMNS" );
|
||||
// Disabilita tutte le colonne
|
||||
for( int i = 1; i < app( ).numero_colonne( ); i ++ )
|
||||
ss.disable_cell ( ss.items( ) - 1, i );
|
||||
for( i = 1; i < ncols; i ++ )
|
||||
{
|
||||
TString16 chiave;
|
||||
chiave.format( "%d", i );
|
||||
int coltoenable = pro.get_int( chiave, "COLUMNS" );
|
||||
ss.enable_cell ( ss.items( ) - 1, app().posizione_colonna( coltoenable ) );
|
||||
};
|
||||
ss.force_update( );
|
||||
app( ).curr_mask( ).send_key( K_ROWEDIT, F_SHEET );
|
||||
// ss.on_key( K_SPACE );
|
||||
// ss.edit( ss.items( ) );
|
||||
/*
|
||||
nome_proriga.ext( "ini" );
|
||||
TConfig proriga( nome_proriga );
|
||||
TMask *sm = new TMask( proriga.get( "MSK", "MAIN" ) );
|
||||
// int numhandler = proriga.get_int( "NHANDLER", "HANDLERS" );
|
||||
// for( int i = 1; i <= numhandler; i ++ )
|
||||
// {
|
||||
// TString chiave;
|
||||
// chiave.format( "%d", i );
|
||||
// TToken_string riga = proriga.get( chiave, "HANDLERS" );
|
||||
// app().user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
// };
|
||||
sm->disable( DLG_DELREC );
|
||||
if ( sm->run( ) == K_ENTER )
|
||||
{
|
||||
// Riga inserita, vai col disabilitare le colonne
|
||||
delete sm;
|
||||
ss.force_update( ); */
|
||||
return TRUE;
|
||||
};
|
||||
return TRUE;
|
||||
};
|
||||
|
||||
bool TMotore_application::num_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
// Ottengo la maschera
|
||||
TMask& m = f.mask( );
|
||||
|
||||
if (key == K_TAB && m.is_running( ) )
|
||||
{
|
||||
// Se la numerazione non è specificata,
|
||||
const TString16 value( m.get( F_CODNUM ) );
|
||||
if ( value.blank( ) )
|
||||
{
|
||||
// Pulisce la descrizione
|
||||
m.set(F_DESNUM, "" );
|
||||
// Pulisce i tipi di documento consentiti
|
||||
m.set(F_TIPIDOCS, "" );
|
||||
// Pulisce il tipo di documento
|
||||
m.set(F_TIPODOC, "" );
|
||||
return TRUE;
|
||||
}
|
||||
// Apro la tabella numerazioni
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
tabnum.read( );
|
||||
m.set(F_DESNUM, tabnum.get("S0") );
|
||||
m.set(F_TIPIDOCS, tabnum.get("S2") );
|
||||
}
|
||||
tabnum.zero( );
|
||||
tabnum.put( "CODTAB", value );
|
||||
if( tabnum.read( ) == NOERR )
|
||||
{
|
||||
// Copio la descriozione della numerazione
|
||||
m.set(F_DESNUM, tabnum.get("S0") );
|
||||
// Copio i tipi di documento validi per la numerazione
|
||||
m.set(F_TIPIDOCS, tabnum.get("S2") );
|
||||
// Se per questa numerazione è abilitata le numerazione provvisoria
|
||||
if ( tabnum.get_bool ( "B0" ) )
|
||||
{
|
||||
// Setta di default la numerazione provvisoria
|
||||
m.set( F_PROVV, "P" );
|
||||
// Abilita il campo per la selezione della numerazione
|
||||
m.enable( F_PROVV );
|
||||
}
|
||||
else // Altrimenti ...
|
||||
{
|
||||
// Setta la numerazione a definitiva
|
||||
m.set( F_PROVV, "D" );
|
||||
// Disabilita il campo per la selezione della numerazione
|
||||
m.disable( F_PROVV );
|
||||
};
|
||||
return TRUE;
|
||||
}
|
||||
message_box( "Numerazione non valida!" );
|
||||
return FALSE;
|
||||
}
|
||||
if (key == K_ENTER && m.is_running( ) )
|
||||
{ // Se la numerazione non è specificata,
|
||||
const TString16 value( m.get( F_CODNUM ) );
|
||||
if ( value.blank( ) )
|
||||
{
|
||||
message_box( "Occorre una numerazione per inserire un documento!" );
|
||||
m.first_focus( F_NDOC );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -305,27 +390,36 @@ bool TMotore_application::tip_handler(TMask_field& f, KEY key)
|
||||
TMask& m = f.mask( );
|
||||
if (key == K_TAB && m.is_running( ) )
|
||||
{
|
||||
const TString16 value( m.get( F_TIPODOC ) );
|
||||
if ( value.blank( ) )
|
||||
{
|
||||
// Pulisce il profilo
|
||||
m.set(F_PROFILO, "" );
|
||||
return TRUE;
|
||||
}
|
||||
TString tipi_consentiti( m.get( F_TIPIDOCS ) );
|
||||
TString tipo( f.get( ) );
|
||||
if( tipi_consentiti.find( tipo ) % 4 )
|
||||
{ message_box( "Tipo non valido per la numerazione selezionata!" );
|
||||
f.set( "" );
|
||||
return FALSE; }
|
||||
TTable tabtip( "TIP" );
|
||||
TTable tabtip( "%TIP" );
|
||||
tabtip.read( );
|
||||
m.set(F_DESTIPODOC, tabtip.get("S0") );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
};
|
||||
if (key == K_ENTER && m.is_running( ) )
|
||||
{ TString tipo( f.get( ) );
|
||||
if ( ! tipo.blank( ) )
|
||||
{ TTable tabtip( "TIP" );
|
||||
{ TTable tabtip( "%TIP" );
|
||||
tabtip.read( );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
}
|
||||
else
|
||||
{ message_box( "Occorre un tipo documento per inserire un documento!" );
|
||||
m.first_focus( F_TIPODOC );
|
||||
return FALSE; }
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -341,28 +435,14 @@ bool TMotore_application::ndoc_handler(TMask_field& f, KEY key)
|
||||
doc.put("ANNO", m.get( F_ANNO ) );
|
||||
doc.put("NDOC", f.get( ) );
|
||||
if ( doc.read( ) == NOERR )
|
||||
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
|
||||
TTable tabtip( "TIP" );
|
||||
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
|
||||
tabtip.read( );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
m.stop_run( K_AUTO_ENTER );
|
||||
}
|
||||
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
|
||||
TTable tabtip( "%TIP" );
|
||||
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
|
||||
tabtip.read( );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
m.stop_run( K_AUTO_ENTER );
|
||||
}
|
||||
}
|
||||
/* m.set( F_TIPODOC, doc.get( "TIPODOC" );
|
||||
TTable tabtip( "TIP" );
|
||||
tabtip.read( );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
}
|
||||
else
|
||||
{ TString tipodoc = m.get( F_TIPODOC );
|
||||
if ( ! f.blank( ) )
|
||||
{ message_box( "Per inserire un nuovo documento occorre\nspecificare il tipo documento!" );
|
||||
m.first_focus( F_TIPODOC );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
} */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -383,34 +463,39 @@ bool TMotore_application::changing_mask(int mode)
|
||||
}
|
||||
|
||||
void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config )
|
||||
{ int i;
|
||||
const int ncols = config.get_int( "NCOLS", "SHEET" );
|
||||
for( i = 1; i <= ncols; i ++ )
|
||||
{ TString col;
|
||||
col.format( "%d", i );
|
||||
TToken_string sheet_col( config.get( col, "SHEET" ) );
|
||||
TString descr( sheet_col.get( 1 ) );
|
||||
if ( ! descr.blank( ) )
|
||||
sheet.set_column_header( i, descr );
|
||||
TString size( sheet_col.get( 2 ) );
|
||||
if ( ! size.blank( ) )
|
||||
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
|
||||
sheet.move_column( sheet_col.get_int( 0 ) - 1, i );
|
||||
}
|
||||
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
|
||||
sheet.delete_column( j );
|
||||
{
|
||||
_realcols = config.get_int( "NCOLS", "SHEET" );
|
||||
for( int i = 1; i <= _realcols; i ++ )
|
||||
{
|
||||
TString col;
|
||||
col.format( "%d", i );
|
||||
TToken_string sheet_col( config.get( col, "SHEET" ) );
|
||||
const TString descr( sheet_col.get( 1 ) );
|
||||
if ( ! descr.blank( ) )
|
||||
sheet.set_column_header( i, descr );
|
||||
TString size( sheet_col.get( 2 ) );
|
||||
if ( ! size.blank( ) )
|
||||
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
|
||||
int coltomove = sheet_col.get_int( 0 ) - 1;
|
||||
sheet.move_column( coltomove, i );
|
||||
_pos_cols[ coltomove ] = i;
|
||||
};
|
||||
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
|
||||
sheet.delete_column( j );
|
||||
};
|
||||
|
||||
void TMotore_application::get_edit_mask( void )
|
||||
{
|
||||
TFilename fn;
|
||||
|
||||
fn = query_mask( ).get( F_PROFILO );
|
||||
query_mask( ).enable(DLG_NEWREC);
|
||||
// query_mask( ).enable(DLG_NEWREC);
|
||||
fn.ext( "ini" );
|
||||
fn.upper( );
|
||||
if ( _pro )
|
||||
{ if( (*_proname) == fn ) return;
|
||||
{
|
||||
if( (*_proname) == fn )
|
||||
return;
|
||||
delete _pro;
|
||||
};
|
||||
_pro = new TConfig( fn );
|
||||
@ -418,15 +503,39 @@ void TMotore_application::get_edit_mask( void )
|
||||
_proname->upper( );
|
||||
if ( _msk1 ) delete _msk1;
|
||||
_msk1 = new TMask( pro( ).get( "MSKFILE", "MAIN" ) );
|
||||
edit_mask( ).set( F_PROFILO, query_mask( ).get( F_PROFILO ) );
|
||||
// edit_mask( ).set( F_PROFILO, query_mask( ).get( F_PROFILO ) );
|
||||
edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) );
|
||||
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
|
||||
sheet( ).set_notify( ss_handler );
|
||||
configura_sheet( *_sheet, *_pro );
|
||||
TList_field& listbox = ( TList_field& ) _msk1->field( F_LBTIPORIGA );
|
||||
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" );
|
||||
TTable tabtr( "%TRI" );
|
||||
TToken_string keys( "" ), descrs( "" );
|
||||
for ( int i = 1; i <= numtr; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
TToken_string item;
|
||||
chiave.format( "%d", i );
|
||||
tabtr.zero( );
|
||||
TString tiporiga( app( ).pro( ).get( chiave, "RIGHE" ) );
|
||||
tabtr.put( "CODTAB", tiporiga );
|
||||
if ( tabtr.read( ) == NOERR )
|
||||
{
|
||||
keys.add( tabtr.get( "CODTAB" ) );
|
||||
descrs.add( tabtr.get( "S0" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
yesnofatal_box( "Inserito un tipo di riga non valido (%s)", (const char *)tiporiga );
|
||||
}
|
||||
}
|
||||
listbox.replace_items( keys, descrs );
|
||||
sheet( ).set_getmask( ss_getmask );
|
||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
||||
for( int i = 1; i <= numhandler; i ++ )
|
||||
{ TString chiave;
|
||||
for( i = 1; i <= numhandler; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
chiave.format( "%d", i );
|
||||
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
|
||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
@ -460,28 +569,50 @@ void TMotore_application::carica_righe_libere(int from)
|
||||
{
|
||||
if (from < 0) from = ss( ).items( );
|
||||
for (int i = from; i < 20; i++)
|
||||
set_descr(i, "");
|
||||
set_descr( i, "" );
|
||||
ss( ).force_update( );
|
||||
}
|
||||
|
||||
void TMotore_application::init_query_mode(TMask& _mask)
|
||||
{
|
||||
_mask.disable( DLG_NEWREC );
|
||||
}
|
||||
|
||||
const char* TMotore_application::get_next_key( )
|
||||
{
|
||||
TToken_string _t;
|
||||
{
|
||||
TToken_string key;
|
||||
TMask& m = curr_mask( );
|
||||
|
||||
_t.add( F_CODNUM );
|
||||
_t.add( query_mask( ).get( F_CODNUM ) );
|
||||
_t.add( F_ANNO );
|
||||
_t.add( query_mask( ).get( F_ANNO ) );
|
||||
_t.add( F_PROVV );
|
||||
_t.add( query_mask( ).get( F_PROVV ) );
|
||||
_t.add( F_NDOC );
|
||||
_t.add( prossimo_numero( query_mask( ).get( F_PROVV ) == "P" ) );
|
||||
return( _t );
|
||||
TString value = m.get( F_CODNUM );
|
||||
if ( value.blank( ) )
|
||||
return NULL;
|
||||
TTable tabnum( "NUM" );
|
||||
tabnum.zero( );
|
||||
tabnum.put( "CODTAB", value );
|
||||
if( tabnum.read( ) == NOERR )
|
||||
{
|
||||
// Se per questa numerazione è abilitata le numerazione automatica
|
||||
if( tabnum.get_bool ( "B1" ) )
|
||||
{
|
||||
TLocalisamfile doc( LF_DOC );
|
||||
doc.zero( );
|
||||
doc.put( "CODNUM", value );
|
||||
doc.put( "ANNO", m.get( F_ANNO ) );
|
||||
doc.put( "NDOC", 9999999L );
|
||||
// Se per questa numerazione è abilitata le numerazione provvisoria
|
||||
if( tabnum.get_bool ( "B0" ) )
|
||||
{
|
||||
doc.put( "PROVV", "P" );
|
||||
}
|
||||
else // Altrimenti ...
|
||||
{
|
||||
doc.put( "PROVV", "D" );
|
||||
};
|
||||
if( doc.read( _isgteq ) == NOERR )
|
||||
{
|
||||
doc.prev( );
|
||||
}
|
||||
long num = ( value == doc.get( "CODNUM" ) ) ? doc.get_long( "NDOC" ) : 0;
|
||||
key.format( "%d|%d", F_NDOC, num + 1 );
|
||||
return key;
|
||||
}
|
||||
};
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int TMotore_application::read(TMask& m)
|
||||
@ -489,7 +620,8 @@ int TMotore_application::read(TMask& m)
|
||||
azzera_piedi( );
|
||||
int err = TRelation_application::read( m );
|
||||
if ( err == NOERR )
|
||||
{ TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
||||
{
|
||||
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
||||
TRectype r = rdoc.curr( );
|
||||
r.zero( );
|
||||
r.put( "CODNUM", m.get( F_CODNUM ) );
|
||||
@ -502,19 +634,21 @@ int TMotore_application::read(TMask& m)
|
||||
f.destroy( );
|
||||
int last = _righe_rec->last_row( );
|
||||
for( int i = 1; i <= last; i ++ )
|
||||
{ TRectype &rec = _righe_rec->row( i, TRUE );
|
||||
load_riga( f, i - 1, rec );
|
||||
calcola_riga( rec );
|
||||
}
|
||||
{
|
||||
TRectype &rec = _righe_rec->row( i, TRUE );
|
||||
load_riga( f, i - 1, rec );
|
||||
calcola_riga( rec );
|
||||
}
|
||||
|
||||
TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) );
|
||||
i = s.get_int( );
|
||||
int j = 0;
|
||||
while( i != 0 )
|
||||
{ real strpiede( _piedi[ i ] );
|
||||
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
|
||||
i = s.get_int( );
|
||||
}
|
||||
{
|
||||
real strpiede( _piedi[ i ] );
|
||||
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
|
||||
i = s.get_int( );
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@ -527,79 +661,52 @@ bool TMotore_application::check_key( TLocalisamfile& rdoc, TString16 codnum, boo
|
||||
( rdoc.get_bool( "PROVV" ) == provv ) );
|
||||
}
|
||||
|
||||
/*
|
||||
void TMotore_application::read_rdoc(TMask& m)
|
||||
{
|
||||
|
||||
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
||||
|
||||
TString16 _cod_num = rel( ).lfile( ).get( "CODNUM" );
|
||||
bool _provv(query_mask( ).get_bool(F_PROVV));
|
||||
TString16 _anno(query_mask( ).get(F_ANNO));
|
||||
TString16 _ndoc(query_mask( ).get(F_NDOC));
|
||||
rdoc.zero( );
|
||||
rdoc.put("CODNUM", _cod_num);
|
||||
rdoc.put("PROVV", _provv);
|
||||
rdoc.put("ANNO", _anno);
|
||||
rdoc.put("NDOC", _ndoc);
|
||||
// loop per il caricamento delle righe
|
||||
for ( int err = rdoc.read(_isgteq); err == NOERR && check_key(rdoc,_cod_num,_provv, _anno, _ndoc ); err = rdoc.next( ) )
|
||||
{ const numrig = rdoc.get_int( "NRIGA" );
|
||||
CHECK(numrig > 0, "Documento con numero di riga nullo!!");
|
||||
const int TipoRiga = rdoc.get_int( "TIPORIGA" );
|
||||
const TString16 Codart = rdoc.get( "CODART" );
|
||||
const TString Descr = rdoc.get( "DESCR" );
|
||||
const TString16 UmQta = rdoc.get( "UMQTA" );
|
||||
const real Qta = rdoc.get_real( "QTA" );
|
||||
// add_riga(numrig-1, TipoRiga, (TString &)Codart, (TString &)Descr, (TString &)UmQta, Qta);
|
||||
// calcola_riga( rdoc );
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
int TMotore_application::write(const TMask& m)
|
||||
{ int err;
|
||||
if ( esegui_procedura( OP_NUOVO ) != NOERR )
|
||||
return FALSE;
|
||||
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
|
||||
if ( err == NOERR )
|
||||
{ err = TRelation_application::write( m );
|
||||
if ( err == NOERR )
|
||||
{ TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
if ( m.insert_mode( ) )
|
||||
_righe_rec->renum_key( "NRIGA", 1 );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->write( );
|
||||
}
|
||||
{
|
||||
int err;
|
||||
if ( esegui_procedura( OP_NUOVO ) != NOERR )
|
||||
return FALSE;
|
||||
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
err = TRelation_application::write( m );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
if ( m.insert_mode( ) )
|
||||
_righe_rec->renum_key( "NRIGA", 1 );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->write( );
|
||||
}
|
||||
return err;
|
||||
};
|
||||
}
|
||||
return err;
|
||||
};
|
||||
|
||||
int TMotore_application::rewrite(const TMask& m)
|
||||
{
|
||||
|
||||
if ( ! valida_operazione( OP_MODIFICA ) )
|
||||
return FALSE;
|
||||
int err = TRelation_application::rewrite( m );
|
||||
if ( err == NOERR )
|
||||
{ TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
if ( m.insert_mode( ) )
|
||||
_righe_rec->renum_key( "NRIGA", 1 );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->rewrite( );
|
||||
}
|
||||
{
|
||||
TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
if ( m.insert_mode( ) )
|
||||
_righe_rec->renum_key( "NRIGA", 1 );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->rewrite( );
|
||||
}
|
||||
return err;
|
||||
};
|
||||
|
||||
@ -625,37 +732,16 @@ int TMotore_application::avanza_numero( bool provv )
|
||||
|
||||
int err = tabnum.read( );
|
||||
if ( err == NOERR )
|
||||
{ if ( provv )
|
||||
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
|
||||
else
|
||||
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||||
err = tabnum.rewrite( );
|
||||
}
|
||||
{
|
||||
if ( provv )
|
||||
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
|
||||
else
|
||||
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||||
err = tabnum.rewrite( );
|
||||
}
|
||||
return err;
|
||||
};
|
||||
|
||||
// int TMotore_application::nuovo_documento( )
|
||||
// {
|
||||
//
|
||||
// };
|
||||
|
||||
/*int TMotore_application::modifica_documento( )
|
||||
{
|
||||
KEY k;
|
||||
|
||||
edit_mask( ).autoload( _rel );
|
||||
k = edit_mask( ).run( );
|
||||
if ( k == K_SAVE )
|
||||
{
|
||||
if ( esegui_procedura( pro( ).indice_procedura( OP_MODIFICA ) ) != NOERR )
|
||||
return FALSE;
|
||||
edit_mask( ).autosave( _rel );
|
||||
rel( ).rewrite( );
|
||||
};
|
||||
modify_mode( );
|
||||
return NOERR;
|
||||
};*/
|
||||
|
||||
bool TMotore_application::remove( void )
|
||||
{
|
||||
if ( ! valida_operazione( OP_CANCELLA ) )
|
||||
@ -666,21 +752,8 @@ bool TMotore_application::remove( void )
|
||||
void TMotore_application::load_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||
{
|
||||
TToken_string& riga = f.row(numrig);
|
||||
|
||||
// riga= "";
|
||||
// riga.add( r.get( "NRIGA" ) );
|
||||
riga = r.get( "STATORIGA" );
|
||||
riga.add( r.get( "TIPORIGA" ) );
|
||||
|
||||
/*
|
||||
switch(r.get_int( "TIPORIGA" ) )
|
||||
{ case 1: riga.add("Merce"); break;
|
||||
case 2: riga.add("Articolo Merce"); break;
|
||||
case 3: riga.add("Spese"); break;
|
||||
case 4: riga.add("Commento"); break;
|
||||
case 5: riga.add("Omaggio"); break;
|
||||
default: riga.add("Tipo Errato"); break;
|
||||
}*/
|
||||
riga.add( r.get( "PROFRIGA" ) );
|
||||
riga.add( r.get( "CODMAG" ) );
|
||||
riga.add( r.get( "CODART" ) );
|
||||
@ -702,7 +775,6 @@ void TMotore_application::store_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||
r.put( "ANNO", edit_mask( ).get( F_ANNO ) );
|
||||
r.put( "PROVV", edit_mask( ).get( F_PROVV ) );
|
||||
r.put( "NDOC", edit_mask( ).get_long( F_NDOC ) );
|
||||
// r.put( "NRIGA", riga.get( 0 ) );
|
||||
r.put( "STATORIGA", riga.get( 0 ) );
|
||||
r.put( "TIPORIGA", riga.get( 1 ) );
|
||||
r.put( "PROFRIGA", riga.get( 2 ) );
|
||||
@ -727,32 +799,36 @@ void TMotore_application::calcola_riga( TRectype& r )
|
||||
TToken_string s(proriga.get("PROGPIEDE", "MAIN"));
|
||||
int func = s.get_int( );
|
||||
while( func )
|
||||
{ _piedi[ s.get_int( ) ] += user_row_calculate( r, func );
|
||||
func = s.get_int( );
|
||||
}
|
||||
{
|
||||
_piedi[ s.get_int( ) ] += user_row_calculate( r, func );
|
||||
func = s.get_int( );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool TMotore_application::user_create( )
|
||||
{ azzera_piedi( );
|
||||
// Carico la maschera di ricerca dei documenti
|
||||
_msk = new TMask("VE1000A");
|
||||
query_mask( ).set_handler( F_NDOC, ndoc_handler );
|
||||
query_mask( ).set_handler( F_CODNUM, num_handler );
|
||||
query_mask( ).set_handler( F_TIPODOC, tip_handler );
|
||||
// La maschera di inserimento/modifica per ora non la so!
|
||||
// Viene letta dal profilo non appena trovato il record
|
||||
_msk1 = NULL;
|
||||
{
|
||||
azzera_piedi( );
|
||||
_msk = new TMask("VE1000A");
|
||||
query_mask( ).set_handler( F_NDOC, ndoc_handler );
|
||||
query_mask( ).set_handler( F_CODNUM, num_handler );
|
||||
query_mask( ).set_handler( F_TIPODOC, tip_handler );
|
||||
// La maschera di inserimento/modifica per ora non la so!
|
||||
// Viene letta dal profilo non appena trovato il record
|
||||
_msk1 = NULL;
|
||||
|
||||
// Metto in relazione testata e righe
|
||||
_rel = new TRelation(LF_DOC);
|
||||
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
|
||||
// Metto in relazione testata e righe
|
||||
_rel = new TRelation(LF_DOC);
|
||||
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
|
||||
|
||||
// Inizializzo il Record_array
|
||||
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
// Inizializzo il Record_array
|
||||
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
|
||||
|
||||
// Inizializzo l'array con la posizione delle colonne
|
||||
for( int i = 0; i <= MAX_COLUMNS; i ++ )
|
||||
_pos_cols[ i ] = -1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMotore_application::user_destroy( )
|
||||
{
|
||||
@ -784,43 +860,47 @@ int TMotore_application::esegui_procedura( int operazione )
|
||||
bool TMotore_application::valida_operazione( int operazione )
|
||||
{
|
||||
if ( operazione != OP_NUOVO )
|
||||
{ if ( !stato_valido( stato_corrente( ), operazione ) )
|
||||
{ segnala_stato_non_valido( operazione );
|
||||
return FALSE;
|
||||
};
|
||||
};
|
||||
{
|
||||
if ( !stato_valido( stato_corrente( ), operazione ) )
|
||||
{
|
||||
segnala_stato_non_valido( operazione );
|
||||
return FALSE;
|
||||
}
|
||||
};
|
||||
if ( esegui_procedura( operazione ) == NOERR )
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const char * TMotore_application::nome_sezione( int op )
|
||||
{ switch( op )
|
||||
{ case OP_NUOVO:
|
||||
return "INSERIMENTO";
|
||||
break;
|
||||
case OP_MODIFICA:
|
||||
return "MODIFICA";
|
||||
break;
|
||||
case OP_CANCELLA:
|
||||
return "CANCELLAZIONE";
|
||||
break;
|
||||
case OP_STAMPA:
|
||||
return "STAMPA";
|
||||
break;
|
||||
case OP_RAGGRUPPA:
|
||||
return "RAGGRUPPA";
|
||||
break;
|
||||
case OP_USER:
|
||||
return "SPECIALE";
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
|
||||
// Per evitare la warning
|
||||
return "";
|
||||
break;
|
||||
};
|
||||
}
|
||||
{
|
||||
switch( op )
|
||||
{
|
||||
case OP_NUOVO:
|
||||
return "INSERIMENTO";
|
||||
break;
|
||||
case OP_MODIFICA:
|
||||
return "MODIFICA";
|
||||
break;
|
||||
case OP_CANCELLA:
|
||||
return "CANCELLAZIONE";
|
||||
break;
|
||||
case OP_STAMPA:
|
||||
return "STAMPA";
|
||||
break;
|
||||
case OP_RAGGRUPPA:
|
||||
return "RAGGRUPPA";
|
||||
break;
|
||||
case OP_USER:
|
||||
return "SPECIALE";
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
|
||||
// Per evitare la warning
|
||||
return "";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int TMotore_application::stato_finale( int operazione )
|
||||
{
|
||||
|
@ -1,16 +1,4 @@
|
||||
// Handler di marco sui campi delle maschere
|
||||
#ifndef __VE0100C_H
|
||||
#include "ve0100c.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VEUML_H
|
||||
#include "f:\u\alex\p.due\ve\VeUML.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VEUML1_H
|
||||
#include "f:\u\alex\p.due\ve\VeUML1.h"
|
||||
#endif
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
@ -31,9 +19,17 @@
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
extern bool ora_hndl(TMask_field& field, KEY key);
|
||||
extern bool codcli_hndl(TMask_field& field, KEY key);
|
||||
extern bool dummy_hndl(TMask_field& field, KEY key);
|
||||
#ifndef __VEUML_H
|
||||
#include "VeUML.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VEUML1_H
|
||||
#include "VeUML1.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VE0100C_H
|
||||
#include "ve0100c.h"
|
||||
#endif
|
||||
|
||||
bool ora_hndl(TMask_field& field, KEY key)
|
||||
{
|
||||
@ -94,6 +90,6 @@ bool codcli_hndl(TMask_field& field, KEY key)
|
||||
|
||||
bool dummy_hndl(TMask_field& field, KEY key)
|
||||
{
|
||||
warning_box("Al campo %d + arrivato un KEY %d",field.dlg(),key);
|
||||
warning_box("Al campo %d è arrivato un KEY %d",field.dlg(),key);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1 +1,7 @@
|
||||
#define __VE0100C_H
|
||||
#define __VE0100C_H
|
||||
|
||||
// Handlers per i campi delle bolle
|
||||
|
||||
extern bool ora_hndl(TMask_field& field, KEY key);
|
||||
extern bool codcli_hndl(TMask_field& field, KEY key);
|
||||
extern bool dummy_hndl(TMask_field& field, KEY key);
|
||||
|
1210
ve/ve0300.cpp
1210
ve/ve0300.cpp
File diff suppressed because it is too large
Load Diff
@ -74,6 +74,10 @@
|
||||
#define F_PROFILO 171 // GESTITO DAL MOTORE
|
||||
#define F_TIPODOC 172 // GESTITO DAL MOTORE
|
||||
#define F_DESNUM 173 // GESTITO DAL MOTORE
|
||||
#define F_TIPIDOCS 174
|
||||
|
||||
#define F_TIPIDOCS 174 // GESTITO DAL MOTORE
|
||||
#define F_LBTIPORIGA 175 // GESTITO DAL MOTORE
|
||||
#define F_DESTIPODOC 176 // GESTITO DAL MOTORE
|
||||
#define F_DESCF 177 // GESTITO DAL MOTORE
|
||||
#define DLG_ELABORA 178 // GESTITO DAL MOTORE: bottone Elabora
|
||||
#define F_ATTIVAANNO 179 // GESTITO DAL MOTORE
|
||||
#endif // veuml.h
|
||||
|
Loading…
x
Reference in New Issue
Block a user