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_CODTAB 101
|
||||||
#define F_DESNUM 102
|
#define F_DESNUM 102
|
||||||
#define F_ULTNUM 103
|
#define F_ULTNUM 103
|
||||||
#define F_ULTNUMPROV 104
|
#define F_ULTNUMPROV 104
|
||||||
#define F_PREFISSO 105
|
#define F_PREFISSO 105
|
||||||
#define F_SUFFISSO 106
|
#define F_SUFFISSO 106
|
||||||
#define F_ULTDATA 107
|
#define F_ULTDATA 107
|
||||||
#define F_ANNO 108
|
#define F_ANNO 108
|
||||||
#define F_TIPODOC1 110
|
#define F_TIPODOC1 110
|
||||||
#define F_DESDOC1 111
|
#define F_DESDOC1 111
|
||||||
#define F_TIPODOC2 112
|
#define F_TIPODOC2 112
|
||||||
#define F_DESDOC2 113
|
#define F_DESDOC2 113
|
||||||
#define F_TIPODOC3 114
|
#define F_TIPODOC3 114
|
||||||
#define F_DESDOC3 115
|
#define F_DESDOC3 115
|
||||||
#define F_TIPODOC4 116
|
#define F_TIPODOC4 116
|
||||||
#define F_DESDOC4 117
|
#define F_DESDOC4 117
|
||||||
#define F_TIPODOC5 118
|
#define F_TIPODOC5 118
|
||||||
#define F_DESDOC5 119
|
#define F_DESDOC5 119
|
||||||
#define F_TIPODOC6 120
|
#define F_TIPODOC6 120
|
||||||
#define F_DESDOC6 121
|
#define F_DESDOC6 121
|
||||||
#define F_TIPODOC7 122
|
#define F_TIPODOC7 122
|
||||||
#define F_DESDOC7 123
|
#define F_DESDOC7 123
|
||||||
#define F_TIPODOC8 124
|
#define F_TIPODOC8 124
|
||||||
#define F_DESDOC8 125
|
#define F_DESDOC8 125
|
||||||
#define F_TIPODOC9 126
|
#define F_TIPODOC9 126
|
||||||
#define F_DESDOC9 127
|
#define F_DESDOC9 127
|
||||||
#define F_TIPODOC10 128
|
#define F_TIPODOC10 128
|
||||||
#define F_DESDOC10 129
|
#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
|
TOOLBAR "" 0 20 60 2
|
||||||
|
|
||||||
#include "toolbar.h"
|
#include "toolbar.h"
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
PAGE "Numerazione documenti" -1 -1 60 14
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 75 7
|
GROUPBOX DLG_NULL 75 7
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -14,12 +14,18 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
|||||||
FLAG "R"
|
FLAG "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
// GROUPBOX DLG_NULL 84 13
|
||||||
|
// BEGIN
|
||||||
|
// PROMPT 1 5 ""
|
||||||
|
// FLAG "R"
|
||||||
|
// END
|
||||||
|
|
||||||
STRING F_CODTAB 4
|
STRING F_CODTAB 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Cod. numerazione "
|
PROMPT 2 2 "Cod. numerazione "
|
||||||
FIELD CODTAB
|
FIELD CODTAB
|
||||||
HELP "Codice numerazione"
|
HELP "Codice numerazione"
|
||||||
USE NUM
|
USE NUM
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
INPUT CODTAB F_CODTAB
|
INPUT CODTAB F_CODTAB
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -32,10 +38,10 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
|||||||
|
|
||||||
STRING F_DESNUM 50
|
STRING F_DESNUM 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Descrizione "
|
PROMPT 2 4 "Descrizione "
|
||||||
FIELD S0
|
FIELD S0
|
||||||
HELP "Descrizione numerazione"
|
HELP "Descrizione numerazione"
|
||||||
USE NUM
|
USE NUM KEY 2
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
INPUT S0 F_DESNUM
|
INPUT S0 F_DESNUM
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -45,251 +51,243 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
|||||||
KEY 2
|
KEY 2
|
||||||
END
|
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
|
STRING F_PREFISSO 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Prefisso numerazione "
|
PROMPT 2 8 "Prefisso per la numerazione "
|
||||||
FIELD S6
|
FIELD S6
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_SUFFISSO 7
|
STRING F_SUFFISSO 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "Suffisso numerazione "
|
PROMPT 2 10 "Suffisso per la numerazione "
|
||||||
FIELD S7
|
FIELD S7
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_ANNO 4
|
BOOLEAN F_NUMPROVV
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 15 "Anno d'esercizio "
|
PROMPT 2 12 "Utilizzo della numerazione provvisoria"
|
||||||
FIELD S8
|
FIELD B0
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_NUMAUTO
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Utilizzo della numerazione automatica"
|
||||||
|
FIELD B1
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Tabella numerazioni Pagina 2/2" -1 -1 60 14
|
PAGE "Numerazioni documenti pag.2" -1 -1 60 14
|
||||||
|
|
||||||
TEXT DLG_NULL
|
GROUPBOX DLG_NULL 64 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Tipi di documento validi per la numerazione"
|
PROMPT 1 1 ""
|
||||||
END
|
// FLAG "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Tipi di documento validi per la numerazione"
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC1 4
|
STRING F_TIPODOC1 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 ""
|
PROMPT 2 4 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC1
|
INPUT CODTAB F_TIPODOC1
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC1 TIP->CODTAB
|
OUTPUT F_TIPODOC1 CODTAB
|
||||||
OUTPUT F_DESDOC1 TIP->S0
|
OUTPUT F_DESDOC1 S0
|
||||||
HELP "Tipo di documento 1"
|
HELP "Tipo di documento 1"
|
||||||
FIELD S2[1,4]
|
FIELD S2[1,4]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC1 50
|
STRING F_DESDOC1 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 4 ""
|
PROMPT 12 4 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC2 4
|
STRING F_TIPODOC2 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 ""
|
PROMPT 2 5 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC2
|
INPUT CODTAB F_TIPODOC2
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC2 TIP->CODTAB
|
OUTPUT F_TIPODOC2 CODTAB
|
||||||
OUTPUT F_DESDOC2 TIP->S0
|
OUTPUT F_DESDOC2 S0
|
||||||
HELP "Tipo di documento 2"
|
HELP "Tipo di documento 2"
|
||||||
FIELD S2[5,8]
|
FIELD S2[5,8]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC2 50
|
STRING F_DESDOC2 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 5 ""
|
PROMPT 12 5 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC3 4
|
STRING F_TIPODOC3 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 ""
|
PROMPT 2 6 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC3
|
INPUT CODTAB F_TIPODOC3
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC3 TIP->CODTAB
|
OUTPUT F_TIPODOC3 CODTAB
|
||||||
OUTPUT F_DESDOC3 TIP->S0
|
OUTPUT F_DESDOC3 S0
|
||||||
HELP "Tipo di documento 3"
|
HELP "Tipo di documento 3"
|
||||||
FIELD S2[9,12]
|
FIELD S2[9,12]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC3 50
|
STRING F_DESDOC3 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 6 ""
|
PROMPT 12 6 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC4 4
|
STRING F_TIPODOC4 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 ""
|
PROMPT 2 7 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC4
|
INPUT CODTAB F_TIPODOC4
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC4 TIP->CODTAB
|
OUTPUT F_TIPODOC4 CODTAB
|
||||||
OUTPUT F_DESDOC4 TIP->S0
|
OUTPUT F_DESDOC4 S0
|
||||||
HELP "Tipo di documento 4"
|
HELP "Tipo di documento 4"
|
||||||
FIELD S2[13,16]
|
FIELD S2[13,16]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC4 50
|
STRING F_DESDOC4 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 7 ""
|
PROMPT 12 7 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC5 4
|
STRING F_TIPODOC5 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 ""
|
PROMPT 2 8 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC5
|
INPUT CODTAB F_TIPODOC5
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC5 TIP->CODTAB
|
OUTPUT F_TIPODOC5 CODTAB
|
||||||
OUTPUT F_DESDOC5 TIP->S0
|
OUTPUT F_DESDOC5 S0
|
||||||
HELP "Tipo di documento 5"
|
HELP "Tipo di documento 5"
|
||||||
FIELD S2[17,20]
|
FIELD S2[17,20]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC5 50
|
STRING F_DESDOC5 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 8 ""
|
PROMPT 12 8 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC6 4
|
STRING F_TIPODOC6 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 ""
|
PROMPT 2 9 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC6
|
INPUT CODTAB F_TIPODOC6
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC6 TIP->CODTAB
|
OUTPUT F_TIPODOC6 CODTAB
|
||||||
OUTPUT F_DESDOC6 TIP->S0
|
OUTPUT F_DESDOC6 S0
|
||||||
HELP "Tipo di documento 6"
|
HELP "Tipo di documento 6"
|
||||||
FIELD S2[21,24]
|
FIELD S2[21,24]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC6 50
|
STRING F_DESDOC6 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 9 ""
|
PROMPT 12 9 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC7 4
|
STRING F_TIPODOC7 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 ""
|
PROMPT 2 10 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC7
|
INPUT CODTAB F_TIPODOC7
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC7 TIP->CODTAB
|
OUTPUT F_TIPODOC7 CODTAB
|
||||||
OUTPUT F_DESDOC7 TIP->S0
|
OUTPUT F_DESDOC7 S0
|
||||||
HELP "Tipo di documento 7"
|
HELP "Tipo di documento 7"
|
||||||
FIELD S2[25,28]
|
FIELD S2[25,28]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC7 50
|
STRING F_DESDOC7 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 10 ""
|
PROMPT 12 10 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC8 4
|
STRING F_TIPODOC8 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 ""
|
PROMPT 2 11 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC8
|
INPUT CODTAB F_TIPODOC8
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC8 TIP->CODTAB
|
OUTPUT F_TIPODOC8 CODTAB
|
||||||
OUTPUT F_DESDOC8 TIP->S0
|
OUTPUT F_DESDOC8 S0
|
||||||
HELP "Tipo di documento 8"
|
HELP "Tipo di documento 8"
|
||||||
FIELD S2[29,32]
|
FIELD S2[29,32]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC8 50
|
STRING F_DESDOC8 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 11 ""
|
PROMPT 12 11 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC9 4
|
STRING F_TIPODOC9 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 ""
|
PROMPT 2 12 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC9
|
INPUT CODTAB F_TIPODOC9
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC9 TIP->CODTAB
|
OUTPUT F_TIPODOC9 CODTAB
|
||||||
OUTPUT F_DESDOC9 TIP->S0
|
OUTPUT F_DESDOC9 S0
|
||||||
HELP "Tipo di documento 9"
|
HELP "Tipo di documento 9"
|
||||||
FIELD S2[32,36]
|
FIELD S2[32,36]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC9 50
|
STRING F_DESDOC9 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 12 ""
|
PROMPT 12 12 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC10 4
|
STRING F_TIPODOC10 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 ""
|
PROMPT 2 13 ""
|
||||||
USE TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_TIPODOC10
|
INPUT CODTAB F_TIPODOC10
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPODOC10 TIP->CODTAB
|
OUTPUT F_TIPODOC10 CODTAB
|
||||||
OUTPUT F_DESDOC10 TIP->S0
|
OUTPUT F_DESDOC10 S0
|
||||||
HELP "Tipo di documento 10"
|
HELP "Tipo di documento 10"
|
||||||
FIELD S2[37,40]
|
FIELD S2[37,40]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESDOC10 50
|
STRING F_DESDOC10 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 13 ""
|
PROMPT 12 13 ""
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
130
ve/batbtip.uml
130
ve/batbtip.uml
@ -1,65 +1,65 @@
|
|||||||
#include "ve4.h"
|
#include "ve4.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 60 2
|
TOOLBAR "" 0 20 60 2
|
||||||
|
|
||||||
#include "toolbar.h"
|
#include "toolbar.h"
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Tabella tipi di documento" -1 -1 60 14
|
PAGE "Tabella tipi di documento" -1 -1 60 14
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 75 7
|
GROUPBOX DLG_NULL 75 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
FLAG "R"
|
FLAG "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB 4
|
STRING F_CODTAB 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Cod. tipo docum. "
|
PROMPT 2 2 "Cod. tipo docum. "
|
||||||
FIELD CODTAB
|
FIELD CODTAB
|
||||||
HELP "Codice tipo documento"
|
HELP "Codice tipo documento"
|
||||||
USE %TIP
|
USE %TIP
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
INPUT CODTAB F_CODTAB
|
INPUT CODTAB F_CODTAB
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_DESNUM S0
|
OUTPUT F_DESNUM S0
|
||||||
KEY 1
|
KEY 1
|
||||||
FLAG "UZ"
|
FLAG "UZ"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESNUM 50
|
STRING F_DESNUM 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Descrizione "
|
PROMPT 2 4 "Descrizione "
|
||||||
FIELD S0
|
FIELD S0
|
||||||
HELP "Descrizione tipo documento"
|
HELP "Descrizione tipo documento"
|
||||||
USE %TIP KEY 2
|
USE %TIP KEY 2
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
INPUT S0 F_DESNUM
|
INPUT S0 F_DESNUM
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@40" S0
|
DISPLAY "Descrizione@40" S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_DESNUM S0
|
OUTPUT F_DESNUM S0
|
||||||
KEY 2
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PROFILO 8
|
STRING F_PROFILO 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Profilo documento "
|
PROMPT 2 8 "Profilo documento "
|
||||||
FIELD S4
|
FIELD S4
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PSTAMPA 8
|
STRING F_PSTAMPA 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Profilo stampa documento "
|
PROMPT 2 10 "Profilo stampa documento "
|
||||||
FIELD S5
|
FIELD S5
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
|
108
ve/batbtri.uml
108
ve/batbtri.uml
@ -1,54 +1,54 @@
|
|||||||
TOOLBAR "" 0 20 60 2
|
TOOLBAR "" 0 20 60 2
|
||||||
|
|
||||||
#include "toolbar.h"
|
#include "toolbar.h"
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
#define F_CODICE 101
|
#define F_CODICE 101
|
||||||
#define F_DESCR 102
|
#define F_DESCR 102
|
||||||
#define F_PROFILO 103
|
#define F_PROFILO 103
|
||||||
|
|
||||||
PAGE "Tipo di riga" -1 -1 60 14
|
PAGE "Tipo di riga" -1 -1 60 14
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 75 7
|
GROUPBOX DLG_NULL 75 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODICE 4
|
STRING F_CODICE 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Codice "
|
PROMPT 2 2 "Codice "
|
||||||
FIELD CODTAB
|
FIELD CODTAB
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE %TRI
|
USE %TRI
|
||||||
INPUT CODTAB F_CODICE
|
INPUT CODTAB F_CODICE
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODICE CODTAB
|
OUTPUT F_CODICE CODTAB
|
||||||
OUTPUT F_DESCR S0
|
OUTPUT F_DESCR S0
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50
|
STRING F_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Descrizione "
|
PROMPT 2 4 "Descrizione "
|
||||||
FIELD S0
|
FIELD S0
|
||||||
USE %TRI KEY 2
|
USE %TRI KEY 2
|
||||||
INPUT S0 F_DESCR
|
INPUT S0 F_DESCR
|
||||||
COPY DISPLAY F_CODICE
|
COPY DISPLAY F_CODICE
|
||||||
COPY OUTPUT F_CODICE
|
COPY OUTPUT F_CODICE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
KEY 2
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING f_PROFILO 8
|
STRING f_PROFILO 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Profilo "
|
PROMPT 2 8 "Profilo "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FIELD S4
|
FIELD S4
|
||||||
END
|
END
|
||||||
|
|
||||||
END
|
END
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
664
ve/ve0100.cpp
664
ve/ve0100.cpp
@ -29,7 +29,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __VEUML_H
|
#ifndef __VEUML_H
|
||||||
#include "f:\u\alex\p.due\ve\VEUML.H"
|
#include "VEUML.H"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __SHEET_H
|
#ifndef __SHEET_H
|
||||||
@ -56,17 +56,10 @@
|
|||||||
#include "VE0100D.H"
|
#include "VE0100D.H"
|
||||||
#endif
|
#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
|
// Numero di colonne presenti sullo sheet totale
|
||||||
#define MAX_COLUMNS 22
|
#define MAX_COLUMNS 22
|
||||||
|
|
||||||
#define F_LBTIPORIGA 175
|
#define F_LBTIPORIGA 175
|
||||||
#define F_TIPIDOCS 172
|
|
||||||
|
|
||||||
// Definizione della classe dell'applicazione motore
|
// Definizione della classe dell'applicazione motore
|
||||||
class TMotore_application : public TRelation_application
|
class TMotore_application : public TRelation_application
|
||||||
@ -95,9 +88,13 @@ class TMotore_application : public TRelation_application
|
|||||||
// Puntatore allo sheet delle righe documento
|
// Puntatore allo sheet delle righe documento
|
||||||
TSheet_field* _sheet;
|
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_create( );
|
||||||
virtual bool user_destroy( );
|
virtual bool user_destroy( );
|
||||||
virtual TMask* get_mask(int mode);
|
virtual TMask* get_mask(int mode);
|
||||||
@ -108,7 +105,6 @@ class TMotore_application : public TRelation_application
|
|||||||
virtual bool remove( void );
|
virtual bool remove( void );
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
virtual void init_query_mode(TMask&);
|
|
||||||
|
|
||||||
// Punti di ingresso per le funzioni utente
|
// Punti di ingresso per le funzioni utente
|
||||||
|
|
||||||
@ -157,7 +153,7 @@ protected:
|
|||||||
static TMask * ss_getmask( int numriga, TMask& fullmask, bool destroy );
|
static TMask * ss_getmask( int numriga, TMask& fullmask, bool destroy );
|
||||||
|
|
||||||
// Handler che gestisce la richiesta del tipo riga in inserimento
|
// 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
|
// Handler per la maschera di ricerca
|
||||||
static bool ndoc_handler(TMask_field& f, KEY key);
|
static bool ndoc_handler(TMask_field& f, KEY key);
|
||||||
@ -187,6 +183,9 @@ public:
|
|||||||
TMotore_application( ) { _pro = NULL; }
|
TMotore_application( ) { _pro = NULL; }
|
||||||
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
||||||
virtual const char* get_next_key( );
|
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( ); }
|
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 )
|
int TMotore_application::user_function( int index )
|
||||||
{
|
{
|
||||||
switch( index )
|
switch( index )
|
||||||
{ case 1:
|
{
|
||||||
|
case 1:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
yesnofatal_box( "Chiamata ad una procedura utente non definita: %d", index );
|
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
|
// Da migliorare, mettendo una cache
|
||||||
|
|
||||||
TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destroy )
|
TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destroy )
|
||||||
{ static TMask* m;
|
{
|
||||||
|
static TMask* m;
|
||||||
if ( destroy )
|
|
||||||
{ delete m;
|
if ( destroy )
|
||||||
return( NULL ); }
|
{
|
||||||
else
|
delete m;
|
||||||
{ TFilename nome_proriga( fullmask.get( 103 ) );
|
return( NULL );
|
||||||
nome_proriga.ext( "ini" );
|
}
|
||||||
TConfig proriga( nome_proriga );
|
else
|
||||||
m = new TMask( proriga.get( "MSK", "MAIN" ) );
|
{
|
||||||
return( m ); }
|
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 )
|
real TMotore_application::user_row_calculate( TRectype& r, int index )
|
||||||
{ switch( index )
|
{
|
||||||
{ case 100 :
|
switch( index )
|
||||||
return ( f100( r ) );
|
{
|
||||||
break;
|
case 100 :
|
||||||
default:
|
return ( f100( r ) );
|
||||||
CHECK( FALSE, "Tentativo di chiamare una funzione di calcolo riga inesistente!" );
|
break;
|
||||||
return 0.0;
|
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 )
|
void TMotore_application::user_set_handler( int fieldid, int index )
|
||||||
{
|
{
|
||||||
switch( index )
|
switch( index )
|
||||||
{ case 1:
|
{
|
||||||
|
case 1:
|
||||||
edit_mask( ).set_handler( fieldid, ora_hndl );
|
edit_mask( ).set_handler( fieldid, ora_hndl );
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@ -247,56 +263,125 @@ void TMotore_application::user_set_handler( int fieldid, int index )
|
|||||||
edit_mask( ).set_handler( fieldid, dummy_hndl );
|
edit_mask( ).set_handler( fieldid, dummy_hndl );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
CHECK( FALSE, "tentativo di installare un handler non definito" );
|
CHECK( FALSE, "Tentativo di installare un handler non definito" );
|
||||||
break;
|
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 )
|
if ( key == K_INS )
|
||||||
{
|
{
|
||||||
TMask m( "ve1000b" );
|
TMask& m = *app( )._msk1;
|
||||||
TList_field& listbox = ( TList_field& ) m.field( F_LBTIPORIGA );
|
TTable tabtr( "%TRI" );
|
||||||
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" );
|
tabtr.zero( );
|
||||||
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;
|
|
||||||
tabtr.put( "CODTAB", m.get( F_LBTIPORIGA ) );
|
tabtr.put( "CODTAB", m.get( F_LBTIPORIGA ) );
|
||||||
tabtr.read( );
|
tabtr.read( );
|
||||||
TToken_string& riga = app( ).sheet( ).row( r );
|
TToken_string& riga = ss.row( r );
|
||||||
riga.add( 1, 0 );
|
riga.add( 1, 0 );
|
||||||
riga.add( m.get( F_LBTIPORIGA ), 1 );
|
riga.add( m.get( F_LBTIPORIGA ), 1 );
|
||||||
riga.add( tabtr.get( "S4" ), 2 );
|
TFilename nome_proriga( tabtr.get( "S4" ) );
|
||||||
app( ).sheet( ).force_update( );
|
riga.add( nome_proriga, 2 );
|
||||||
return TRUE;
|
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;
|
return TRUE;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TMotore_application::num_handler( TMask_field& f, KEY key )
|
bool TMotore_application::num_handler( TMask_field& f, KEY key )
|
||||||
{
|
{
|
||||||
|
// Ottengo la maschera
|
||||||
TMask& m = f.mask( );
|
TMask& m = f.mask( );
|
||||||
|
|
||||||
if (key == K_TAB && m.is_running( ) )
|
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" );
|
TTable tabnum( "NUM" );
|
||||||
|
tabnum.zero( );
|
||||||
tabnum.read( );
|
tabnum.put( "CODTAB", value );
|
||||||
m.set(F_DESNUM, tabnum.get("S0") );
|
if( tabnum.read( ) == NOERR )
|
||||||
m.set(F_TIPIDOCS, tabnum.get("S2") );
|
{
|
||||||
}
|
// 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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,27 +390,36 @@ bool TMotore_application::tip_handler(TMask_field& f, KEY key)
|
|||||||
TMask& m = f.mask( );
|
TMask& m = f.mask( );
|
||||||
if (key == K_TAB && m.is_running( ) )
|
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 tipi_consentiti( m.get( F_TIPIDOCS ) );
|
||||||
TString tipo( f.get( ) );
|
TString tipo( f.get( ) );
|
||||||
if( tipi_consentiti.find( tipo ) % 4 )
|
if( tipi_consentiti.find( tipo ) % 4 )
|
||||||
{ message_box( "Tipo non valido per la numerazione selezionata!" );
|
{ message_box( "Tipo non valido per la numerazione selezionata!" );
|
||||||
f.set( "" );
|
f.set( "" );
|
||||||
return FALSE; }
|
return FALSE; }
|
||||||
TTable tabtip( "TIP" );
|
TTable tabtip( "%TIP" );
|
||||||
tabtip.read( );
|
tabtip.read( );
|
||||||
|
m.set(F_DESTIPODOC, tabtip.get("S0") );
|
||||||
m.set(F_PROFILO, tabtip.get("S4") );
|
m.set(F_PROFILO, tabtip.get("S4") );
|
||||||
};
|
};
|
||||||
if (key == K_ENTER && m.is_running( ) )
|
if (key == K_ENTER && m.is_running( ) )
|
||||||
{ TString tipo( f.get( ) );
|
{ TString tipo( f.get( ) );
|
||||||
if ( ! tipo.blank( ) )
|
if ( ! tipo.blank( ) )
|
||||||
{ TTable tabtip( "TIP" );
|
{ TTable tabtip( "%TIP" );
|
||||||
tabtip.read( );
|
tabtip.read( );
|
||||||
m.set(F_PROFILO, tabtip.get("S4") );
|
m.set(F_PROFILO, tabtip.get("S4") );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ message_box( "Occorre un tipo documento per inserire un documento!" );
|
{ message_box( "Occorre un tipo documento per inserire un documento!" );
|
||||||
m.first_focus( F_TIPODOC );
|
m.first_focus( F_TIPODOC );
|
||||||
return FALSE; }
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
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("ANNO", m.get( F_ANNO ) );
|
||||||
doc.put("NDOC", f.get( ) );
|
doc.put("NDOC", f.get( ) );
|
||||||
if ( doc.read( ) == NOERR )
|
if ( doc.read( ) == NOERR )
|
||||||
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
|
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
|
||||||
TTable tabtip( "TIP" );
|
TTable tabtip( "%TIP" );
|
||||||
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
|
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
|
||||||
tabtip.read( );
|
tabtip.read( );
|
||||||
m.set(F_PROFILO, tabtip.get("S4") );
|
m.set(F_PROFILO, tabtip.get("S4") );
|
||||||
m.stop_run( K_AUTO_ENTER );
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,34 +463,39 @@ bool TMotore_application::changing_mask(int mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config )
|
void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config )
|
||||||
{ int i;
|
{
|
||||||
const int ncols = config.get_int( "NCOLS", "SHEET" );
|
_realcols = config.get_int( "NCOLS", "SHEET" );
|
||||||
for( i = 1; i <= ncols; i ++ )
|
for( int i = 1; i <= _realcols; i ++ )
|
||||||
{ TString col;
|
{
|
||||||
col.format( "%d", i );
|
TString col;
|
||||||
TToken_string sheet_col( config.get( col, "SHEET" ) );
|
col.format( "%d", i );
|
||||||
TString descr( sheet_col.get( 1 ) );
|
TToken_string sheet_col( config.get( col, "SHEET" ) );
|
||||||
if ( ! descr.blank( ) )
|
const TString descr( sheet_col.get( 1 ) );
|
||||||
sheet.set_column_header( i, descr );
|
if ( ! descr.blank( ) )
|
||||||
TString size( sheet_col.get( 2 ) );
|
sheet.set_column_header( i, descr );
|
||||||
if ( ! size.blank( ) )
|
TString size( sheet_col.get( 2 ) );
|
||||||
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
|
if ( ! size.blank( ) )
|
||||||
sheet.move_column( sheet_col.get_int( 0 ) - 1, i );
|
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
|
||||||
}
|
int coltomove = sheet_col.get_int( 0 ) - 1;
|
||||||
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
|
sheet.move_column( coltomove, i );
|
||||||
sheet.delete_column( j );
|
_pos_cols[ coltomove ] = i;
|
||||||
};
|
};
|
||||||
|
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
|
||||||
|
sheet.delete_column( j );
|
||||||
|
};
|
||||||
|
|
||||||
void TMotore_application::get_edit_mask( void )
|
void TMotore_application::get_edit_mask( void )
|
||||||
{
|
{
|
||||||
TFilename fn;
|
TFilename fn;
|
||||||
|
|
||||||
fn = query_mask( ).get( F_PROFILO );
|
fn = query_mask( ).get( F_PROFILO );
|
||||||
query_mask( ).enable(DLG_NEWREC);
|
// query_mask( ).enable(DLG_NEWREC);
|
||||||
fn.ext( "ini" );
|
fn.ext( "ini" );
|
||||||
fn.upper( );
|
fn.upper( );
|
||||||
if ( _pro )
|
if ( _pro )
|
||||||
{ if( (*_proname) == fn ) return;
|
{
|
||||||
|
if( (*_proname) == fn )
|
||||||
|
return;
|
||||||
delete _pro;
|
delete _pro;
|
||||||
};
|
};
|
||||||
_pro = new TConfig( fn );
|
_pro = new TConfig( fn );
|
||||||
@ -418,15 +503,39 @@ void TMotore_application::get_edit_mask( void )
|
|||||||
_proname->upper( );
|
_proname->upper( );
|
||||||
if ( _msk1 ) delete _msk1;
|
if ( _msk1 ) delete _msk1;
|
||||||
_msk1 = new TMask( pro( ).get( "MSKFILE", "MAIN" ) );
|
_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 ) );
|
edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) );
|
||||||
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
|
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
|
||||||
sheet( ).set_notify( ss_handler );
|
sheet( ).set_notify( ss_handler );
|
||||||
configura_sheet( *_sheet, *_pro );
|
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 );
|
sheet( ).set_getmask( ss_getmask );
|
||||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
||||||
for( int i = 1; i <= numhandler; i ++ )
|
for( i = 1; i <= numhandler; i ++ )
|
||||||
{ TString chiave;
|
{
|
||||||
|
TString chiave;
|
||||||
chiave.format( "%d", i );
|
chiave.format( "%d", i );
|
||||||
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
|
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
|
||||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
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( );
|
if (from < 0) from = ss( ).items( );
|
||||||
for (int i = from; i < 20; i++)
|
for (int i = from; i < 20; i++)
|
||||||
set_descr(i, "");
|
set_descr( i, "" );
|
||||||
ss( ).force_update( );
|
ss( ).force_update( );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMotore_application::init_query_mode(TMask& _mask)
|
|
||||||
{
|
|
||||||
_mask.disable( DLG_NEWREC );
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* TMotore_application::get_next_key( )
|
const char* TMotore_application::get_next_key( )
|
||||||
{
|
{
|
||||||
TToken_string _t;
|
TToken_string key;
|
||||||
|
TMask& m = curr_mask( );
|
||||||
|
|
||||||
_t.add( F_CODNUM );
|
TString value = m.get( F_CODNUM );
|
||||||
_t.add( query_mask( ).get( F_CODNUM ) );
|
if ( value.blank( ) )
|
||||||
_t.add( F_ANNO );
|
return NULL;
|
||||||
_t.add( query_mask( ).get( F_ANNO ) );
|
TTable tabnum( "NUM" );
|
||||||
_t.add( F_PROVV );
|
tabnum.zero( );
|
||||||
_t.add( query_mask( ).get( F_PROVV ) );
|
tabnum.put( "CODTAB", value );
|
||||||
_t.add( F_NDOC );
|
if( tabnum.read( ) == NOERR )
|
||||||
_t.add( prossimo_numero( query_mask( ).get( F_PROVV ) == "P" ) );
|
{
|
||||||
return( _t );
|
// 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)
|
int TMotore_application::read(TMask& m)
|
||||||
@ -489,7 +620,8 @@ int TMotore_application::read(TMask& m)
|
|||||||
azzera_piedi( );
|
azzera_piedi( );
|
||||||
int err = TRelation_application::read( m );
|
int err = TRelation_application::read( m );
|
||||||
if ( err == NOERR )
|
if ( err == NOERR )
|
||||||
{ TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
{
|
||||||
|
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
||||||
TRectype r = rdoc.curr( );
|
TRectype r = rdoc.curr( );
|
||||||
r.zero( );
|
r.zero( );
|
||||||
r.put( "CODNUM", m.get( F_CODNUM ) );
|
r.put( "CODNUM", m.get( F_CODNUM ) );
|
||||||
@ -502,19 +634,21 @@ int TMotore_application::read(TMask& m)
|
|||||||
f.destroy( );
|
f.destroy( );
|
||||||
int last = _righe_rec->last_row( );
|
int last = _righe_rec->last_row( );
|
||||||
for( int i = 1; i <= last; i ++ )
|
for( int i = 1; i <= last; i ++ )
|
||||||
{ TRectype &rec = _righe_rec->row( i, TRUE );
|
{
|
||||||
load_riga( f, i - 1, rec );
|
TRectype &rec = _righe_rec->row( i, TRUE );
|
||||||
calcola_riga( rec );
|
load_riga( f, i - 1, rec );
|
||||||
}
|
calcola_riga( rec );
|
||||||
|
}
|
||||||
|
|
||||||
TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) );
|
TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) );
|
||||||
i = s.get_int( );
|
i = s.get_int( );
|
||||||
int j = 0;
|
int j = 0;
|
||||||
while( i != 0 )
|
while( i != 0 )
|
||||||
{ real strpiede( _piedi[ i ] );
|
{
|
||||||
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
|
real strpiede( _piedi[ i ] );
|
||||||
i = s.get_int( );
|
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
|
||||||
}
|
i = s.get_int( );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -527,79 +661,52 @@ bool TMotore_application::check_key( TLocalisamfile& rdoc, TString16 codnum, boo
|
|||||||
( rdoc.get_bool( "PROVV" ) == provv ) );
|
( 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 TMotore_application::write(const TMask& m)
|
||||||
{ int err;
|
{
|
||||||
if ( esegui_procedura( OP_NUOVO ) != NOERR )
|
int err;
|
||||||
return FALSE;
|
if ( esegui_procedura( OP_NUOVO ) != NOERR )
|
||||||
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
|
return FALSE;
|
||||||
if ( err == NOERR )
|
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
|
||||||
{ err = TRelation_application::write( m );
|
if ( err == NOERR )
|
||||||
if ( err == NOERR )
|
{
|
||||||
{ TSheet_field& f = ss( );
|
err = TRelation_application::write( m );
|
||||||
_righe_rec->destroy_rows( );
|
if ( err == NOERR )
|
||||||
if ( m.insert_mode( ) )
|
{
|
||||||
_righe_rec->renum_key( "NRIGA", 1 );
|
TSheet_field& f = ss( );
|
||||||
for ( int i = 0; i < f.items( ); i ++ )
|
_righe_rec->destroy_rows( );
|
||||||
{
|
if ( m.insert_mode( ) )
|
||||||
TToken_string& t = f.row( i );
|
_righe_rec->renum_key( "NRIGA", 1 );
|
||||||
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
for ( int i = 0; i < f.items( ); i ++ )
|
||||||
store_riga( f, i, rec );
|
{
|
||||||
}
|
TToken_string& t = f.row( i );
|
||||||
err = _righe_rec->write( );
|
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)
|
int TMotore_application::rewrite(const TMask& m)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( ! valida_operazione( OP_MODIFICA ) )
|
if ( ! valida_operazione( OP_MODIFICA ) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
int err = TRelation_application::rewrite( m );
|
int err = TRelation_application::rewrite( m );
|
||||||
if ( err == NOERR )
|
if ( err == NOERR )
|
||||||
{ TSheet_field& f = ss( );
|
{
|
||||||
_righe_rec->destroy_rows( );
|
TSheet_field& f = ss( );
|
||||||
if ( m.insert_mode( ) )
|
_righe_rec->destroy_rows( );
|
||||||
_righe_rec->renum_key( "NRIGA", 1 );
|
if ( m.insert_mode( ) )
|
||||||
for ( int i = 0; i < f.items( ); i ++ )
|
_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);
|
TToken_string& t = f.row( i );
|
||||||
store_riga( f, i, rec );
|
TRectype& rec = _righe_rec->row(i + 1, TRUE);
|
||||||
}
|
store_riga( f, i, rec );
|
||||||
err = _righe_rec->rewrite( );
|
}
|
||||||
}
|
err = _righe_rec->rewrite( );
|
||||||
|
}
|
||||||
return err;
|
return err;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -625,37 +732,16 @@ int TMotore_application::avanza_numero( bool provv )
|
|||||||
|
|
||||||
int err = tabnum.read( );
|
int err = tabnum.read( );
|
||||||
if ( err == NOERR )
|
if ( err == NOERR )
|
||||||
{ if ( provv )
|
{
|
||||||
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
|
if ( provv )
|
||||||
else
|
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
|
||||||
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
else
|
||||||
err = tabnum.rewrite( );
|
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||||||
}
|
err = tabnum.rewrite( );
|
||||||
|
}
|
||||||
return err;
|
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 )
|
bool TMotore_application::remove( void )
|
||||||
{
|
{
|
||||||
if ( ! valida_operazione( OP_CANCELLA ) )
|
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 )
|
void TMotore_application::load_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||||
{
|
{
|
||||||
TToken_string& riga = f.row(numrig);
|
TToken_string& riga = f.row(numrig);
|
||||||
|
|
||||||
// riga= "";
|
|
||||||
// riga.add( r.get( "NRIGA" ) );
|
|
||||||
riga = r.get( "STATORIGA" );
|
riga = r.get( "STATORIGA" );
|
||||||
riga.add( r.get( "TIPORIGA" ) );
|
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( "PROFRIGA" ) );
|
||||||
riga.add( r.get( "CODMAG" ) );
|
riga.add( r.get( "CODMAG" ) );
|
||||||
riga.add( r.get( "CODART" ) );
|
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( "ANNO", edit_mask( ).get( F_ANNO ) );
|
||||||
r.put( "PROVV", edit_mask( ).get( F_PROVV ) );
|
r.put( "PROVV", edit_mask( ).get( F_PROVV ) );
|
||||||
r.put( "NDOC", edit_mask( ).get_long( F_NDOC ) );
|
r.put( "NDOC", edit_mask( ).get_long( F_NDOC ) );
|
||||||
// r.put( "NRIGA", riga.get( 0 ) );
|
|
||||||
r.put( "STATORIGA", riga.get( 0 ) );
|
r.put( "STATORIGA", riga.get( 0 ) );
|
||||||
r.put( "TIPORIGA", riga.get( 1 ) );
|
r.put( "TIPORIGA", riga.get( 1 ) );
|
||||||
r.put( "PROFRIGA", riga.get( 2 ) );
|
r.put( "PROFRIGA", riga.get( 2 ) );
|
||||||
@ -727,32 +799,36 @@ void TMotore_application::calcola_riga( TRectype& r )
|
|||||||
TToken_string s(proriga.get("PROGPIEDE", "MAIN"));
|
TToken_string s(proriga.get("PROGPIEDE", "MAIN"));
|
||||||
int func = s.get_int( );
|
int func = s.get_int( );
|
||||||
while( func )
|
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( )
|
bool TMotore_application::user_create( )
|
||||||
{ azzera_piedi( );
|
{
|
||||||
// Carico la maschera di ricerca dei documenti
|
azzera_piedi( );
|
||||||
_msk = new TMask("VE1000A");
|
_msk = new TMask("VE1000A");
|
||||||
query_mask( ).set_handler( F_NDOC, ndoc_handler );
|
query_mask( ).set_handler( F_NDOC, ndoc_handler );
|
||||||
query_mask( ).set_handler( F_CODNUM, num_handler );
|
query_mask( ).set_handler( F_CODNUM, num_handler );
|
||||||
query_mask( ).set_handler( F_TIPODOC, tip_handler );
|
query_mask( ).set_handler( F_TIPODOC, tip_handler );
|
||||||
// La maschera di inserimento/modifica per ora non la so!
|
// La maschera di inserimento/modifica per ora non la so!
|
||||||
// Viene letta dal profilo non appena trovato il record
|
// Viene letta dal profilo non appena trovato il record
|
||||||
_msk1 = NULL;
|
_msk1 = NULL;
|
||||||
|
|
||||||
// Metto in relazione testata e righe
|
// Metto in relazione testata e righe
|
||||||
_rel = new TRelation(LF_DOC);
|
_rel = new TRelation(LF_DOC);
|
||||||
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
|
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
|
||||||
|
|
||||||
// Inizializzo il Record_array
|
// Inizializzo il Record_array
|
||||||
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
|
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
|
||||||
|
|
||||||
return TRUE;
|
// 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( )
|
bool TMotore_application::user_destroy( )
|
||||||
{
|
{
|
||||||
@ -784,43 +860,47 @@ int TMotore_application::esegui_procedura( int operazione )
|
|||||||
bool TMotore_application::valida_operazione( int operazione )
|
bool TMotore_application::valida_operazione( int operazione )
|
||||||
{
|
{
|
||||||
if ( operazione != OP_NUOVO )
|
if ( operazione != OP_NUOVO )
|
||||||
{ if ( !stato_valido( stato_corrente( ), operazione ) )
|
{
|
||||||
{ segnala_stato_non_valido( operazione );
|
if ( !stato_valido( stato_corrente( ), operazione ) )
|
||||||
return FALSE;
|
{
|
||||||
};
|
segnala_stato_non_valido( operazione );
|
||||||
};
|
return FALSE;
|
||||||
|
}
|
||||||
|
};
|
||||||
if ( esegui_procedura( operazione ) == NOERR )
|
if ( esegui_procedura( operazione ) == NOERR )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * TMotore_application::nome_sezione( int op )
|
const char * TMotore_application::nome_sezione( int op )
|
||||||
{ switch( op )
|
{
|
||||||
{ case OP_NUOVO:
|
switch( op )
|
||||||
return "INSERIMENTO";
|
{
|
||||||
break;
|
case OP_NUOVO:
|
||||||
case OP_MODIFICA:
|
return "INSERIMENTO";
|
||||||
return "MODIFICA";
|
break;
|
||||||
break;
|
case OP_MODIFICA:
|
||||||
case OP_CANCELLA:
|
return "MODIFICA";
|
||||||
return "CANCELLAZIONE";
|
break;
|
||||||
break;
|
case OP_CANCELLA:
|
||||||
case OP_STAMPA:
|
return "CANCELLAZIONE";
|
||||||
return "STAMPA";
|
break;
|
||||||
break;
|
case OP_STAMPA:
|
||||||
case OP_RAGGRUPPA:
|
return "STAMPA";
|
||||||
return "RAGGRUPPA";
|
break;
|
||||||
break;
|
case OP_RAGGRUPPA:
|
||||||
case OP_USER:
|
return "RAGGRUPPA";
|
||||||
return "SPECIALE";
|
break;
|
||||||
break;
|
case OP_USER:
|
||||||
default:
|
return "SPECIALE";
|
||||||
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
|
break;
|
||||||
// Per evitare la warning
|
default:
|
||||||
return "";
|
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
|
||||||
break;
|
// Per evitare la warning
|
||||||
};
|
return "";
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int TMotore_application::stato_finale( int operazione )
|
int TMotore_application::stato_finale( int operazione )
|
||||||
{
|
{
|
||||||
|
@ -1,16 +1,4 @@
|
|||||||
// Handler di marco sui campi delle maschere
|
// 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
|
#ifndef __CHECKS_H
|
||||||
#include <checks.h>
|
#include <checks.h>
|
||||||
#endif
|
#endif
|
||||||
@ -31,9 +19,17 @@
|
|||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern bool ora_hndl(TMask_field& field, KEY key);
|
#ifndef __VEUML_H
|
||||||
extern bool codcli_hndl(TMask_field& field, KEY key);
|
#include "VeUML.h"
|
||||||
extern bool dummy_hndl(TMask_field& field, KEY key);
|
#endif
|
||||||
|
|
||||||
|
#ifndef __VEUML1_H
|
||||||
|
#include "VeUML1.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __VE0100C_H
|
||||||
|
#include "ve0100c.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
bool ora_hndl(TMask_field& field, KEY key)
|
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)
|
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;
|
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_PROFILO 171 // GESTITO DAL MOTORE
|
||||||
#define F_TIPODOC 172 // GESTITO DAL MOTORE
|
#define F_TIPODOC 172 // GESTITO DAL MOTORE
|
||||||
#define F_DESNUM 173 // 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
|
#endif // veuml.h
|
||||||
|
Loading…
x
Reference in New Issue
Block a user