This commit was generated by cvs2svn to compensate for changes in r1680,
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@1681 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7af71b88ec
commit
8792453bd0
11
ve/batbacr.h
Executable file
11
ve/batbacr.h
Executable file
@ -0,0 +1,11 @@
|
||||
#define F_TIPO 101
|
||||
#define F_CODCATCON 102
|
||||
#define F_CODART 103
|
||||
#define F_CODCATCON1 104
|
||||
#define F_CODCATCON2 110
|
||||
#define F_CODART1 105
|
||||
#define F_CODCONCONT1 106
|
||||
#define F_CODCONCONT2 107
|
||||
#define F_CODCONCONT3 108
|
||||
#define F_CODCONCONT4 109
|
||||
|
146
ve/batbacr.uml
Executable file
146
ve/batbacr.uml
Executable file
@ -0,0 +1,146 @@
|
||||
#include "BATBACR.H"
|
||||
#define LF_ANAMAG 47 //ANAGRAFICA DI MAGAZZINO
|
||||
#define LF_PCON 19 //PIANO DEI CONTI
|
||||
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio costi e ricavi " 11 60 14
|
||||
|
||||
|
||||
LISTBOX F_TIPO 8
|
||||
BEGIN
|
||||
PROMPT 3 3 "Tipo lavoro "
|
||||
FIELD ACR->S0
|
||||
ITEM "1|Ricavi "
|
||||
MESSAGE SHOW, F_CODCATCON
|
||||
MESSAGE HIDE, F_CODCATCON1
|
||||
ITEM "2|Costi "
|
||||
MESSAGE HIDE, F_CODCATCON
|
||||
MESSAGE SHOW, F_CODCATCON1
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODCATCON 3
|
||||
BEGIN
|
||||
PROMPT 3 5 "Codice categoria contabile "
|
||||
FIELD ACR->CODTAB
|
||||
KEY 1
|
||||
FLAG "U"
|
||||
USE CRA // CATEGORIE RICAVI ARTICOLI
|
||||
|
||||
INPUT CODTAB F_CODCATCON
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODCATCON CODTAB
|
||||
OUTPUT F_CODCATCON2 S0
|
||||
CHECKTYPE REQUIRED
|
||||
MESSAGE COPY , F_CODCATCON1
|
||||
END
|
||||
|
||||
STRING F_CODCATCON1 3
|
||||
BEGIN
|
||||
PROMPT 3 5 "Codice categoria contabile "
|
||||
FIELD ACR->CODTAB
|
||||
KEY 1
|
||||
FLAG "U"
|
||||
USE CAA // CATEGORIE ACQUISTI ARTICOLI
|
||||
|
||||
INPUT CODTAB F_CODCATCON1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODCATCON1 CODTAB
|
||||
OUTPUT F_CODCATCON2 S0
|
||||
CHECKTYPE REQUIRED
|
||||
MESSAGE COPY , F_CODCATCON
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODCATCON2 40
|
||||
BEGIN
|
||||
PROMPT 19 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_CODART 20
|
||||
BEGIN
|
||||
PROMPT 3 7 "Codice articolo "
|
||||
FIELD ACR->S1
|
||||
USE LF_ANAMAG KEY 1
|
||||
FLAG "R"
|
||||
INPUT CODART F_CODART
|
||||
|
||||
DISPLAY "Codice articolo" CODART
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_CODART1 DESCR
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODART1 30
|
||||
BEGIN
|
||||
PROMPT 19 8 ""
|
||||
FIELD ACR->S2
|
||||
FLAG "U"
|
||||
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_CODART1
|
||||
DISPLAY "Codice articolo" CODART
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_CODART1 DESCR
|
||||
|
||||
END
|
||||
|
||||
NUMBER F_CODCONCONT1 2
|
||||
BEGIN
|
||||
PROMPT 3 9 "Codice conto contabile "
|
||||
FIELD ACR->S3
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_CODCONCONT1
|
||||
INPUT CONTO F_CODCONCONT2
|
||||
INPUT SOTTOCONTO F_CODCONCONT3
|
||||
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODCONCONT1 GRUPPO
|
||||
OUTPUT F_CODCONCONT2 CONTO
|
||||
OUTPUT F_CODCONCONT3 SOTTOCONTO
|
||||
OUTPUT F_CODCONCONT4 DESCR
|
||||
END
|
||||
|
||||
NUMBER F_CODCONCONT2 2
|
||||
BEGIN
|
||||
PROMPT 34 9 ""
|
||||
FIELD ACR->S4
|
||||
END
|
||||
|
||||
NUMBER F_CODCONCONT3 6
|
||||
BEGIN
|
||||
PROMPT 42 9 ""
|
||||
FIELD ACR->S5
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODCONCONT4 50
|
||||
BEGIN
|
||||
PROMPT 10 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 70 13
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
6
ve/batbcaa.h
Executable file
6
ve/batbcaa.h
Executable file
@ -0,0 +1,6 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 103
|
||||
#define F_DESCR1 105
|
||||
#define F_CODCON 106
|
||||
#define F_CODCON1 107
|
||||
#define F_CODCON2 108
|
103
ve/batbcaa.uml
Executable file
103
ve/batbcaa.uml
Executable file
@ -0,0 +1,103 @@
|
||||
#include "BATBCAA.H"
|
||||
#define LF_PCON 19 //PIANO DEI CONTI
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella categoria acquisti articoli " 11 60 14
|
||||
|
||||
STRING F_CODICE 3
|
||||
BEGIN
|
||||
PROMPT 3 3 "Codice tabella "
|
||||
FIELD CAA->CODTAB
|
||||
KEY 1
|
||||
USE CAA
|
||||
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODICE
|
||||
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40 " S0
|
||||
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_DESCR 40
|
||||
BEGIN
|
||||
PROMPT 3 5 "Descrizione "
|
||||
FIELD CAA->S0
|
||||
KEY 2
|
||||
USE CAA KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40 " S0
|
||||
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODCON 2
|
||||
BEGIN
|
||||
PROMPT 3 7 "Codice conto "
|
||||
FIELD CAA->S1
|
||||
USE LF_PCON
|
||||
// CHECKTYPE REQUIRED
|
||||
FLAG "R"
|
||||
|
||||
INPUT GRUPPO F_CODCON
|
||||
INPUT CONTO F_CODCON1
|
||||
INPUT SOTTOCONTO F_CODCON2
|
||||
|
||||
DISPLAY "Gruppo " GRUPPO
|
||||
DISPLAY "Conto " CONTO
|
||||
DISPLAY "Sottoconto " SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
|
||||
OUTPUT F_CODCON GRUPPO
|
||||
OUTPUT F_CODCON1 CONTO
|
||||
OUTPUT F_CODCON2 SOTTOCONTO
|
||||
OUTPUT F_DESCR1 DESCR
|
||||
// KEY 1
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_CODCON1 2
|
||||
BEGIN
|
||||
PROMPT 23 7 ""
|
||||
FIELD CAA->S2
|
||||
// CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODCON2 6
|
||||
BEGIN
|
||||
PROMPT 28 7 ""
|
||||
FIELD CAA->S3
|
||||
// CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_DESCR1 50
|
||||
BEGIN
|
||||
PROMPT 10 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 65 11
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
7
ve/batbcra.h
Executable file
7
ve/batbcra.h
Executable file
@ -0,0 +1,7 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_DESCR1 103
|
||||
#define F_CODCON 104
|
||||
#define F_CODCON1 105
|
||||
#define F_CODCON2 106
|
||||
|
101
ve/batbcra.uml
Executable file
101
ve/batbcra.uml
Executable file
@ -0,0 +1,101 @@
|
||||
#include "BATBCRA.H"
|
||||
#define LF_PCON 19 //PIANO DEI CONTI
|
||||
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella categoria ricavi articoli " 11 60 14
|
||||
|
||||
STRING F_CODICE 3
|
||||
BEGIN
|
||||
PROMPT 3 3 "Codice tabella "
|
||||
FIELD CRA->CODTAB
|
||||
KEY 1
|
||||
USE CRA
|
||||
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODICE
|
||||
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40 " S0
|
||||
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCR 40
|
||||
BEGIN
|
||||
PROMPT 3 5 "Descrizione "
|
||||
FIELD CRA->S0
|
||||
KEY 2
|
||||
USE CRA KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40 " S0
|
||||
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODCON 2
|
||||
BEGIN
|
||||
PROMPT 3 7 "Codice conto "
|
||||
FIELD CRA->S1
|
||||
USE LF_PCON
|
||||
// CHECKTYPE REQUIRED
|
||||
FLAG "R"
|
||||
|
||||
INPUT GRUPPO F_CODCON
|
||||
INPUT CONTO F_CODCON1
|
||||
INPUT SOTTOCONTO F_CODCON2
|
||||
|
||||
DISPLAY "Gruppo " GRUPPO
|
||||
DISPLAY "Conto " CONTO
|
||||
DISPLAY "Sottoconto " SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
|
||||
OUTPUT F_CODCON GRUPPO
|
||||
OUTPUT F_CODCON1 CONTO
|
||||
OUTPUT F_CODCON2 SOTTOCONTO
|
||||
OUTPUT F_DESCR1 DESCR
|
||||
// KEY 1
|
||||
END
|
||||
|
||||
STRING F_CODCON1 2
|
||||
BEGIN
|
||||
PROMPT 23 7 ""
|
||||
FIELD CRA->S2
|
||||
// CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODCON2 6
|
||||
BEGIN
|
||||
PROMPT 28 7 ""
|
||||
FIELD CRA->S3
|
||||
// CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_DESCR1 50
|
||||
BEGIN
|
||||
PROMPT 10 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 11
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
103
ve/batbfid.h
Executable file
103
ve/batbfid.h
Executable file
@ -0,0 +1,103 @@
|
||||
#define F_COD 300
|
||||
|
||||
#define F_DESC1 101
|
||||
#define F_DESC2 102
|
||||
#define F_DESC3 103
|
||||
#define F_DESC4 104
|
||||
#define F_DESC5 105
|
||||
#define F_DESC6 106
|
||||
#define F_DESC7 107
|
||||
#define F_DESC8 108
|
||||
#define F_DESC9 109
|
||||
#define F_DESC10 110
|
||||
#define F_DESC11 111
|
||||
#define F_DESC12 112
|
||||
#define F_DESC13 113
|
||||
#define F_DESC14 114
|
||||
#define F_DESC15 115
|
||||
|
||||
#define F_TIPO1 201
|
||||
#define F_TIPO2 202
|
||||
#define F_TIPO3 203
|
||||
#define F_TIPO4 204
|
||||
#define F_TIPO5 205
|
||||
#define F_TIPO6 206
|
||||
#define F_TIPO7 207
|
||||
#define F_TIPO8 208
|
||||
#define F_TIPO9 209
|
||||
#define F_TIPO10 210
|
||||
#define F_TIPO11 211
|
||||
#define F_TIPO12 212
|
||||
#define F_TIPO13 213
|
||||
#define F_TIPO14 214
|
||||
#define F_TIPO15 215
|
||||
|
||||
|
||||
|
||||
#define F_VALID1 116
|
||||
#define F_VALID2 117
|
||||
#define F_VALID3 118
|
||||
#define F_VALID4 119
|
||||
#define F_VALID5 120
|
||||
#define F_VALID6 121
|
||||
#define F_VALID7 122
|
||||
#define F_VALID8 123
|
||||
#define F_VALID9 124
|
||||
#define F_VALID10 125
|
||||
#define F_VALID11 126
|
||||
#define F_VALID12 127
|
||||
#define F_VALID13 128
|
||||
#define F_VALID14 129
|
||||
#define F_VALID15 130
|
||||
|
||||
#define F_GRUPPO1 131
|
||||
#define F_CONTO1 132
|
||||
#define F_CLIFOR1 133
|
||||
#define F_GRUPPO2 134
|
||||
#define F_CONTO2 135
|
||||
#define F_CLIFOR2 136
|
||||
#define F_GRUPPO3 137
|
||||
#define F_CONTO3 138
|
||||
#define F_CLIFOR3 139
|
||||
#define F_GRUPPO4 140
|
||||
#define F_CONTO4 141
|
||||
#define F_CLIFOR4 142
|
||||
#define F_GRUPPO5 143
|
||||
#define F_CONTO5 144
|
||||
#define F_CLIFOR5 145
|
||||
#define F_GRUPPO6 146
|
||||
#define F_CONTO6 147
|
||||
#define F_CLIFOR6 148
|
||||
#define F_GRUPPO7 149
|
||||
#define F_CONTO7 150
|
||||
#define F_CLIFOR7 151
|
||||
#define F_GRUPPO8 152
|
||||
#define F_CONTO8 153
|
||||
#define F_CLIFOR8 154
|
||||
#define F_GRUPPO9 155
|
||||
#define F_CONTO9 156
|
||||
#define F_CLIFOR9 157
|
||||
#define F_GRUPPO10 158
|
||||
#define F_CONTO10 159
|
||||
#define F_CLIFOR10 160
|
||||
|
||||
#define F_SOTTO1 216
|
||||
#define F_SOTTO2 217
|
||||
#define F_SOTTO3 218
|
||||
#define F_SOTTO4 219
|
||||
#define F_SOTTO5 220
|
||||
#define F_SOTTO6 221
|
||||
#define F_SOTTO7 222
|
||||
#define F_SOTTO8 223
|
||||
#define F_SOTTO9 224
|
||||
#define F_SOTTO10 225
|
||||
|
||||
|
||||
#define F_TIPOAFF 161
|
||||
#define F_TESTO1 162
|
||||
#define F_TESTO2 163
|
||||
#define F_TESTO3 164
|
||||
#define F_TESTO4 165
|
||||
|
||||
|
||||
|
780
ve/batbfid.uml
Executable file
780
ve/batbfid.uml
Executable file
@ -0,0 +1,780 @@
|
||||
#include "BATBFID.H"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella controllo fido clienti " 11 60 14
|
||||
|
||||
|
||||
TEXT F_TESTO1 40
|
||||
BEGIN
|
||||
PROMPT 1 0 "Tipo documento da considerare nel calcolo fido :"
|
||||
END
|
||||
|
||||
TEXT F_TESTO2 30
|
||||
BEGIN
|
||||
PROMPT 1 2 "Codice descr. documento"
|
||||
END
|
||||
|
||||
TEXT F_TESTO3 30
|
||||
BEGIN
|
||||
PROMPT 50 2 "Valido fino allo stato"
|
||||
END
|
||||
|
||||
STRING F_COD 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice tabella "
|
||||
FIELD FID->CODTAB
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESC1 2
|
||||
BEGIN
|
||||
PROMPT 1 3 " 1) "
|
||||
FIELD FID->S0[1,2]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC1 CODTAB
|
||||
OUTPUT F_TIPO1 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO1 50
|
||||
BEGIN
|
||||
PROMPT 13 3 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID1 1
|
||||
BEGIN
|
||||
PROMPT 66 3 ""
|
||||
FIELD FID->S4[1]
|
||||
END
|
||||
|
||||
STRING F_DESC2 2
|
||||
BEGIN
|
||||
PROMPT 1 4 " 2) "
|
||||
FIELD FID->S0[3,4]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC2
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC2 CODTAB
|
||||
OUTPUT F_TIPO2 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO2 50
|
||||
BEGIN
|
||||
PROMPT 13 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_VALID2 1
|
||||
BEGIN
|
||||
PROMPT 66 4 ""
|
||||
FIELD FID->S4[2]
|
||||
END
|
||||
|
||||
STRING F_DESC3 2
|
||||
BEGIN
|
||||
PROMPT 1 5 " 3) "
|
||||
FIELD FID->S0[5,6]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC3
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC3 CODTAB
|
||||
OUTPUT F_TIPO3 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO3 50
|
||||
BEGIN
|
||||
PROMPT 13 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID3 1
|
||||
BEGIN
|
||||
PROMPT 66 5 ""
|
||||
FIELD FID->S4[3]
|
||||
END
|
||||
|
||||
STRING F_DESC4 2
|
||||
BEGIN
|
||||
PROMPT 1 6 " 4) "
|
||||
FIELD FID->S0[7,8]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC4
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC4 CODTAB
|
||||
OUTPUT F_TIPO4 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO4 50
|
||||
BEGIN
|
||||
PROMPT 13 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID4 1
|
||||
BEGIN
|
||||
PROMPT 66 6 ""
|
||||
FIELD FID->S4[4]
|
||||
END
|
||||
|
||||
STRING F_DESC5 2
|
||||
BEGIN
|
||||
PROMPT 1 7 " 5) "
|
||||
FIELD FID->S0[9,10]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC5
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC5 CODTAB
|
||||
OUTPUT F_TIPO5 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO5 50
|
||||
BEGIN
|
||||
PROMPT 13 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID5 1
|
||||
BEGIN
|
||||
PROMPT 66 7 ""
|
||||
FIELD FID->S4[5]
|
||||
END
|
||||
|
||||
STRING F_DESC6 2
|
||||
BEGIN
|
||||
PROMPT 1 8 " 6) "
|
||||
FIELD FID->S0[11,12]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC6
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC6 CODTAB
|
||||
OUTPUT F_TIPO6 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO6 50
|
||||
BEGIN
|
||||
PROMPT 13 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID6 1
|
||||
BEGIN
|
||||
PROMPT 66 8 ""
|
||||
FIELD FID->S4[6]
|
||||
END
|
||||
|
||||
STRING F_DESC7 2
|
||||
BEGIN
|
||||
PROMPT 1 9 " 7) "
|
||||
FIELD FID->S0[13,14]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC7
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC7 CODTAB
|
||||
OUTPUT F_TIPO7 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO7 50
|
||||
BEGIN
|
||||
PROMPT 13 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_VALID7 1
|
||||
BEGIN
|
||||
PROMPT 66 9 ""
|
||||
FIELD FID->S4[7]
|
||||
END
|
||||
|
||||
STRING F_DESC8 2
|
||||
BEGIN
|
||||
PROMPT 1 10 " 8) "
|
||||
FIELD FID->S0[15,16]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC8
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC8 CODTAB
|
||||
OUTPUT F_TIPO8 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO8 50
|
||||
BEGIN
|
||||
PROMPT 13 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID8 1
|
||||
BEGIN
|
||||
PROMPT 66 10 ""
|
||||
FIELD FID->S4[8]
|
||||
END
|
||||
|
||||
STRING F_DESC9 2
|
||||
BEGIN
|
||||
PROMPT 1 11 " 9) "
|
||||
FIELD FID->S0[17,18]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC9
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC9 CODTAB
|
||||
OUTPUT F_TIPO9 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO9 50
|
||||
BEGIN
|
||||
PROMPT 13 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID9 1
|
||||
BEGIN
|
||||
PROMPT 66 11 ""
|
||||
FIELD FID->S4[9]
|
||||
END
|
||||
|
||||
STRING F_DESC10 2
|
||||
BEGIN
|
||||
PROMPT 1 12 "10) "
|
||||
FIELD FID->S0[19,20]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC10
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC10 CODTAB
|
||||
OUTPUT F_TIPO10 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO10 50
|
||||
BEGIN
|
||||
PROMPT 13 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID10 1
|
||||
BEGIN
|
||||
PROMPT 66 12 ""
|
||||
FIELD FID->S4[10]
|
||||
END
|
||||
|
||||
STRING F_DESC11 2
|
||||
BEGIN
|
||||
PROMPT 1 13 "11) "
|
||||
FIELD FID->S0[21,22]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC11
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC11 CODTAB
|
||||
OUTPUT F_TIPO11 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO11 50
|
||||
BEGIN
|
||||
PROMPT 13 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID11 1
|
||||
BEGIN
|
||||
PROMPT 66 13 ""
|
||||
FIELD FID->S4[11]
|
||||
END
|
||||
|
||||
STRING F_DESC12 2
|
||||
BEGIN
|
||||
PROMPT 1 14 "12) "
|
||||
FIELD FID->S0[23,24]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC12
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC12 CODTAB
|
||||
OUTPUT F_TIPO12 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO12 50
|
||||
BEGIN
|
||||
PROMPT 13 14 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID12 1
|
||||
BEGIN
|
||||
PROMPT 66 14 ""
|
||||
FIELD FID->S4[12]
|
||||
END
|
||||
|
||||
STRING F_DESC13 2
|
||||
BEGIN
|
||||
PROMPT 1 15 "13) "
|
||||
FIELD FID->S0[25,26]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC13
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC13 CODTAB
|
||||
OUTPUT F_TIPO13 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO13 50
|
||||
BEGIN
|
||||
PROMPT 13 15 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID13 1
|
||||
BEGIN
|
||||
PROMPT 66 15 ""
|
||||
FIELD FID->S4[13]
|
||||
END
|
||||
|
||||
STRING F_DESC14 2
|
||||
BEGIN
|
||||
PROMPT 1 16 "14) "
|
||||
FIELD FID->S0[27,28]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC14
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC14 CODTAB
|
||||
OUTPUT F_TIPO14 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO14 50
|
||||
BEGIN
|
||||
PROMPT 13 16 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID14 1
|
||||
BEGIN
|
||||
PROMPT 66 16 ""
|
||||
FIELD FID->S4[14]
|
||||
END
|
||||
|
||||
STRING F_DESC15 2
|
||||
BEGIN
|
||||
PROMPT 1 17 "15) "
|
||||
FIELD FID->S0[29,30]
|
||||
USE %TPD
|
||||
INPUT CODTAB F_DESC15
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DESC15 CODTAB
|
||||
OUTPUT F_TIPO15 S0
|
||||
END
|
||||
|
||||
STRING F_TIPO15 50
|
||||
BEGIN
|
||||
PROMPT 13 17 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_VALID15 1
|
||||
BEGIN
|
||||
PROMPT 66 17 ""
|
||||
FIELD FID->S4[15]
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella controllo fido clienti " 11 60 14
|
||||
|
||||
TEXT F_TESTO4 30
|
||||
BEGIN
|
||||
PROMPT 1 1 "Gruppo conto cli/for del piano dei conti"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO1 2
|
||||
BEGIN
|
||||
PROMPT 3 3 ""
|
||||
FIELD FID->S2[1,2]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO1
|
||||
INPUT CONTO F_CONTO1
|
||||
INPUT SOTTOCONTO F_SOTTO1
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO1 GRUPPO
|
||||
OUTPUT F_CONTO1 CONTO
|
||||
OUTPUT F_SOTTO1 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR1 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO1 2
|
||||
BEGIN
|
||||
PROMPT 9 3 ""
|
||||
FIELD FID->S3[1,2]
|
||||
END
|
||||
|
||||
STRING F_SOTTO1 6
|
||||
BEGIN
|
||||
PROMPT 13 3 ""
|
||||
FIELD FID->S1[1,6]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR1 50
|
||||
BEGIN
|
||||
PROMPT 24 3 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO2 2
|
||||
BEGIN
|
||||
PROMPT 3 4 ""
|
||||
FIELD FID->S2[3,4]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO2
|
||||
INPUT CONTO F_CONTO2
|
||||
INPUT SOTTOCONTO F_SOTTO2
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO2 GRUPPO
|
||||
OUTPUT F_CONTO2 CONTO
|
||||
OUTPUT F_SOTTO2 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR2 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO2 2
|
||||
BEGIN
|
||||
PROMPT 9 4 ""
|
||||
FIELD FID->S3[3,4]
|
||||
END
|
||||
|
||||
STRING F_SOTTO2 6
|
||||
BEGIN
|
||||
PROMPT 13 4 ""
|
||||
FIELD FID->S1[7,12]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR2 50
|
||||
BEGIN
|
||||
PROMPT 24 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO3 2
|
||||
BEGIN
|
||||
PROMPT 3 5 ""
|
||||
FIELD FID->S2[5,6]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO3
|
||||
INPUT CONTO F_CONTO3
|
||||
INPUT SOTTOCONTO F_SOTTO3
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO3 GRUPPO
|
||||
OUTPUT F_CONTO3 CONTO
|
||||
OUTPUT F_SOTTO3 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR3 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO3 2
|
||||
BEGIN
|
||||
PROMPT 9 5 ""
|
||||
FIELD FID->S3[5,6]
|
||||
END
|
||||
|
||||
STRING F_SOTTO3 6
|
||||
BEGIN
|
||||
PROMPT 13 5 ""
|
||||
FIELD FID->S1[13,18]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR3 50
|
||||
BEGIN
|
||||
PROMPT 24 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO4 2
|
||||
BEGIN
|
||||
PROMPT 3 6 ""
|
||||
FIELD FID->S2[7,8]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO4
|
||||
INPUT CONTO F_CONTO4
|
||||
INPUT SOTTOCONTO F_SOTTO4
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO4 GRUPPO
|
||||
OUTPUT F_CONTO4 CONTO
|
||||
OUTPUT F_SOTTO4 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR4 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO4 2
|
||||
BEGIN
|
||||
PROMPT 9 6 ""
|
||||
FIELD FID->S3[7,8]
|
||||
END
|
||||
|
||||
STRING F_SOTTO4 6
|
||||
BEGIN
|
||||
PROMPT 13 6 ""
|
||||
FIELD FID->S1[19,24]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR4 50
|
||||
BEGIN
|
||||
PROMPT 24 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO5 2
|
||||
BEGIN
|
||||
PROMPT 3 7 ""
|
||||
FIELD FID->S2[9,10]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO5
|
||||
INPUT CONTO F_CONTO5
|
||||
INPUT SOTTOCONTO F_SOTTO5
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO5 GRUPPO
|
||||
OUTPUT F_CONTO5 CONTO
|
||||
OUTPUT F_SOTTO5 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR5 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO5 2
|
||||
BEGIN
|
||||
PROMPT 9 7 ""
|
||||
FIELD FID->S3[9,10]
|
||||
END
|
||||
|
||||
STRING F_SOTTO5 6
|
||||
BEGIN
|
||||
PROMPT 13 7 ""
|
||||
FIELD FID->S1[25,30]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR5 50
|
||||
BEGIN
|
||||
PROMPT 24 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO6 2
|
||||
BEGIN
|
||||
PROMPT 3 8 ""
|
||||
FIELD FID->S2[11,12]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO6
|
||||
INPUT CONTO F_CONTO6
|
||||
INPUT SOTTOCONTO F_SOTTO6
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO6 GRUPPO
|
||||
OUTPUT F_CONTO6 CONTO
|
||||
OUTPUT F_SOTTO6 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR6 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO6 2
|
||||
BEGIN
|
||||
PROMPT 9 8 ""
|
||||
FIELD FID->S3[11,12]
|
||||
END
|
||||
|
||||
STRING F_SOTTO6 6
|
||||
BEGIN
|
||||
PROMPT 13 8 ""
|
||||
FIELD FID->S1[31,36]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR6 50
|
||||
BEGIN
|
||||
PROMPT 24 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO7 2
|
||||
BEGIN
|
||||
PROMPT 3 9 ""
|
||||
FIELD FID->S2[13,14]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO7
|
||||
INPUT CONTO F_CONTO7
|
||||
INPUT SOTTOCONTO F_SOTTO7
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO7 GRUPPO
|
||||
OUTPUT F_CONTO7 CONTO
|
||||
OUTPUT F_SOTTO7 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR7 DESCR
|
||||
END
|
||||
|
||||
|
||||
STRING F_CONTO7 2
|
||||
BEGIN
|
||||
PROMPT 9 9 ""
|
||||
FIELD FID->S3[13,14]
|
||||
END
|
||||
|
||||
|
||||
STRING F_SOTTO7 6
|
||||
BEGIN
|
||||
PROMPT 13 9 ""
|
||||
FIELD FID->S1[37,42]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR7 50
|
||||
BEGIN
|
||||
PROMPT 24 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO8 2
|
||||
BEGIN
|
||||
PROMPT 3 10 ""
|
||||
FIELD FID->S2[15,16]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO8
|
||||
INPUT CONTO F_CONTO8
|
||||
INPUT SOTTOCONTO F_SOTTO8
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO8 GRUPPO
|
||||
OUTPUT F_CONTO8 CONTO
|
||||
OUTPUT F_SOTTO8 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR8 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO8 2
|
||||
BEGIN
|
||||
PROMPT 9 10 ""
|
||||
FIELD FID->S3[15,16]
|
||||
END
|
||||
|
||||
STRING F_SOTTO8 6
|
||||
BEGIN
|
||||
PROMPT 13 10 ""
|
||||
FIELD FID->S1[43,48]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR8 50
|
||||
BEGIN
|
||||
PROMPT 24 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO9 2
|
||||
BEGIN
|
||||
PROMPT 3 11 ""
|
||||
FIELD FID->S2[17,18]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO9
|
||||
INPUT CONTO F_CONTO9
|
||||
INPUT SOTTOCONTO F_SOTTO9
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO9 GRUPPO
|
||||
OUTPUT F_CONTO9 CONTO
|
||||
OUTPUT F_SOTTO9 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR9 DESCR
|
||||
END
|
||||
|
||||
|
||||
STRING F_CONTO9 2
|
||||
BEGIN
|
||||
PROMPT 9 11 ""
|
||||
FIELD FID->S3[17,18]
|
||||
END
|
||||
|
||||
|
||||
STRING F_SOTTO9 6
|
||||
BEGIN
|
||||
PROMPT 13 11 ""
|
||||
FIELD FID->S1[49,54]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR9 50
|
||||
BEGIN
|
||||
PROMPT 24 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPO10 2
|
||||
BEGIN
|
||||
PROMPT 3 12 ""
|
||||
FIELD FID->S2[19,20]
|
||||
USE 19 //PIANO DEI CONTI
|
||||
INPUT GRUPPO F_GRUPPO10
|
||||
INPUT CONTO F_CONTO10
|
||||
INPUT SOTTOCONTO F_SOTTO10
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO10 GRUPPO
|
||||
OUTPUT F_CONTO10 CONTO
|
||||
OUTPUT F_SOTTO10 SOTTOCONTO
|
||||
OUTPUT F_CLIFOR10 DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTO10 2
|
||||
BEGIN
|
||||
PROMPT 9 12 ""
|
||||
FIELD FID->S3[19,20]
|
||||
END
|
||||
|
||||
STRING F_SOTTO10 6
|
||||
BEGIN
|
||||
PROMPT 13 12 ""
|
||||
FIELD FID->S1[55,60]
|
||||
END
|
||||
|
||||
STRING F_CLIFOR10 50
|
||||
BEGIN
|
||||
PROMPT 24 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOAFF 33
|
||||
BEGIN
|
||||
PROMPT 1 14 "Tipo affidabilità "
|
||||
ITEM "1|Controllo completo con blocco "
|
||||
ITEM "2|Controllo completo con forzatura "
|
||||
ITEM "3|Solo mastrino con forzatura "
|
||||
FIELD FID->S5[1]
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
5
ve/batbgmc.h
Executable file
5
ve/batbgmc.h
Executable file
@ -0,0 +1,5 @@
|
||||
#define F_CODICE 101
|
||||
#define F_TIPO 102
|
||||
#define F_DESCR 103
|
||||
|
||||
|
52
ve/batbgmc.uml
Executable file
52
ve/batbgmc.uml
Executable file
@ -0,0 +1,52 @@
|
||||
#include "BATBGMC.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gruppi merceologici " 11 60 14
|
||||
|
||||
|
||||
STRING F_CODICE 2
|
||||
BEGIN
|
||||
PROMPT 4 4 "Codice merceologico "
|
||||
FIELD %GMC->CODTAB
|
||||
KEY 1
|
||||
USE %GMC
|
||||
FLAG "U"
|
||||
FLAG "R"
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 4 6 "Descrizione "
|
||||
FIELD %GMC->S0
|
||||
KEY 2
|
||||
USE %GMC KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 70 7
|
||||
BEGIN
|
||||
PROMPT 3 2 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
8
ve/batbimb.h
Executable file
8
ve/batbimb.h
Executable file
@ -0,0 +1,8 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_DIMX 103
|
||||
#define F_DIMY 104
|
||||
#define F_DIMZ 105
|
||||
#define F_PESO 106
|
||||
|
||||
|
94
ve/batbimb.uml
Executable file
94
ve/batbimb.uml
Executable file
@ -0,0 +1,94 @@
|
||||
#include "BATBIMB.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione imballi" 11 60 14
|
||||
|
||||
|
||||
STRING F_CODICE 5
|
||||
BEGIN
|
||||
PROMPT 4 4 "Codice dell'imballaggio "
|
||||
FIELD IMB->CODTAB
|
||||
KEY 1
|
||||
|
||||
USE IMB
|
||||
FLAG "U"
|
||||
FLAG "R"
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@30 " S0
|
||||
DISPLAY "lunghezza " R0
|
||||
DISPLAY "altezza " R1
|
||||
DISPLAY "spessore " R2
|
||||
DISPLAY "peso " R3
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_DIMX R0
|
||||
OUTPUT F_DIMY R1
|
||||
OUTPUT F_DIMZ R2
|
||||
OUTPUT F_PESO R3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESCR 30
|
||||
BEGIN
|
||||
PROMPT 4 6 "Descrizione "
|
||||
FIELD IMB->S0
|
||||
KEY 2
|
||||
|
||||
USE IMB KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@20 " S0
|
||||
DISPLAY "lunghezza " R0
|
||||
DISPLAY "altezza " R1
|
||||
DISPLAY "spessore " R2
|
||||
DISPLAY "peso " R3
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_DIMX R0
|
||||
OUTPUT F_DIMY R1
|
||||
OUTPUT F_DIMZ R2
|
||||
OUTPUT F_PESO R3
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_DIMX 6 2
|
||||
BEGIN
|
||||
PROMPT 4 8 "Lunghezza "
|
||||
FIELD IMB->R0
|
||||
END
|
||||
|
||||
NUMBER F_DIMY 6 2
|
||||
BEGIN
|
||||
PROMPT 26 8 "Altezza "
|
||||
FIELD IMB->R1
|
||||
END
|
||||
|
||||
NUMBER F_DIMZ 6 2
|
||||
BEGIN
|
||||
PROMPT 45 8 "Spessore "
|
||||
FIELD IMB->R2
|
||||
END
|
||||
|
||||
NUMBER F_PESO 6 2
|
||||
BEGIN
|
||||
PROMPT 4 10 "Peso "
|
||||
HELP "Indicare la tara"
|
||||
FIELD IMB->R3
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 10
|
||||
BEGIN
|
||||
PROMPT 1 2 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
22
ve/batbmag.h
Executable file
22
ve/batbmag.h
Executable file
@ -0,0 +1,22 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_IND 103
|
||||
#define F_LOC 104
|
||||
#define F_CAP 105
|
||||
#define F_PROV 106
|
||||
#define F_NATMAG 107
|
||||
#define F_CODMAGSTA 108
|
||||
#define F_CODLGIOR 109
|
||||
#define F_CODLUNICO 110
|
||||
#define F_GESTGIA 111
|
||||
#define F_STALDIS 112
|
||||
#define F_FREQSTA 113
|
||||
#define F_STAFISART 114
|
||||
#define F_STAFISCAU 115
|
||||
#define F_ULTCORR 116
|
||||
#define F_PAGULTCORR 117
|
||||
#define F_ULTPREC 118
|
||||
#define F_PAGULTPREC 119
|
||||
#define F_STARIS 120
|
||||
#define F_LUNGMOD 121
|
||||
#define F_INTDITTA 122
|
222
ve/batbmag.uml
Executable file
222
ve/batbmag.uml
Executable file
@ -0,0 +1,222 @@
|
||||
#include "BATBMAG.h"
|
||||
#define LF_COMUNI 13
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione magazzini" 11 60 14
|
||||
|
||||
STRING F_CODICE 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice del magazzino "
|
||||
FIELD MAG->CODTAB
|
||||
KEY 1
|
||||
USE MAG
|
||||
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50 " S0
|
||||
DISPLAY "Indirizzo@25 " S1
|
||||
DISPLAY "Località@25 " S2
|
||||
DISPLAY "Prov." S7
|
||||
DISPLAY "C.A.P." S6
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_IND S1
|
||||
OUTPUT F_LOC S2
|
||||
OUTPUT F_CAP S6
|
||||
OUTPUT F_PROV S7
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD MAG->S0
|
||||
KEY 2
|
||||
USE MAG KEY 2
|
||||
|
||||
INPUT S0 F_DESCR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50 " S0
|
||||
DISPLAY "Indirizzo@25 " S1
|
||||
DISPLAY "Località@25 " S2
|
||||
DISPLAY "Prov." S7
|
||||
DISPLAY "C.A.P." S6
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_IND S1
|
||||
OUTPUT F_LOC S2
|
||||
OUTPUT F_CAP S6
|
||||
OUTPUT F_PROV S7
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_IND 40
|
||||
BEGIN
|
||||
PROMPT 2 6 "Indirizzo "
|
||||
FIELD MAG->S1
|
||||
END
|
||||
|
||||
STRING F_LOC 25
|
||||
BEGIN
|
||||
PROMPT 2 8 "Località "
|
||||
FIELD MAG->S2
|
||||
USE LF_COMUNI
|
||||
INPUT CAPCOM F_CAP
|
||||
INPUT DENCOM F_LOC
|
||||
DISPLAY "Comune@50" DENCOM
|
||||
DISPLAY "C.A.P." CAPCOM
|
||||
DISPLAY "Provincia" PROVCOM
|
||||
OUTPUT F_LOC DENCOM
|
||||
OUTPUT F_CAP CAPCOM
|
||||
OUTPUT F_PROV PROVCOM
|
||||
|
||||
END
|
||||
|
||||
STRING F_CAP 5
|
||||
BEGIN
|
||||
PROMPT 41 8 "C.A.P. "
|
||||
FIELD MAG->S6
|
||||
USE LF_COMUNI KEY 3
|
||||
INPUT CAPCOM F_CAP
|
||||
DISPLAY "Comune@50" DENCOM
|
||||
DISPLAY "C.A.P." CAPCOM
|
||||
DISPLAY "Provincia" PROVCOM
|
||||
OUTPUT F_LOC DENCOM
|
||||
OUTPUT F_CAP CAPCOM
|
||||
OUTPUT F_PROV PROVCOM
|
||||
END
|
||||
|
||||
STRING F_PROV 5
|
||||
BEGIN
|
||||
PROMPT 58 8 "Prov. "
|
||||
FIELD MAG->S7
|
||||
END
|
||||
|
||||
LISTBOX F_NATMAG 51
|
||||
BEGIN
|
||||
PROMPT 2 11 "Natura del magazzino "
|
||||
FIELD MAG->I1
|
||||
ITEM "1|Proprietà dell'azienda "
|
||||
ITEM "2|Materiale nostro in lavorazione presso terzi"
|
||||
ITEM "3|Materiale nostro in depositopresso terzi"
|
||||
ITEM "4|Materiale di terzi, in lavorazione presso l'azienda "
|
||||
ITEM "5|Materiale di terzi, in deposito presso l'azienda "
|
||||
END
|
||||
|
||||
STRING F_CODMAGSTA 6
|
||||
BEGIN
|
||||
PROMPT 2 13 "Codice magazzino sul quale stampare i movimenti "
|
||||
FIELD MAG->I1
|
||||
END
|
||||
|
||||
STRING F_CODLGIOR 6
|
||||
BEGIN
|
||||
PROMPT 2 15 "Codice libro giornale "
|
||||
FIELD MAG->I2
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 75 11
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione magazzini" 11 60 14
|
||||
|
||||
STRING F_CODLUNICO 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice libro unico di studio "
|
||||
FIELD MAG->I3
|
||||
END
|
||||
|
||||
BOOLEAN F_GESTGIA
|
||||
BEGIN
|
||||
PROMPT 2 4 "Gestione giacenze in più depositi "
|
||||
FIELD MAG->B0
|
||||
END
|
||||
|
||||
BOOLEAN F_STALDIS
|
||||
BEGIN
|
||||
PROMPT 2 6 "Stampa libri distinti per classe fiscale articoli "
|
||||
FIELD MAG->B1
|
||||
END
|
||||
|
||||
NUMBER F_FREQSTA 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Frequenza stampa movimenti "
|
||||
FIELD MAG->I4
|
||||
END
|
||||
|
||||
BOOLEAN F_STAFISART
|
||||
BEGIN
|
||||
PROMPT 2 8 "Stampa libri per raggruppamento fiscale articoli "
|
||||
FIELD MAG->B2
|
||||
END
|
||||
|
||||
BOOLEAN F_STAFISCAU
|
||||
BEGIN
|
||||
PROMPT 2 9 "Stampa libri per raggruppamento fiscale causali "
|
||||
FIELD MAG->B3
|
||||
END
|
||||
|
||||
NUMBER F_PAGULTCORR 3
|
||||
BEGIN
|
||||
PROMPT 2 11 "Pagina e data ultima stampa esercizio corrente "
|
||||
FIELD MAG->I5
|
||||
END
|
||||
|
||||
DATE F_ULTCORR
|
||||
BEGIN
|
||||
PROMPT 58 11 ""
|
||||
FIELD MAG->D0
|
||||
END
|
||||
|
||||
NUMBER F_PAGULTPREC 3
|
||||
BEGIN
|
||||
PROMPT 2 12 "Pagina e data ultima stampa esercizio precedente "
|
||||
FIELD MAG->I6
|
||||
END
|
||||
|
||||
DATE F_ULTPREC
|
||||
BEGIN
|
||||
PROMPT 58 12 ""
|
||||
FIELD MAG->D1
|
||||
END
|
||||
|
||||
TEXT 140
|
||||
BEGIN
|
||||
PROMPT 2 14 "Parametri di stampa :"
|
||||
END
|
||||
|
||||
BOOLEAN F_INTDITTA
|
||||
BEGIN
|
||||
PROMPT 2 15 "Intestazione della ditta "
|
||||
FIELD MAG->B4
|
||||
END
|
||||
|
||||
BOOLEAN F_STARIS
|
||||
BEGIN
|
||||
PROMPT 2 16 "Stampa ristretta "
|
||||
FIELD MAG->B5
|
||||
END
|
||||
|
||||
NUMBER F_LUNGMOD 2
|
||||
BEGIN
|
||||
PROMPT 2 17 "Lunghezza modulo "
|
||||
FIELD MAG->I7
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
307
ve/batbnum.uml
Executable file
307
ve/batbnum.uml
Executable file
@ -0,0 +1,307 @@
|
||||
#include "batbnum.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 84 4
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
// FLAG "R"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 84 13
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
// FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice numerazione "
|
||||
FIELD CODTAB
|
||||
HELP "Codice numerazione"
|
||||
USE NUM
|
||||
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 40
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione numerazione "
|
||||
FIELD S0
|
||||
HELP "Descrizione numerazione"
|
||||
USE NUM
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 2
|
||||
END
|
||||
|
||||
NUMBER F_ULTNUM 7 0
|
||||
BEGIN
|
||||
PROMPT 2 6 "Numero ultimo documento emesso "
|
||||
FIELD I0
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
NUMBER F_ULTNUMPROV 7 0
|
||||
BEGIN
|
||||
PROMPT 2 7 "Numero ultimo documento creato "
|
||||
FIELD I1
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
DATE F_ULTDATA
|
||||
BEGIN
|
||||
PROMPT 2 9 "Data emissione ultimo documento "
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
STRING F_PREFISSO 7
|
||||
BEGIN
|
||||
PROMPT 2 11 "Prefisso numerazione "
|
||||
FIELD S6
|
||||
END
|
||||
|
||||
STRING F_SUFFISSO 7
|
||||
BEGIN
|
||||
PROMPT 2 12 "Suffisso numerazione "
|
||||
FIELD S7
|
||||
END
|
||||
|
||||
STRING F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 14 "Anno d'esercizio "
|
||||
FIELD S8
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella numerazioni Pagina 2/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
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC1 TIP->CODTAB
|
||||
OUTPUT F_DESDOC1 TIP->S0
|
||||
HELP "Tipo di documento 1"
|
||||
FIELD S2[1,4]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC1 40
|
||||
BEGIN
|
||||
PROMPT 10 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC2 4
|
||||
BEGIN
|
||||
PROMPT 2 5 ""
|
||||
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"
|
||||
FIELD S2[5,8]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC2 40
|
||||
BEGIN
|
||||
PROMPT 10 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC3 4
|
||||
BEGIN
|
||||
PROMPT 2 6 ""
|
||||
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"
|
||||
FIELD S2[9,12]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC3 40
|
||||
BEGIN
|
||||
PROMPT 10 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC4 4
|
||||
BEGIN
|
||||
PROMPT 2 7 ""
|
||||
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"
|
||||
FIELD S2[13,16]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC4 40
|
||||
BEGIN
|
||||
PROMPT 10 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC5 4
|
||||
BEGIN
|
||||
PROMPT 2 8 ""
|
||||
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"
|
||||
FIELD S2[17,20]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC5 40
|
||||
BEGIN
|
||||
PROMPT 10 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC6 4
|
||||
BEGIN
|
||||
PROMPT 2 9 ""
|
||||
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"
|
||||
FIELD S2[21,24]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC6 40
|
||||
BEGIN
|
||||
PROMPT 10 9 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC7 4
|
||||
BEGIN
|
||||
PROMPT 2 10 ""
|
||||
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"
|
||||
FIELD S2[25,28]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC7 40
|
||||
BEGIN
|
||||
PROMPT 10 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC8 4
|
||||
BEGIN
|
||||
PROMPT 2 11 ""
|
||||
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"
|
||||
FIELD S2[29,32]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC8 40
|
||||
BEGIN
|
||||
PROMPT 10 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC9 4
|
||||
BEGIN
|
||||
PROMPT 2 12 ""
|
||||
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"
|
||||
FIELD S2[32,36]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC9 40
|
||||
BEGIN
|
||||
PROMPT 10 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC10 4
|
||||
BEGIN
|
||||
PROMPT 2 13 ""
|
||||
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"
|
||||
FIELD S2[37,40]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDOC10 40
|
||||
BEGIN
|
||||
PROMPT 10 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
ENDMASK
|
7
ve/batbpro.h
Executable file
7
ve/batbpro.h
Executable file
@ -0,0 +1,7 @@
|
||||
#define F_CODCLI 101
|
||||
#define F_CODAGENTE 102
|
||||
#define F_CODCLI1 103
|
||||
#define F_CODAGENTE2 104
|
||||
#define F_IMPORTO 105
|
||||
#define F_PERCENTUALE 106
|
||||
#define F_TIPOCF 107
|
108
ve/batbpro.uml
Executable file
108
ve/batbpro.uml
Executable file
@ -0,0 +1,108 @@
|
||||
#include "BATBPRO.H"
|
||||
#define LF_CLIFOR 20
|
||||
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio provvigioni " 11 60 14
|
||||
|
||||
|
||||
LISTBOX F_TIPOCF 1
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
ITEM "C|"
|
||||
FLAG "H"
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODCLI 6
|
||||
BEGIN
|
||||
PROMPT 3 3 "Codice cliente "
|
||||
FIELD PRO->CODTAB
|
||||
KEY 1
|
||||
USE LF_CLIFOR
|
||||
FLAG "U"
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT CODCF F_CODCLI
|
||||
DISPLAY "Cod. cliente " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_TIPOCF TIPOCF
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_CODCLI1 RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CODCLI1 50
|
||||
BEGIN
|
||||
PROMPT 3 4 "Ragione sociale "
|
||||
KEY 2
|
||||
USE LF_CLIFOR KEY 2
|
||||
FLAG "U"
|
||||
INPUT RAGSOC F_CODCLI1
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
|
||||
DISPLAY "Cod. cliente " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_TIPOCF TIPOCF
|
||||
OUTPUT F_CODCLI CODCF
|
||||
OUTPUT F_CODCLI1 RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CODAGENTE 6
|
||||
BEGIN
|
||||
PROMPT 3 6 "Codice agente "
|
||||
FIELD PRO->S0
|
||||
KEY 1
|
||||
USE AGE
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODAGENTE
|
||||
DISPLAY "Cod. agente " CODTAB
|
||||
DISPLAY "Descrizione@30" S0
|
||||
|
||||
OUTPUT F_CODAGENTE CODTAB
|
||||
OUTPUT F_CODAGENTE2 S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODAGENTE2 30
|
||||
BEGIN
|
||||
PROMPT 3 7 "Descrizione "
|
||||
KEY 2
|
||||
USE AGE KEY 2
|
||||
INPUT S0 F_CODAGENTE2
|
||||
DISPLAY "Cod. agente " CODTAB
|
||||
DISPLAY "Descrizione@30" S0
|
||||
|
||||
OUTPUT F_CODAGENTE CODTAB
|
||||
OUTPUT F_CODAGENTE2 S0
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
NUMBER F_IMPORTO 9 2
|
||||
BEGIN
|
||||
PROMPT 3 9 "Importo provvigione "
|
||||
FIELD PRO->R0
|
||||
END
|
||||
|
||||
NUMBER F_PERCENTUALE 5 2
|
||||
BEGIN
|
||||
PROMPT 3 11 "Percentuale provvigione "
|
||||
FIELD PRO->R1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 75 14
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
26
ve/batbspp.h
Executable file
26
ve/batbspp.h
Executable file
@ -0,0 +1,26 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_CODASSFIS 103
|
||||
#define F_CODASSFIS1 125
|
||||
#define F_CODDIV 104
|
||||
#define F_CODDIV1 105
|
||||
#define F_PREZZO 106
|
||||
#define F_VALORE 107
|
||||
#define F_NCAMPOCAL 108
|
||||
#define F_NCAMPOCAL1 122
|
||||
#define F_PERCENTUALE 109
|
||||
#define F_TIPO 110
|
||||
#define F_INCASSO 111
|
||||
#define F_STAMPA 112
|
||||
#define F_CODTABAGG 113
|
||||
#define F_CODTABAGG1 114
|
||||
#define F_NCAMPOAUTOM 115
|
||||
#define F_NCAMPOAUTOM1 116
|
||||
#define F_SEGNO 117
|
||||
#define F_GRUPPO 118
|
||||
#define F_CONTO 119
|
||||
#define F_SOTTO 120
|
||||
#define F_DESCRCONTO 121
|
||||
|
||||
#define F_CODMOVCOM 123
|
||||
#define F_CODMOVCOM1 124
|
222
ve/batbspp.uml
Executable file
222
ve/batbspp.uml
Executable file
@ -0,0 +1,222 @@
|
||||
#include "BATBSPP.H"
|
||||
#define LF_PCON 19
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella spese e prestazioni " 11 60 14
|
||||
|
||||
STRING F_CODICE 3
|
||||
BEGIN
|
||||
PROMPT 3 1 "Cod. tabella "
|
||||
FIELD SPP->CODTAB
|
||||
KEY 1
|
||||
USE SPP
|
||||
FLAG "U"
|
||||
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50 " S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 3 2 "Descrizione "
|
||||
FIELD SPP->S0
|
||||
KEY 2
|
||||
USE SPP KEY 2
|
||||
|
||||
INPUT S0 F_DESCR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50 " S0
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODASSFIS 4
|
||||
BEGIN
|
||||
PROMPT 3 4 "Codice assogg. fiscale "
|
||||
FIELD SPP->S1[1,4]
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODASSFIS
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@30" S0
|
||||
OUTPUT F_CODASSFIS CODTAB
|
||||
OUTPUT F_CODASSFIS1 S0
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODASSFIS1 30
|
||||
BEGIN
|
||||
PROMPT 35 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_CODDIV 3
|
||||
BEGIN
|
||||
PROMPT 3 5 "Codice divisa "
|
||||
FIELD SPP->S1[5,7]
|
||||
USE CVA
|
||||
INPUT CODTAB F_CODDIV
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@30" S0
|
||||
OUTPUT F_CODDIV CODTAB
|
||||
OUTPUT F_CODDIV1 S0
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODDIV1 30
|
||||
BEGIN
|
||||
PROMPT 30 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_PREZZO 13 2
|
||||
BEGIN
|
||||
PROMPT 3 6 "Prezzo "
|
||||
FIELD SPP->R0
|
||||
END
|
||||
|
||||
NUMBER F_VALORE 13 2
|
||||
BEGIN
|
||||
PROMPT 30 6 "Valore "
|
||||
FIELD SPP->R1
|
||||
END
|
||||
|
||||
STRING F_NCAMPOCAL 2
|
||||
BEGIN
|
||||
PROMPT 3 7 "N° campo di calcolo "
|
||||
FIELD SPP->I0
|
||||
END
|
||||
|
||||
STRING F_NCAMPOCAL1 20
|
||||
BEGIN
|
||||
PROMPT 29 7 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_PERCENTUALE 5 2
|
||||
BEGIN
|
||||
PROMPT 51 7 "Percentuale "
|
||||
FIELD SPP->R2
|
||||
END
|
||||
|
||||
LISTBOX F_TIPO 8
|
||||
BEGIN
|
||||
PROMPT 3 8 "Tipo spesa "
|
||||
FIELD SPP->S1[9]
|
||||
ITEM "0|Spesa "
|
||||
ITEM "1|Merce "
|
||||
END
|
||||
|
||||
BOOLEAN F_INCASSO
|
||||
BEGIN
|
||||
PROMPT 3 10 "Spesa da incassare su prima rata "
|
||||
FIELD SPP->B0
|
||||
END
|
||||
|
||||
BOOLEAN F_STAMPA
|
||||
BEGIN
|
||||
PROMPT 3 11 "Stampa riga su corpo documento "
|
||||
FIELD SPP->B1
|
||||
END
|
||||
|
||||
STRING F_CODTABAGG 2
|
||||
BEGIN
|
||||
PROMPT 3 13 "Codice tabella agg. piede "
|
||||
FIELD SPP->S1[11,12]
|
||||
END
|
||||
|
||||
STRING F_CODTABAGG1 20
|
||||
BEGIN
|
||||
PROMPT 40 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_NCAMPOAUTOM 2
|
||||
BEGIN
|
||||
PROMPT 3 14 "Num. campo calcolo spese autom. "
|
||||
FIELD SPP->S1[14,15]
|
||||
END
|
||||
|
||||
STRING F_NCAMPOAUTOM1 15
|
||||
BEGIN
|
||||
PROMPT 40 14 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_SEGNO 1
|
||||
BEGIN
|
||||
PROMPT 57 14 "Segno "
|
||||
FIELD SPP->S1[17]
|
||||
END
|
||||
|
||||
STRING F_GRUPPO 2
|
||||
BEGIN
|
||||
PROMPT 3 15 "Conto di ric./costo "
|
||||
FIELD SPP->S2
|
||||
USE LF_PCON
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
INPUT SOTTOCONTO F_SOTTO
|
||||
DISPLAY "Gruppo " GRUPPO
|
||||
DISPLAY "Conto " CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_SOTTO SOTTOCONTO
|
||||
OUTPUT F_DESCRCONTO DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CONTO 2
|
||||
BEGIN
|
||||
PROMPT 29 15 ""
|
||||
FIELD SPP->S3
|
||||
END
|
||||
|
||||
STRING F_SOTTO 6
|
||||
BEGIN
|
||||
PROMPT 33 15 ""
|
||||
FIELD SPP->S4
|
||||
END
|
||||
|
||||
STRING F_DESCRCONTO 35
|
||||
BEGIN
|
||||
PROMPT 41 15 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODMOVCOM 2
|
||||
BEGIN
|
||||
PROMPT 3 16 "Codice movimento commessa "
|
||||
FIELD SPP->S1[19,20]
|
||||
END
|
||||
|
||||
STRING F_CODMOVCOM1 30
|
||||
BEGIN
|
||||
PROMPT 40 16 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 73 4
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
9
ve/batbspt.h
Executable file
9
ve/batbspt.h
Executable file
@ -0,0 +1,9 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR1 102
|
||||
#define F_DESCR2 103
|
||||
#define F_DESCR3 104
|
||||
#define F_DESCR4 105
|
||||
#define F_DESCR5 106
|
||||
#define F_DESCR6 107
|
||||
#define F_DESCR7 108
|
||||
#define F_DESCR 109
|
91
ve/batbspt.uml
Executable file
91
ve/batbspt.uml
Executable file
@ -0,0 +1,91 @@
|
||||
#include "BATBSPT.H"
|
||||
#define LF_ANAGR 47 //ANAGRAFICO ARTICOLI
|
||||
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio specifiche tecniche" 11 60 14
|
||||
|
||||
STRING F_CODICE 15
|
||||
BEGIN
|
||||
PROMPT 1 3 "Codice articolo "
|
||||
FIELD SPT->CODTAB
|
||||
KEY 1
|
||||
|
||||
USE LF_ANAGR
|
||||
FLAG "R"
|
||||
FLAG "U"
|
||||
INPUT CODART F_CODICE
|
||||
DISPLAY "Codice " CODART
|
||||
DISPLAY "Tipo " TIPO
|
||||
DISPLAY "Descrizione@50 " DESCR
|
||||
OUTPUT F_CODICE CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCR 30
|
||||
BEGIN
|
||||
PROMPT 38 3 ""
|
||||
KEY 2
|
||||
|
||||
USE LF_ANAGR KEY 2
|
||||
FLAG "R"
|
||||
INPUT DESCR F_DESCR
|
||||
DISPLAY "Codice " CODART
|
||||
DISPLAY "Tipo " TIPO
|
||||
DISPLAY "Descrizione@50 " DESCR
|
||||
OUTPUT F_CODICE CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
TEXT F_DESCR7
|
||||
BEGIN
|
||||
PROMPT 1 5 "Specifiche "
|
||||
END
|
||||
|
||||
STRING F_DESCR1 70
|
||||
BEGIN
|
||||
PROMPT 3 7 ""
|
||||
FIELD SPT->S0
|
||||
END
|
||||
|
||||
STRING F_DESCR2 70
|
||||
BEGIN
|
||||
PROMPT 3 8 ""
|
||||
FIELD SPT->S1
|
||||
END
|
||||
|
||||
STRING F_DESCR3 50
|
||||
BEGIN
|
||||
PROMPT 3 9 ""
|
||||
FIELD SPT->S2
|
||||
END
|
||||
|
||||
STRING F_DESCR4 20
|
||||
BEGIN
|
||||
PROMPT 3 10 ""
|
||||
FIELD SPT->S3
|
||||
END
|
||||
|
||||
STRING F_DESCR5 20
|
||||
BEGIN
|
||||
PROMPT 3 11 ""
|
||||
FIELD SPT->S4
|
||||
END
|
||||
|
||||
STRING F_DESCR6 20
|
||||
BEGIN
|
||||
PROMPT 3 12 ""
|
||||
FIELD SPT->S5
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
17
ve/batbtag.h
Executable file
17
ve/batbtag.h
Executable file
@ -0,0 +1,17 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR1 102
|
||||
#define F_DESCR2 103
|
||||
#define F_DESCR3 104
|
||||
#define F_DESCR4 105
|
||||
#define F_DESCR5 106
|
||||
#define F_DESCR6 107
|
||||
#define F_DESCR7 108
|
||||
#define F_DESCR8 109
|
||||
#define F_DESCR9 110
|
||||
#define F_DESCR10 111
|
||||
#define F_DESCR11 112
|
||||
#define F_DESCR12 113
|
||||
#define F_DESCR13 114
|
||||
#define F_DESCR14 115
|
||||
#define F_DESCR15 116
|
||||
#define TESTO 117
|
159
ve/batbtag.uml
Executable file
159
ve/batbtag.uml
Executable file
@ -0,0 +1,159 @@
|
||||
#include "BATBTAG.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione taglie" 11 60 14
|
||||
|
||||
STRING F_CODICE 2
|
||||
BEGIN
|
||||
PROMPT 3 4 "Codice della tabella "
|
||||
USE TAG
|
||||
FIELD TAG->CODTAB
|
||||
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_CODICE
|
||||
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Taglia 1 " S0[1,3]
|
||||
DISPLAY "Taglia 2 " S0[5,7]
|
||||
DISPLAY "Taglia 3 " S0[9,11]
|
||||
DISPLAY "Taglia 4 " S0[13,15]
|
||||
DISPLAY "Taglia 5 " S0[17,19]
|
||||
DISPLAY "Taglia 6 " S0[21,23]
|
||||
DISPLAY "Taglia 7 " S0[25,27]
|
||||
DISPLAY "Taglia 8 " S0[29,31]
|
||||
DISPLAY "Taglia 9 " S0[33,35]
|
||||
DISPLAY "Taglia 10 " S0[37,39]
|
||||
DISPLAY "Taglia 11 " S0[41,43]
|
||||
DISPLAY "Taglia 12 " S0[45,47]
|
||||
DISPLAY "Taglia 13 " S0[49,51]
|
||||
DISPLAY "Taglia 14 " S0[53,55]
|
||||
DISPLAY "Taglia 15 " S0[57,59]
|
||||
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR1 S0[1,3]
|
||||
OUTPUT F_DESCR2 S0[5,7]
|
||||
OUTPUT F_DESCR3 S0[9,11]
|
||||
OUTPUT F_DESCR4 S0[13,15]
|
||||
OUTPUT F_DESCR5 S0[17,19]
|
||||
OUTPUT F_DESCR6 S0[21,23]
|
||||
OUTPUT F_DESCR7 S0[25,27]
|
||||
OUTPUT F_DESCR8 S0[29,31]
|
||||
OUTPUT F_DESCR9 S0[33,35]
|
||||
OUTPUT F_DESCR10 S0[37,39]
|
||||
OUTPUT F_DESCR11 S0[41,43]
|
||||
OUTPUT F_DESCR12 S0[45,47]
|
||||
OUTPUT F_DESCR13 S0[49,51]
|
||||
OUTPUT F_DESCR14 S0[53,55]
|
||||
OUTPUT F_DESCR15 S0[57,59]
|
||||
KEY 1
|
||||
END
|
||||
|
||||
TEXT TESTO
|
||||
BEGIN
|
||||
PROMPT 3 6 "Taglie "
|
||||
END
|
||||
|
||||
STRING F_DESCR1 3
|
||||
BEGIN
|
||||
PROMPT 13 6 ""
|
||||
FIELD TAG->S0[1,3]
|
||||
END
|
||||
|
||||
STRING F_DESCR2 3
|
||||
BEGIN
|
||||
PROMPT 20 6 ""
|
||||
FIELD TAG->S0[5,7]
|
||||
END
|
||||
|
||||
STRING F_DESCR3 3
|
||||
BEGIN
|
||||
PROMPT 27 6 ""
|
||||
FIELD TAG->S0[9,11]
|
||||
END
|
||||
|
||||
STRING F_DESCR4 3
|
||||
BEGIN
|
||||
PROMPT 34 6 ""
|
||||
FIELD TAG->S0[13,15]
|
||||
END
|
||||
|
||||
STRING F_DESCR5 3
|
||||
BEGIN
|
||||
PROMPT 41 6 ""
|
||||
FIELD TAG->S0[17,19]
|
||||
END
|
||||
|
||||
STRING F_DESCR6 3
|
||||
BEGIN
|
||||
PROMPT 13 8 ""
|
||||
FIELD TAG->S0[21,23]
|
||||
END
|
||||
|
||||
STRING F_DESCR7 3
|
||||
BEGIN
|
||||
PROMPT 20 8 ""
|
||||
FIELD TAG->S0[25,27]
|
||||
END
|
||||
|
||||
STRING F_DESCR8 3
|
||||
BEGIN
|
||||
PROMPT 27 8 ""
|
||||
FIELD TAG->S0[29,31]
|
||||
END
|
||||
|
||||
STRING F_DESCR9 3
|
||||
BEGIN
|
||||
PROMPT 34 8 ""
|
||||
FIELD TAG->S0[33,35]
|
||||
END
|
||||
|
||||
STRING F_DESCR10 3
|
||||
BEGIN
|
||||
PROMPT 41 8 ""
|
||||
FIELD TAG->S0[37,39]
|
||||
END
|
||||
|
||||
STRING F_DESCR11 3
|
||||
BEGIN
|
||||
PROMPT 13 10 ""
|
||||
FIELD TAG->S0[41,43]
|
||||
END
|
||||
|
||||
STRING F_DESCR12 3
|
||||
BEGIN
|
||||
PROMPT 20 10 ""
|
||||
FIELD TAG->S0[45,47]
|
||||
END
|
||||
|
||||
STRING F_DESCR13 3
|
||||
BEGIN
|
||||
PROMPT 27 10 ""
|
||||
FIELD TAG->S0[49,51]
|
||||
END
|
||||
|
||||
STRING F_DESCR14 3
|
||||
BEGIN
|
||||
PROMPT 34 10 ""
|
||||
FIELD TAG->S0[53,55]
|
||||
END
|
||||
|
||||
STRING F_DESCR15 3
|
||||
BEGIN
|
||||
PROMPT 41 10 ""
|
||||
FIELD TAG->S0[57,59]
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 60 12
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
65
ve/batbtip.uml
Executable file
65
ve/batbtip.uml
Executable file
@ -0,0 +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 84 10
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
// FLAG "R"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice tipo di documento "
|
||||
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 40
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione tipo documento "
|
||||
FIELD S0
|
||||
HELP "Descrizione tipo documento"
|
||||
USE TIP
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODTAB CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING F_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 11 6 "Profilo documento "
|
||||
FIELD S4
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
STRING F_PSTAMPA 8
|
||||
BEGIN
|
||||
PROMPT 4 8 "Profilo stampa documento "
|
||||
FIELD S5
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
47
ve/batbtri.uml
Executable file
47
ve/batbtri.uml
Executable file
@ -0,0 +1,47 @@
|
||||
TOOLBAR "" 0 20 60 2
|
||||
|
||||
#include "toolbar.h"
|
||||
|
||||
ENDPAGE
|
||||
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_PROFILO 103
|
||||
|
||||
PAGE "Tabella tipi di riga" -1 -1 60 14
|
||||
|
||||
STRING F_CODICE 2
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice "
|
||||
FIELD CODTAB
|
||||
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 30
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
USE TRI
|
||||
INPUT S0 F_DESCR
|
||||
COPY DISPLAY F_CODICE
|
||||
COPY OUTPUT F_CODICE
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING f_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 6 "Profilo "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD S4
|
||||
END
|
||||
|
||||
END
|
||||
ENDMASK
|
9
ve/batbubi.h
Executable file
9
ve/batbubi.h
Executable file
@ -0,0 +1,9 @@
|
||||
#define F_CODICE 101
|
||||
#define F_TIPO 102
|
||||
#define F_DESCR 103
|
||||
#define F_VAL 104
|
||||
#define F_VAL1 105
|
||||
#define F_DATA 106
|
||||
|
||||
|
||||
|
102
ve/batbubi.uml
Executable file
102
ve/batbubi.uml
Executable file
@ -0,0 +1,102 @@
|
||||
#include "BATBUBI.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ubicazioni " 11 60 14
|
||||
|
||||
|
||||
STRING F_CODICE 10
|
||||
BEGIN
|
||||
PROMPT 4 4 "Codice ubicazione "
|
||||
FIELD UBI->CODTAB
|
||||
KEY 1
|
||||
USE UBI
|
||||
FLAG "U"
|
||||
FLAG "R"
|
||||
INPUT CODTAB F_CODICE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
DISPLAY "Piano " S6
|
||||
DISPLAY "Corridoio " S7
|
||||
DISPLAY "Fila " S8
|
||||
DISPLAY "Scaffale " S9
|
||||
DISPLAY "Piano scaffale " S5
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_PIANO S6
|
||||
OUTPUT F_CORRIDOIO S7
|
||||
OUTPUT F_FILA S8
|
||||
OUTPUT F_SCAFFALE S9
|
||||
OUTPUT F_PSCAFFALE S5
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_DESCR 40
|
||||
BEGIN
|
||||
PROMPT 4 6 "Descrizione "
|
||||
FIELD UBI->S0
|
||||
KEY 2
|
||||
USE UBI KEY 2
|
||||
INPUT S0 F_DESCR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
DISPLAY "Piano " S6
|
||||
DISPLAY "Corridoio " S7
|
||||
DISPLAY "Fila " S8
|
||||
DISPLAY "Scaffale " S9
|
||||
DISPLAY "Piano scaffale " S5
|
||||
OUTPUT F_CODICE CODTAB
|
||||
OUTPUT F_DESCR S0
|
||||
OUTPUT F_PIANO S6
|
||||
OUTPUT F_CORRIDOIO S7
|
||||
OUTPUT F_FILA S8
|
||||
OUTPUT F_SCAFFALE S9
|
||||
OUTPUT F_PSCAFFALE S5
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
END
|
||||
|
||||
STRING F_PIANO 4
|
||||
BEGIN
|
||||
PROMPT 4 8 "Piano "
|
||||
FIELD UBI->S6
|
||||
END
|
||||
|
||||
STRING F_CORRIDOIO 4
|
||||
BEGIN
|
||||
PROMPT 28 8 "Corridoio "
|
||||
FIELD UBI->S7
|
||||
END
|
||||
|
||||
STRING F_FILA 4
|
||||
BEGIN
|
||||
PROMPT 49 8 "Fila "
|
||||
FIELD UBI->S8
|
||||
END
|
||||
|
||||
STRING F_SCAFFALE 4
|
||||
BEGIN
|
||||
PROMPT 4 10 "Scaffale "
|
||||
FIELD UBI->S9
|
||||
END
|
||||
|
||||
STRING F_PSCAFFALE 4
|
||||
BEGIN
|
||||
PROMPT 23 10 "Piano scaffale "
|
||||
FIELD UBI->S5
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 11
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
31
ve/ve0.cpp
Executable file
31
ve/ve0.cpp
Executable file
@ -0,0 +1,31 @@
|
||||
#include <xvt.h>
|
||||
#include <strings.h>
|
||||
#include <checks.h>
|
||||
|
||||
#include "ve0.h"
|
||||
|
||||
#define usage "Errore - Utilizzo: %s -{0|1|2}"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 1:
|
||||
rt = ve0100( argc, argv );
|
||||
break;
|
||||
case 2:
|
||||
rt = ve0200( argc, argv );
|
||||
break;
|
||||
case 3:
|
||||
rt = ve0300( argc, argv );
|
||||
break;
|
||||
default:
|
||||
error_box( usage, argv[0] );
|
||||
break;
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
18
ve/ve0.h
Executable file
18
ve/ve0.h
Executable file
@ -0,0 +1,18 @@
|
||||
#ifndef __VE0_H
|
||||
#define __VE0_H
|
||||
|
||||
#ifdef MAIN
|
||||
#define extern
|
||||
#endif
|
||||
|
||||
int ve0100(int argc, char** argv); // Motore di gestione documenti
|
||||
int ve0200(int argc, char** argv); // Configurazione vendite
|
||||
int ve0300(int argc, char** argv); // Generatore di maschere
|
||||
|
||||
|
||||
#ifdef MAIN
|
||||
#undef extern
|
||||
#endif
|
||||
|
||||
#endif // __VE0_H
|
||||
|
27
ve/ve0.url
Executable file
27
ve/ve0.url
Executable file
@ -0,0 +1,27 @@
|
||||
#include "default.url"
|
||||
|
||||
MENU TASK_MENUBAR
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
||||
MENUBAR MENU_BAR(1)
|
||||
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
||||
MENUBAR MENU_BAR(2)
|
||||
|
||||
MENU MENU_BAR(2)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
MENUBAR MENU_BAR(3)
|
||||
|
||||
MENU MENU_BAR(3)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
886
ve/ve0100.cpp
Executable file
886
ve/ve0100.cpp
Executable file
@ -0,0 +1,886 @@
|
||||
#include <xvt_defs.h>
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __TABUTIL_H
|
||||
#include <tabutil.h>
|
||||
#endif
|
||||
|
||||
#ifndef __BRWAPP_H
|
||||
#include <brwapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LFFILES_H
|
||||
#include <lffiles.h>
|
||||
#endif
|
||||
|
||||
#ifndef __DEFMASK_H
|
||||
#include "defmask.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VEUML_H
|
||||
#include "\prassi\VEUML.H"
|
||||
#endif
|
||||
|
||||
#ifndef __SHEET_H
|
||||
#include <sheet.h>
|
||||
#endif
|
||||
|
||||
#ifndef __REAL_H
|
||||
#include <real.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MSKSHEET_H
|
||||
#include <msksheet.h>
|
||||
#endif
|
||||
|
||||
#ifndef __VE0100_H
|
||||
#include "VE0100.H"
|
||||
#endif
|
||||
|
||||
#ifndef __VE0100C_H
|
||||
#include "VE0100C.H"
|
||||
#endif
|
||||
|
||||
#ifndef __VE0100D_H
|
||||
#include "VE0100D.H"
|
||||
#endif
|
||||
|
||||
// Numero di colonne presenti sullo sheet totale
|
||||
#define MAX_COLUMNS 22
|
||||
|
||||
// Definizione della classe dell'applicazione motore
|
||||
class TMotore_application : public TRelation_application
|
||||
{
|
||||
// Array di totalizzatori
|
||||
real _piedi[79];
|
||||
|
||||
// Record array per la gestione delle righe
|
||||
TRecord_array* _righe_rec;
|
||||
|
||||
// Puntatore al profilo del documento caricato
|
||||
TConfig* _pro;
|
||||
|
||||
// Puntatore al nome, per evitare di ricrearlo se è uguale
|
||||
TFilename* _proname;
|
||||
|
||||
// Puntatore alla maschera di ricerca
|
||||
TMask* _msk;
|
||||
|
||||
// Puntatore alla maschera di modifica/inserimento ( dipende dal profilo )
|
||||
TMask* _msk1;
|
||||
|
||||
// puntatore alla relazione
|
||||
TRelation* _rel;
|
||||
|
||||
// Puntatore allo sheet delle righe documento
|
||||
TSheet_field* _sheet;
|
||||
|
||||
|
||||
// Ridefinizione dei metodi virtuali
|
||||
|
||||
virtual bool user_create( );
|
||||
virtual bool user_destroy( );
|
||||
virtual TMask* get_mask(int mode);
|
||||
virtual bool changing_mask(int mode);
|
||||
virtual TRelation* get_relation( ) const { return _rel;}
|
||||
|
||||
virtual int read( TMask& m );
|
||||
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
|
||||
|
||||
// Funzioni da associare ad ogni procedura
|
||||
int user_function( int index );
|
||||
|
||||
// Funzioni per il calcolo delle righe
|
||||
real user_row_calculate( TRectype& row, int index );
|
||||
|
||||
void user_set_handler( int index, int filedid );
|
||||
|
||||
long prossimo_numero( bool provv );
|
||||
int avanza_numero( bool provv );
|
||||
void get_edit_mask( void );
|
||||
void azzera_piedi( );
|
||||
|
||||
// Esegue, se c'è, la procedura utente relativa ad una certa operazione
|
||||
int esegui_procedura( int operazione );
|
||||
|
||||
protected:
|
||||
|
||||
// Procedure e funzioni per la gestione della maschera e dei files
|
||||
void read_rdoc(TMask& m);
|
||||
|
||||
// formato dipendente dallo sheet (sono le varie colonne)
|
||||
void load_riga( TSheet_field& f, int numrig, TRectype& r );
|
||||
void store_riga( TSheet_field& f, int numrig, TRectype& r );
|
||||
|
||||
void save(TRelation* r) const;
|
||||
void set_descr (int numrig, const char* descr);
|
||||
void carica_righe_libere(int from = -1);
|
||||
bool check_key( TLocalisamfile& rdoc, TString16 codnum, bool provv, TString16 _anno, TString16 _ndoc );
|
||||
|
||||
// Procedure e funzioni per la gestione degli stati
|
||||
void setta_stato_corrente( int nuovostato );
|
||||
const char* nome_sezione( int op );
|
||||
int stato_corrente( );
|
||||
int stato_finale( int operazione );
|
||||
bool stato_valido( int stato, int operazione );
|
||||
void segnala_stato_non_valido( int operazione );
|
||||
TString& stati_validi( int operazione ){ return ( pro( ).get( "STATIVALIDI", nome_sezione( operazione ) ) );};
|
||||
|
||||
void calcola_riga( TRectype& rdoc );
|
||||
|
||||
// Handle che ritorna la maschera per le righe
|
||||
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 );
|
||||
|
||||
// Handler per la maschera di ricerca
|
||||
static bool ndoc_handler(TMask_field& f, KEY key);
|
||||
static bool num_handler(TMask_field& f, KEY key);
|
||||
static bool tip_handler(TMask_field& f, KEY key);
|
||||
|
||||
// Configurazione dello sheet dato il profilo
|
||||
void configura_sheet( TSheet_field& sheet, TConfig& config );
|
||||
|
||||
public:
|
||||
|
||||
// Funzioni di accesso alle variabili privste
|
||||
|
||||
TRecord_array& righe_rec( ) { CHECK( _righe_rec, "Record array delle righe nullo!" ); return * _righe_rec; };
|
||||
TConfig& pro( ) { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; };
|
||||
TFilename& proname( ) { CHECK( _proname, "Nome del profilo nullo!" ); return *_proname; };
|
||||
TMask& query_mask( ) { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; };
|
||||
TMask& edit_mask( ) { CHECK( _msk1, "Maschera di modifica nulla!" ); return *_msk1; };
|
||||
TRelation& rel( ) { CHECK( _rel, "Relazione nulla!" ); return *_rel; };
|
||||
TSheet_field& sheet( ) { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; };
|
||||
|
||||
// Operazione
|
||||
|
||||
bool valida_operazione( int operazione );
|
||||
|
||||
TSheet_field& ss( ) const { return *_sheet; }
|
||||
TMotore_application( ) { _pro = NULL; }
|
||||
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
||||
virtual const char* get_next_key( );
|
||||
};
|
||||
|
||||
HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( ); }
|
||||
|
||||
|
||||
int TMotore_application::user_function( int index )
|
||||
{
|
||||
switch( index )
|
||||
{ case 1:
|
||||
break;
|
||||
default:
|
||||
yesnofatal_box( "Chiamata ad una procedura utente non definita: %d", index );
|
||||
return FALSE;
|
||||
break;
|
||||
};
|
||||
return NOERR;
|
||||
};
|
||||
|
||||
// Funzione che dato il profilo di riga ottiene la maschera
|
||||
// Serve per ottenere una maschera diversa per ogni riga
|
||||
// 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 ); }
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
};
|
||||
|
||||
void TMotore_application::user_set_handler( int fieldid, int index )
|
||||
{
|
||||
switch( index )
|
||||
{ case 100:
|
||||
// edit_mask( ).set_handler( fieldeid, myhandler );
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "tentativo di installare un handler non definito" );
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
bool TMotore_application::ss_handler( 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;
|
||||
tabtr.put( "CODTAB", m.get( F_LBTIPORIGA ) );
|
||||
tabtr.read( );
|
||||
TToken_string& riga = app( ).sheet( ).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;
|
||||
}
|
||||
return TRUE;
|
||||
};
|
||||
|
||||
bool TMotore_application::num_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
TMask& m = f.mask( );
|
||||
if (key == K_TAB && m.is_running( ) )
|
||||
{
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
tabnum.read( );
|
||||
m.set(F_DESNUM, tabnum.get("S0") );
|
||||
m.set(F_TIPIDOCS, tabnum.get("S2") );
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMotore_application::tip_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask( );
|
||||
if (key == K_TAB && m.is_running( ) )
|
||||
{
|
||||
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" );
|
||||
tabtip.read( );
|
||||
m.set(F_PROFILO, tabtip.get("S4") );
|
||||
};
|
||||
if (key == K_ENTER && m.is_running( ) )
|
||||
{ TString tipo( f.get( ) );
|
||||
if ( ! tipo.blank( ) )
|
||||
{ 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 TRUE;
|
||||
}
|
||||
|
||||
bool TMotore_application::ndoc_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask( );
|
||||
if (key == K_TAB && m.is_running( ) )
|
||||
{ TLocalisamfile& doc = app( ).rel( ).lfile( );
|
||||
doc.zero( );
|
||||
doc.put("CODNUM", m.get( F_CODNUM ) );
|
||||
doc.put("PROVV", m.get( F_PROVV ) );
|
||||
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.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;
|
||||
}
|
||||
|
||||
|
||||
void TMotore_application::azzera_piedi( )
|
||||
{
|
||||
for ( int i = 0; i < 40; i++ )
|
||||
_piedi[ i ] = 0.0;
|
||||
}
|
||||
bool TMotore_application::changing_mask(int mode)
|
||||
{
|
||||
static int lastmode = NO_MODE;
|
||||
|
||||
const bool change = ( mode != lastmode );
|
||||
lastmode = mode;
|
||||
return change;
|
||||
|
||||
}
|
||||
|
||||
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 );
|
||||
};
|
||||
|
||||
void TMotore_application::get_edit_mask( void )
|
||||
{
|
||||
TFilename fn;
|
||||
|
||||
fn = query_mask( ).get( F_PROFILO );
|
||||
query_mask( ).enable(DLG_NEWREC);
|
||||
fn.ext( "ini" );
|
||||
fn.upper( );
|
||||
if ( _pro )
|
||||
{ if( (*_proname) == fn ) return;
|
||||
delete _pro;
|
||||
};
|
||||
_pro = new TConfig( fn );
|
||||
_proname = new TFilename( fn );
|
||||
_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_DESNUM, query_mask( ).get( F_DESNUM ) );
|
||||
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
|
||||
sheet( ).set_notify( ss_handler );
|
||||
configura_sheet( *_sheet, *_pro );
|
||||
sheet( ).set_getmask( ss_getmask );
|
||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
||||
for( int 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 ) );
|
||||
};
|
||||
}
|
||||
|
||||
TMask* TMotore_application::get_mask( int mode )
|
||||
{
|
||||
switch ( mode )
|
||||
{
|
||||
case MODE_INS:
|
||||
case MODE_MOD:
|
||||
get_edit_mask( );
|
||||
edit_mask( ).enable( DLG_PRINT, ( mode == MODE_MOD ) );
|
||||
edit_mask( ).enable( 99, ( mode == MODE_MOD ) );
|
||||
return ( _msk1 );
|
||||
break;
|
||||
default:
|
||||
return _msk;
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
void TMotore_application::set_descr(int i, const char * dfi)
|
||||
{
|
||||
TToken_string& r = ss( ).row(i);
|
||||
r.add(dfi, 0);
|
||||
}
|
||||
|
||||
void TMotore_application::carica_righe_libere(int from)
|
||||
{
|
||||
if (from < 0) from = ss( ).items( );
|
||||
for (int i = from; i < 20; 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;
|
||||
|
||||
_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 );
|
||||
}
|
||||
|
||||
int TMotore_application::read(TMask& m)
|
||||
{
|
||||
azzera_piedi( );
|
||||
int err = TRelation_application::read( m );
|
||||
if ( err == NOERR )
|
||||
{ TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
|
||||
TRectype r = rdoc.curr( );
|
||||
r.zero( );
|
||||
r.put( "CODNUM", m.get( F_CODNUM ) );
|
||||
r.put( "PROVV", m.get( F_PROVV ) );
|
||||
r.put( "ANNO", m.get( F_ANNO ) );
|
||||
r.put( "NDOC", m.get_long( F_NDOC ) );
|
||||
_righe_rec->read( r );
|
||||
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET );
|
||||
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 );
|
||||
}
|
||||
|
||||
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( );
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TMotore_application::check_key( TLocalisamfile& rdoc, TString16 codnum, bool provv, TString16 anno, TString16 ndoc )
|
||||
{
|
||||
return ( ( rdoc.get("CODNUM") == codnum ) &&
|
||||
( rdoc.get("NDOC") == ndoc ) &&
|
||||
( rdoc.get("ANNO" ) == anno ) &&
|
||||
( 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( );
|
||||
}
|
||||
}
|
||||
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( );
|
||||
}
|
||||
return err;
|
||||
};
|
||||
|
||||
|
||||
// La funzione si trova in ve0100b
|
||||
|
||||
long TMotore_application::prossimo_numero( bool provv )
|
||||
{
|
||||
long ret;
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
tabnum.read( );
|
||||
if ( provv )
|
||||
ret = tabnum.get_long( "I0" ) + 1;
|
||||
else
|
||||
ret = tabnum.get_long( "I1" ) + 1;
|
||||
return ( ret );
|
||||
};
|
||||
|
||||
int TMotore_application::avanza_numero( bool provv )
|
||||
{
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
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( );
|
||||
}
|
||||
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 ) )
|
||||
return FALSE;
|
||||
return TRelation_application::remove && ( _righe_rec->remove( ) == NOERR );
|
||||
}
|
||||
|
||||
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" ) );
|
||||
riga.add( r.get( "DESCR" ) );
|
||||
riga.add( r.get( "DESCLUNGA" ) );
|
||||
riga.add( r.get( "PREZZO" ) );
|
||||
riga.add( r.get( "UMQTA" ) );
|
||||
riga.add( r.get_real( "QTA" ).string(11) );
|
||||
riga.add( r.get( "QTAEVASA" ) );
|
||||
riga.add( r.get( "RIGAEVASA" ) );
|
||||
riga.add( r.get( "TARA" ) );
|
||||
}
|
||||
|
||||
void TMotore_application::store_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||
{
|
||||
TToken_string& riga = f.row(numrig);
|
||||
|
||||
r.put( "CODNUM", edit_mask( ).get( F_CODNUM ) );
|
||||
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 ) );
|
||||
r.put( "CODMAG", riga.get( 3 ) );
|
||||
r.put( "CODART", riga.get( 4 ) );
|
||||
r.put( "DESCR", riga.get( 5 ) );
|
||||
r.put( "DESCLUNGA", riga.get( 6 ) );
|
||||
r.put( "PREZZO", riga.get( 7 ) );
|
||||
r.put( "UMQTA", riga.get( 8 ) );
|
||||
r.put( "QTA", riga.get( 9 ) );
|
||||
r.put( "QTAEVASA", riga.get( 10 ) );
|
||||
r.put( "RIGAEVASA", riga.get( 11 ) );
|
||||
r.put( "TARA", riga.get( 12 ) );
|
||||
}
|
||||
|
||||
|
||||
void TMotore_application::calcola_riga( TRectype& r )
|
||||
{
|
||||
TFilename proriganame( r.get("PROFRIGA") );
|
||||
proriganame.ext( "INI" );
|
||||
TConfig proriga( proriganame );
|
||||
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( );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
bool TMotore_application::user_destroy( )
|
||||
{
|
||||
// Se è ancora allocata, distruggo la maschera di modifica
|
||||
if ( _msk1 ) delete _msk1;
|
||||
|
||||
// Distruggo la maschera di modifica
|
||||
delete _msk;
|
||||
|
||||
// Distruggo la relazione
|
||||
delete _rel;
|
||||
|
||||
// Distruggo il Record_array
|
||||
delete _righe_rec;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int TMotore_application::esegui_procedura( int operazione )
|
||||
{
|
||||
// Accesso unico alla chiamata di procedure tramite operazione
|
||||
int index = ( int )pro( ).get_long( nome_sezione( operazione ), "MAIN" );
|
||||
if ( index )
|
||||
return ( user_function( index ) );
|
||||
return ( NOERR );
|
||||
}
|
||||
|
||||
|
||||
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 ( 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;
|
||||
};
|
||||
}
|
||||
|
||||
int TMotore_application::stato_finale( int operazione )
|
||||
{
|
||||
TString s( pro( ).get( "STATOFINALE", nome_sezione( operazione ) ) );
|
||||
if( strcmp( s, "N" ) == 0 ) return NO_CHANGE_STATUS;
|
||||
return ( atoi( s ) );
|
||||
};
|
||||
|
||||
bool TMotore_application::stato_valido( int stato, int operazione )
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
warning_box( "Controllo stati validi!\nStato corrente %d.\nStati validi %s.", stato_corrente( ), ( const char * )stati_validi( operazione ) );
|
||||
#endif
|
||||
char p[2] = "0";
|
||||
TToken_string ret ( stati_validi( operazione ), ',' );
|
||||
p[0] += (char)stato;
|
||||
return ( ret.get_pos( p ) != -1 );
|
||||
};
|
||||
|
||||
void TMotore_application::setta_stato_corrente( int nuovostato )
|
||||
{
|
||||
// warning_box( "Settaggio stati validi!\nStato corrente %s.\nStati validi %s.\nStato finale %s.", stato_corrente( ), stati_validi( operazione ), stato_finale( operazione ) );
|
||||
TString p;
|
||||
p.format( "%d", nuovostato );
|
||||
|
||||
TLocalisamfile& doc = rel( ).lfile(LF_DOC);
|
||||
|
||||
p[0] += (char)nuovostato;
|
||||
doc.put("STATO", p);
|
||||
doc.rewrite( );
|
||||
query_mask( ).set( F_STATO, p );
|
||||
// warning_box( "Settaggio stati validi!\nStato corrente %s.\nStati validi %s.\nStato finale %s.", stato_corrente( ), stati_validi( operazione ), stato_finale( operazione ) );
|
||||
}
|
||||
|
||||
int TMotore_application::stato_corrente( )
|
||||
{
|
||||
int i = query_mask( ).get_int( F_STATO );
|
||||
return ( i == 0 ? NO_DOC_STATUS : i );
|
||||
};
|
||||
|
||||
void TMotore_application::segnala_stato_non_valido( int operazione )
|
||||
{
|
||||
TString messaggio;
|
||||
switch( operazione )
|
||||
{
|
||||
case OP_NUOVO:
|
||||
// Sempre valido
|
||||
break;
|
||||
case OP_MODIFICA:
|
||||
messaggio = "Il documento non si trova in uno stato valido per poter essere modificato!";
|
||||
break;
|
||||
case OP_CANCELLA:
|
||||
messaggio = "Il documento non si trova in uno stato valido per poter essere cancellato!";
|
||||
break;
|
||||
case OP_STAMPA:
|
||||
messaggio = "Il documento non si trova in uno stato valido per poter essere stampato!";
|
||||
break;
|
||||
case OP_RAGGRUPPA:
|
||||
messaggio = "Il documento non si trova in uno stato valido per poter essere raggruppato!";
|
||||
break;
|
||||
case OP_USER:
|
||||
messaggio = "Il documento non si trova in uno stato valido per effettuare la operazione richiesta!";
|
||||
break;
|
||||
default:
|
||||
CHECK( FALSE, "Tentativo di segnalare stato non valido di una operazione non esistente!" );
|
||||
break;
|
||||
};
|
||||
messaggio << "\nStato corrente :%d.\nStati validi :%s.";
|
||||
warning_box( messaggio, stato_corrente( ), ( const char * )stati_validi( operazione ) );
|
||||
};
|
||||
|
||||
int ve0100(int argc, char** argv)
|
||||
{
|
||||
TMotore_application a;
|
||||
|
||||
a.run(argc, argv, "Gestione documenti");
|
||||
return 0;
|
||||
}
|
17
ve/ve0100.h
Executable file
17
ve/ve0100.h
Executable file
@ -0,0 +1,17 @@
|
||||
#define _VE0100_H
|
||||
// Operazioni che può fare il motore su un documento
|
||||
|
||||
#define OP_NUOVO 1
|
||||
#define OP_MODIFICA 2
|
||||
#define OP_CANCELLA 3
|
||||
#define OP_STAMPA 4
|
||||
#define OP_RAGGRUPPA 5
|
||||
#define OP_USER 6
|
||||
|
||||
// Costante per il non-cambiamento di stato
|
||||
|
||||
#define NO_CHANGE_STATUS -1
|
||||
#define NO_DOC_STATUS -2
|
||||
|
||||
#define F_SHEET 500
|
||||
#define BASE_PIEDE 600
|
34
ve/ve0100b.cpp
Executable file
34
ve/ve0100b.cpp
Executable file
@ -0,0 +1,34 @@
|
||||
int numerazione_definitiva( TRectype& rec )
|
||||
{ TTable tabnum( "NUM" );
|
||||
TRectype* oldrec( rec.dup );
|
||||
|
||||
tabnum.zero( );
|
||||
tabnum.set( "CODTAB", rec.get( "CODNUM" ) );
|
||||
int err = tabnum.read( _islock );
|
||||
// Modifico la chiave del record passato!
|
||||
rec.set( "NDOC", tabnum.get_long( "I1" ) );
|
||||
rec.set( "PROVV", "D" );
|
||||
|
||||
|
||||
if ( err == NOERR )
|
||||
{ // Aggiorno la tabella!
|
||||
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||||
err = tabnum.rewrite();
|
||||
}
|
||||
int err = tabnum.read( _isunlock );
|
||||
if ( err = NOERR )
|
||||
{
|
||||
// carico le righe usando la vecchia chiave
|
||||
TRecord_array righe_rec( LF_RIGHEDOC, "NRIGA" );
|
||||
righe_rec.read( r );
|
||||
int last = righe_rec->last_row();
|
||||
for ( int i = 1; i <= last; i ++ )
|
||||
{ // Le aggiorno con la nuova chiave
|
||||
TRectype &rigarec = righe_rec->row( i, TRUE );
|
||||
rigarec.set( "PROVV", "D" );
|
||||
rigarec.set( "NDOC", rec.get( "NDOC" ) );
|
||||
}
|
||||
righe_rec.rewrite( );
|
||||
};
|
||||
return err;
|
||||
};
|
6
ve/ve0100c.cpp
Executable file
6
ve/ve0100c.cpp
Executable file
@ -0,0 +1,6 @@
|
||||
// Handler di marco sui campi delle maschere
|
||||
#ifndef __VE0100C_H
|
||||
#include "ve0100c.h"
|
||||
#endif
|
||||
|
||||
|
1
ve/ve0100c.h
Executable file
1
ve/ve0100c.h
Executable file
@ -0,0 +1 @@
|
||||
#define __VE0100C_H
|
8
ve/ve0100d.cpp
Executable file
8
ve/ve0100d.cpp
Executable file
@ -0,0 +1,8 @@
|
||||
#ifndef __VE0100D_H
|
||||
#include "ve0100d.h"
|
||||
#endif
|
||||
|
||||
real f100( TRectype& r )
|
||||
{
|
||||
return( r.get_real( "PREZZO" ) * r.get_real( "QTA" ) );
|
||||
};
|
12
ve/ve0100d.h
Executable file
12
ve/ve0100d.h
Executable file
@ -0,0 +1,12 @@
|
||||
#define __VE0100D_H
|
||||
|
||||
#ifndef __REAL_H
|
||||
#include "real.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ISAM_H
|
||||
#include "isam.h"
|
||||
#endif
|
||||
|
||||
|
||||
real f100( TRectype& r );
|
67
ve/ve0200.cpp
Executable file
67
ve/ve0200.cpp
Executable file
@ -0,0 +1,67 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CONFAPP_H
|
||||
#include <confapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __EXECP_H
|
||||
#include <execp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __TABUTIL_H
|
||||
#include <tabutil.h>
|
||||
#endif
|
||||
|
||||
// #include "ve5.h"
|
||||
|
||||
class Conf_vendite_app : public TConfig_application
|
||||
{
|
||||
|
||||
public:
|
||||
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
||||
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
||||
|
||||
Conf_vendite_app() : TConfig_application(CONFIG_DITTA) {}
|
||||
virtual ~Conf_vendite_app() {}
|
||||
};
|
||||
|
||||
bool Conf_vendite_app::preprocess_config (TMask& mask, TConfig& config)
|
||||
{
|
||||
disable_menu_item(M_FILE_NEW);
|
||||
disable_menu_item(M_FILE_REVERT);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Conf_vendite_app::postprocess_config(TMask& mask, TConfig& config)
|
||||
{ TExternal_app *cl;
|
||||
TTable t("TIP");
|
||||
t.first();
|
||||
while( ! t.eof() )
|
||||
{
|
||||
TString s( "Eseguirò \"vegenmsk " );
|
||||
s << t.get( "S1" );
|
||||
s << "\"!";
|
||||
message_box( s );
|
||||
s = "vegenmsk ";
|
||||
s << t.get( "S1" );
|
||||
cl = new TExternal_app( s );
|
||||
cl->run( );
|
||||
delete cl;
|
||||
t.next();
|
||||
}
|
||||
enable_menu_item(M_FILE_NEW);
|
||||
enable_menu_item(M_FILE_REVERT);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ve0200(int argc, char** argv)
|
||||
{
|
||||
Conf_vendite_app appc;
|
||||
|
||||
appc.run(argc, argv, "Parametri gestione vendite");
|
||||
return 0;
|
||||
}
|
700
ve/ve0300.cpp
Executable file
700
ve/ve0300.cpp
Executable file
@ -0,0 +1,700 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
"Compilatore di profili" per la gestione vendite.
|
||||
Considerando:
|
||||
- Profilo documento
|
||||
- Configurazione vendite per la ditta
|
||||
- Condizioni atmosferiche
|
||||
genera le maschere appropriate.
|
||||
Accetta sulla riga di comando il nome del profilo documento per cui deve generare
|
||||
la maschera. Il nome del file .MSK viene dedotto dal profilo documento stesso.
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef XVT_INCL_DEFS
|
||||
#include <xvt_defs.h>
|
||||
#endif
|
||||
|
||||
#include "\prassi\veuml.h"
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __FSTREAM_H
|
||||
#include <fstream.h>
|
||||
#endif
|
||||
|
||||
#ifndef __SCANNER_H
|
||||
#include <scanner.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef __APPLICATION_H
|
||||
#include <applicat.h>
|
||||
#endif
|
||||
|
||||
#ifndef __UTILITY_H
|
||||
#include <utility.h>
|
||||
#endif
|
||||
|
||||
#ifndef __DEFMASK_H
|
||||
#include <defmask.h>
|
||||
#endif
|
||||
|
||||
#ifndef __VE0100_H
|
||||
#include "ve0100.h"
|
||||
#endif
|
||||
|
||||
// Costanti simboliche per i tipi di campo
|
||||
|
||||
#define T_DATE 1
|
||||
#define T_STRING 2
|
||||
#define T_NUMBER 3
|
||||
#define T_BOOLEAN 4
|
||||
#define T_LISTBOX 5
|
||||
#define T_MEMO 6
|
||||
|
||||
// Costanti simboliche per flags del campo
|
||||
|
||||
#define FS_HIDDEN 0
|
||||
#define FS_DISABLED 1
|
||||
#define FS_NORMAL 2
|
||||
#define FS_REQUIRED 3
|
||||
|
||||
// Significato delle colonne nella tabella _tab0300a
|
||||
|
||||
#define A_NOME 0
|
||||
#define A_FILEFLD 1
|
||||
#define A_MSKFLD 2
|
||||
#define A_MSKTYPE 3
|
||||
#define A_DESCR 4
|
||||
#define A_MSKSIZE 5
|
||||
#define A_FLAG 6
|
||||
#define A_USE 7
|
||||
#define A_INPUT 8
|
||||
#define A_DISPLAY 9
|
||||
#define A_OUTPUT 10
|
||||
#define A_SPECIAL 11
|
||||
#define A_ITEMS 12
|
||||
|
||||
// Significato delle colonne nella tabella _tab0300b
|
||||
#define B_NOME 0
|
||||
#define B_MSKTYPE 1
|
||||
#define B_MSKSIZE 2
|
||||
#define B_DESCR 3
|
||||
#define B_WIDTH 4
|
||||
|
||||
// Numero massimo di linee per pagina
|
||||
|
||||
#define MAX_LINES_PER_PAGE 14
|
||||
|
||||
|
||||
class TMask_generator
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
// Identificatore corrente per lo sheet
|
||||
int _curid;
|
||||
|
||||
// Linea corrente
|
||||
int _curline;
|
||||
|
||||
// Pagina corrente
|
||||
int _curpage;
|
||||
|
||||
// Vero se la pagina è aperta
|
||||
bool _pageopen;
|
||||
|
||||
// nome del file di .INI di input
|
||||
TFilename _proname;
|
||||
|
||||
// File .INI di input
|
||||
TConfig* _pro;
|
||||
|
||||
// File .MSK di output
|
||||
ofstream* _out;
|
||||
|
||||
// Ultima linea letta
|
||||
TToken_string _line;
|
||||
|
||||
// Tabelle per la generazione
|
||||
|
||||
// Campi dei documenti
|
||||
TString_array _tab0300a;
|
||||
|
||||
// Campi dello sheet
|
||||
TString_array _tab0300b;
|
||||
|
||||
protected:
|
||||
|
||||
// Carica un file di tabella in un TString array
|
||||
void carica_tabella( const TFilename& fn, TString_array& tabella );
|
||||
|
||||
// Scrive sul file di output una serie di righe uguali per funzione ( DISPLAY, ecc. )
|
||||
void outline( const TString& s = "", const TString& prefix = "", const char sep = '~' );
|
||||
|
||||
|
||||
// Crea un controllo del tipo specificato
|
||||
void control( const int type, const int id = DLG_NULL, const int size = -1 );
|
||||
|
||||
// Ritorna vero se una componente della maschera è presente
|
||||
int present( const int i, TToken_string line ){ const TString s = line.get( i ); return !(s.blank( )); };
|
||||
|
||||
// Funzioni per generare la maschera
|
||||
// ---------------------------------
|
||||
|
||||
// CHECKTYPE
|
||||
void check( const int i );
|
||||
|
||||
// PAGE
|
||||
void pagina( const int i ){ (*_out) << "PA \"Pagina " << i << "\" 11 60 14\n"; };
|
||||
|
||||
// PROMPT
|
||||
void prompt( const int x, const int y, const TString& s = "" ){ (*_out) << "PR " << x << " " << y << " \"" << s << "\"\n"; };
|
||||
|
||||
// BEGIN
|
||||
void begin( void ) { outline ( "BE" ); };
|
||||
|
||||
// END
|
||||
void end( void ) { outline ( "EN" ); };
|
||||
|
||||
// ENDMASK
|
||||
void endmask( void ) { outline ( "ENDMASK" ); };
|
||||
|
||||
// FLAG
|
||||
void flag( const TString& s ) { (*_out) << "FLAG \"" << s << "\"\n"; };
|
||||
|
||||
// GROUP
|
||||
void group( const int g ) { (*_out) << "GR " << g << "\n"; };
|
||||
|
||||
// FIELD
|
||||
void field( const TString& s ) { outline( s, "FI "); };
|
||||
|
||||
// ITEM
|
||||
void item( const TString& s );
|
||||
|
||||
// MESSAGE
|
||||
void message( const TString& s ) { outline( s, "ME "); };
|
||||
|
||||
// USE
|
||||
void use( const TString& s ){ outline( s, "US " ); };
|
||||
|
||||
// DISPLAY
|
||||
void display( const TString& s ){ outline( s, "DI " ); };
|
||||
|
||||
// INPUT
|
||||
void input( const TString& s ){ outline( s, "IN " ); };
|
||||
|
||||
// OUTPUT
|
||||
void output( const TString& s ){ outline( s, "OU " ); };
|
||||
|
||||
// Funzioni di accesso alle variabili private
|
||||
// ------------------------------------------
|
||||
|
||||
// Funzioni per la lettura/scrittura di ID. Si incrementa da solo.
|
||||
int id ( ) { return( _curid++ ); };
|
||||
void id( const int i ){ _curid = i; };
|
||||
|
||||
// Funzioni per la lettura/scrittura di CURPAGE
|
||||
int page( ) { return _curpage; };
|
||||
void page( const int i ){ _curpage = i; };
|
||||
|
||||
// Funzioni per la lettura/scrittura di CURLINE
|
||||
int line( ) { return _curline; };
|
||||
void line( const int i ){ _curline = i; };
|
||||
|
||||
// Funzioni di generazione ad alto livello
|
||||
// ---------------------------------------
|
||||
|
||||
// Genera un campo a partire da una linea del file VE0300A.DAT
|
||||
void genera_campo( TToken_string _line );
|
||||
|
||||
// Genera un campo dello sheet a partire da una linea del file VE0300B.DAT
|
||||
void genera_campo_sheet( TToken_string _line );
|
||||
|
||||
|
||||
// Genera la colonna dello sheet a partire da una linea del file VE0300B.DAT
|
||||
void genera_item_sheet( TToken_string _line );
|
||||
|
||||
// Genera l'intestazione di una pagina ( non la prima )
|
||||
void intestazione_pagina( );
|
||||
|
||||
public:
|
||||
|
||||
// Costruttore, vuole il nome del file .INI
|
||||
TMask_generator( const TString& profilo );
|
||||
|
||||
// Attiva la generazione della maschera
|
||||
void genera( );
|
||||
|
||||
// Distruttore
|
||||
virtual ~TMask_generator( );
|
||||
|
||||
};
|
||||
|
||||
// Definizione dei metodi di TMask_generator
|
||||
// -----------------------------------------
|
||||
|
||||
TMask_generator::TMask_generator( const TString& profilo ) : _proname( profilo )
|
||||
{
|
||||
// All'inizio la pagina è 'chiusa'
|
||||
_pageopen = FALSE;
|
||||
|
||||
// La pagina iniziale è la 1
|
||||
_curpage = 1;
|
||||
|
||||
// La linea iniziale è la 8
|
||||
_curline = 8;
|
||||
|
||||
// Forza l'estensione al profilo
|
||||
_proname.ext( "ini" );
|
||||
|
||||
// Se il file di profilo non esiste, esci con un errore fatale
|
||||
if ( !fexist( _proname ) )
|
||||
fatal_box( "Il file %s non esiste!", _proname );
|
||||
|
||||
CHECK( fexist( "ve0300a.dat" ), "Il file ve0300a.dat non esiste!" );
|
||||
carica_tabella( "ve0300a.dat", _tab0300a );
|
||||
CHECK( fexist( "ve0300b.dat" ), "Il file ve0300b.dat non esiste!" );
|
||||
carica_tabella( "ve0300b.dat", _tab0300b );
|
||||
|
||||
};
|
||||
|
||||
TMask_generator::~TMask_generator( )
|
||||
{
|
||||
delete _out;
|
||||
};
|
||||
|
||||
void TMask_generator::carica_tabella( const TFilename& fn, TString_array& tabella )
|
||||
{ TScanner in( fn );
|
||||
TToken_string line = in.line();
|
||||
while( line.not_empty( ) )
|
||||
{ // Attacca tutte le righe che finiscono con §
|
||||
while ( line.right( 1 ) == "§" )
|
||||
{ line.rtrim( 1 );
|
||||
line << in.line( );
|
||||
};
|
||||
tabella.add( line );
|
||||
line = in.line();
|
||||
}
|
||||
};
|
||||
|
||||
void TMask_generator::outline( const TString& s, const TString& prefix, const char sep )
|
||||
{
|
||||
if ( s.left( 1 ) == "§" )
|
||||
(*_out) << "CO " << prefix << s.mid( 1 ) << "\n";
|
||||
else
|
||||
{ TToken_string u( s, sep );
|
||||
for ( int i = 0; i < u.items(); i ++ )
|
||||
(*_out) << prefix << u.get( i ) << "\n";
|
||||
}
|
||||
};
|
||||
|
||||
void TMask_generator::check( const int i )
|
||||
{
|
||||
switch( i )
|
||||
{
|
||||
case FS_REQUIRED:
|
||||
outline ( "CH REQUIRED" );
|
||||
break;
|
||||
default:
|
||||
outline ( "CH NORMAL" );
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
void TMask_generator::control( const int type, const int id, const int size )
|
||||
{
|
||||
switch ( type )
|
||||
{ case T_DATE : (*_out) << "DA"; break;
|
||||
case T_STRING : (*_out) << "ST"; break;
|
||||
case T_BOOLEAN : (*_out) << "BO"; break;
|
||||
case T_NUMBER : (*_out) << "NU"; break;
|
||||
case T_LISTBOX : (*_out) << "LI"; break;
|
||||
};
|
||||
(*_out) << " " << id;
|
||||
if ( size > 0 )
|
||||
if ( size > 100 )
|
||||
(*_out) << " " << ( int )( size / 100 ) << " " << ( size % 100 );
|
||||
else
|
||||
(*_out) << " " << size;
|
||||
(*_out) << "\n";
|
||||
};
|
||||
|
||||
void TMask_generator::item( const TString& str )
|
||||
{ int i, j;
|
||||
TToken_string u( str, '~' );
|
||||
TString s, mess;
|
||||
|
||||
for( i = 0; i < u.items(); i ++ )
|
||||
{ s = u.get( i );
|
||||
if ( ( j = s.find( "£" ) ) != -1 )
|
||||
{ mess = s.mid( j + 1 );
|
||||
s = s.left( j );
|
||||
};
|
||||
if ( ( j = s.find ( "§" ) ) != -1 )
|
||||
s[ j ] = '|';
|
||||
(*_out) << "IT \"" << s << "\"\n";
|
||||
if ( mess.not_empty( ) )
|
||||
(*_out) << "ME " << mess << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
void TMask_generator::genera_campo_sheet( TToken_string _line )
|
||||
{
|
||||
const int type( _line.get_int( B_MSKTYPE ) );
|
||||
control( type, id( ), _line.get_int( B_MSKSIZE ) );
|
||||
begin( );
|
||||
prompt( 2, 2 );
|
||||
end( );
|
||||
}
|
||||
|
||||
void TMask_generator::genera_item_sheet( TToken_string _line )
|
||||
{
|
||||
(*_out) << "IT \"" << _line.get( B_DESCR );
|
||||
(*_out) << "@" << _line.get_int( B_WIDTH ) << "\"\n";
|
||||
}
|
||||
|
||||
void TMask_generator::genera_campo( TToken_string _line )
|
||||
{
|
||||
TString s;
|
||||
|
||||
const int type( _line.get_int( A_MSKTYPE ) );
|
||||
const int size( _line.get_int( A_MSKSIZE ) );
|
||||
if ( present( A_MSKSIZE, _line ) )
|
||||
control( type, _line.get_int( A_MSKFLD ), size );
|
||||
else
|
||||
control( type, _line.get_int( A_MSKFLD ) );
|
||||
begin();
|
||||
|
||||
TString name( _line.get( A_NOME ) );
|
||||
name.trim();
|
||||
int value = _pro->get_int( name, "PROFILO" );
|
||||
switch( value )
|
||||
{ case FS_HIDDEN:
|
||||
prompt( 2, 2 );
|
||||
s = "H";
|
||||
s << _line.get( A_FLAG );
|
||||
flag( s ) ;
|
||||
break;
|
||||
case FS_DISABLED :
|
||||
prompt( 2, line( ), _line.get( A_DESCR ) );
|
||||
s = "D";
|
||||
s << _line.get( A_FLAG );
|
||||
flag( s ) ;
|
||||
line( line( ) + 1 );
|
||||
break;
|
||||
case FS_NORMAL :
|
||||
case FS_REQUIRED :
|
||||
prompt( 2, line( ), _line.get( A_DESCR ) );
|
||||
flag( _line.get( A_FLAG ) );
|
||||
line( line( ) + 1 );
|
||||
break;
|
||||
}
|
||||
const TString chiave( _line.get( A_NOME ) );
|
||||
check( _pro->get_int( chiave, "PROFILO" ) );
|
||||
if ( present( A_FILEFLD, _line ) ) field( _line.get( A_FILEFLD ) );
|
||||
if ( present( A_ITEMS, _line ) ) item( _line.get( A_ITEMS ) );
|
||||
if ( present( A_USE, _line ) ) use( _line.get( A_USE ) );
|
||||
if ( present( A_INPUT, _line ) ) input( _line.get( A_INPUT ) );
|
||||
if ( present( A_DISPLAY, _line ) ) display( _line.get( A_DISPLAY ) );
|
||||
if ( present( A_OUTPUT, _line ) ) output( _line.get( A_OUTPUT ) );
|
||||
if ( present( A_SPECIAL, _line ) ) outline( _line.get( A_SPECIAL ) );
|
||||
end();
|
||||
if ( ( line() > MAX_LINES_PER_PAGE ) && ( _pageopen == TRUE))
|
||||
{ end();
|
||||
_pageopen = FALSE;
|
||||
line( 8 );
|
||||
};
|
||||
}
|
||||
|
||||
void TMask_generator::intestazione_pagina( )
|
||||
{
|
||||
page( page( ) + 1 );
|
||||
pagina( page( ) );
|
||||
(*_out) << "GR " << DLG_NULL << " 77 4\n";
|
||||
begin();
|
||||
prompt( 1, 1 );
|
||||
end();
|
||||
|
||||
control( T_STRING, DLG_NULL, 4 );
|
||||
begin();
|
||||
prompt( 2, 2, "Codice numerazione " );
|
||||
group( 2 );
|
||||
flag( "DUZ" );
|
||||
end();
|
||||
|
||||
control( T_STRING, DLG_NULL, 40 );
|
||||
begin();
|
||||
prompt( 32, 2 );
|
||||
flag( "DU" );
|
||||
group( 3 );
|
||||
end();
|
||||
|
||||
control( T_STRING, DLG_NULL, 12 );
|
||||
begin();
|
||||
prompt( 32, 3, "Profilo :" );
|
||||
flag( "DU" );
|
||||
group( 4 );
|
||||
end();
|
||||
|
||||
control( T_STRING, DLG_NULL, 4 );
|
||||
begin();
|
||||
prompt( 2, 3, "Esercizio " );
|
||||
flag( "D" );
|
||||
group( 5 );
|
||||
end();
|
||||
|
||||
control( T_LISTBOX, DLG_NULL, 14 );
|
||||
begin();
|
||||
prompt( 32, 5, "Numerazione " );
|
||||
item( "P§Provvisoria" );
|
||||
item( "D§Definitiva " );
|
||||
flag( "D" );
|
||||
group( 6 );
|
||||
end();
|
||||
|
||||
control( T_NUMBER, DLG_NULL, 7 );
|
||||
begin();
|
||||
prompt( 2, 5, "Numero documento " );
|
||||
group( 7 );
|
||||
flag( "DZ" );
|
||||
end();
|
||||
|
||||
control( T_NUMBER, DLG_NULL, 1 );
|
||||
begin();
|
||||
prompt( 2, 6, "Stato corrente " );
|
||||
group( 8 );
|
||||
flag( "D" );
|
||||
end();
|
||||
|
||||
control( T_DATE );
|
||||
begin();
|
||||
prompt( 51, 6, "Data documento " );
|
||||
group( 9 );
|
||||
flag( "D" );
|
||||
end();
|
||||
|
||||
}
|
||||
|
||||
void TMask_generator::genera( )
|
||||
{
|
||||
int i;
|
||||
|
||||
_pro = new TConfig( _proname );
|
||||
|
||||
TFilename _mskname( _pro->get( "MSKFILE", "MAIN") );
|
||||
_mskname.ext( "msk" );
|
||||
_out = new ofstream( _mskname );
|
||||
|
||||
// Definizione della toolbar
|
||||
|
||||
|
||||
outline( "TOOLBAR \"\" 0 20 0 2" );
|
||||
outline( "BU 18 8 2" );
|
||||
begin();
|
||||
prompt( -15, -1, "~Registra" );
|
||||
message( "EXIT,20082" );
|
||||
end();
|
||||
|
||||
outline( "BU 17 8 2" );
|
||||
begin();
|
||||
prompt( -25, -1, "~Elimina" );
|
||||
message( "EXIT,127" );
|
||||
end();
|
||||
|
||||
outline( "BU 99 8 2" );
|
||||
begin();
|
||||
prompt( -35, -1, "E~labora" );
|
||||
message( "EXIT,345" );
|
||||
end();
|
||||
|
||||
outline( "BU 24 8 2" );
|
||||
begin();
|
||||
prompt( -45, -1 );
|
||||
message( "EXIT,346" );
|
||||
end();
|
||||
|
||||
outline( "BU 2 8 2" );
|
||||
begin();
|
||||
prompt( -55, -1 );
|
||||
message( "EXIT,27" );
|
||||
end();
|
||||
|
||||
// End della toolbar
|
||||
end();
|
||||
|
||||
|
||||
// Header della prima pagina
|
||||
|
||||
outline( "PA \"Pagina \" 11 60 14" );
|
||||
(*_out) << "GR " << DLG_NULL << " 77 4\n";
|
||||
begin();
|
||||
prompt( 1, 1 );
|
||||
end();
|
||||
|
||||
control( T_STRING, F_CODNUM, 4 );
|
||||
begin();
|
||||
prompt( 2, 2, "Codice numerazione " );
|
||||
field( "CODNUM" );
|
||||
flag( "GDUZ" );
|
||||
message( "CO,2@" );
|
||||
end();
|
||||
|
||||
control( T_STRING, F_DESNUM, 40 );
|
||||
begin();
|
||||
prompt( 32, 2 );
|
||||
flag( "GDU" );
|
||||
message( "CO,3@" );
|
||||
end();
|
||||
|
||||
control( T_STRING, F_PROFILO, 12 );
|
||||
begin();
|
||||
prompt( 32, 3, "Profilo :" );
|
||||
flag( "GDU" );
|
||||
message( "CO,4@" );
|
||||
end();
|
||||
|
||||
control( T_STRING, F_ANNO, 4 );
|
||||
begin();
|
||||
prompt( 2, 3, "Esercizio " );
|
||||
field( "ANNO" );
|
||||
flag( "GD" );
|
||||
message( "CO,5@" );
|
||||
end();
|
||||
|
||||
control( T_LISTBOX, F_PROVV, 14 );
|
||||
begin();
|
||||
prompt( 32, 5, "Numerazione " );
|
||||
field( "PROVV" );
|
||||
item( "P§Provvisoria£CO,6@" );
|
||||
item( "D§Definitiva £CO,6@" );
|
||||
end();
|
||||
|
||||
control( T_NUMBER, F_NDOC, 7 );
|
||||
begin();
|
||||
prompt( 2, 5, "Numero documento " );
|
||||
field( "NDOC" );
|
||||
message( "CO, 7@" );
|
||||
flag( "Z" );
|
||||
end();
|
||||
|
||||
control( T_NUMBER, F_STATO, 1 );
|
||||
begin();
|
||||
prompt( 2, 6, "Stato corrente " );
|
||||
field( "STATO" );
|
||||
message( "CO,8@" );
|
||||
flag( "GD" );
|
||||
end();
|
||||
|
||||
control( T_DATE, F_DATADOC );
|
||||
begin();
|
||||
prompt( 51, 6, "Data documento " );
|
||||
message( "CO,9@" );
|
||||
field( "DATADOC" );
|
||||
end();
|
||||
|
||||
// Generazione
|
||||
_pageopen = TRUE;
|
||||
|
||||
for( i = 0; i < _tab0300a.items( ); i ++ )
|
||||
{ if (_pageopen == FALSE)
|
||||
{ intestazione_pagina( );
|
||||
_pageopen = TRUE;
|
||||
}
|
||||
genera_campo( _tab0300a.row( i ) );
|
||||
}
|
||||
if ( _pageopen == TRUE ) end( );
|
||||
intestazione_pagina( );
|
||||
|
||||
// Generazione dello sheet : vedi il profilo
|
||||
TScanner sheet_in( "ve0300b.dat" );
|
||||
(*_out) << "SPREADSHEET " << F_SHEET << "\n";
|
||||
begin();
|
||||
prompt( 2, 7 );
|
||||
for( i = 0; i < _tab0300b.items( ); i ++ )
|
||||
genera_item_sheet( _tab0300b.row( i ) );
|
||||
end();
|
||||
end();
|
||||
|
||||
// Generazione pagina dei piedi
|
||||
TToken_string s(_pro->get( "PROGPIEDE", "MAIN" ) );
|
||||
if ( s.not_empty() )
|
||||
{ intestazione_pagina( );
|
||||
TConfig ditta(CONFIG_DITTA);
|
||||
int cp = 1;
|
||||
int piede = s.get_int();;
|
||||
while ( piede != 0 )
|
||||
{ control( T_NUMBER, BASE_PIEDE + cp, 1805 );
|
||||
begin();
|
||||
TString header = ditta.get( "PIEDE", "ve", piede );
|
||||
while( header.len() < 40 ) header << " ";
|
||||
prompt( 2, 7 + cp, header );
|
||||
flag( "D" );
|
||||
end();
|
||||
cp ++;
|
||||
piede = s.get_int();
|
||||
}
|
||||
end();
|
||||
};
|
||||
endmask( );
|
||||
// Stategia al 30/06/95
|
||||
// Creo una maschera con tutte le colonne, poi, a RUNTIME,
|
||||
// dal motore, nascondo e adatto le colonne.
|
||||
|
||||
// Generazione maschera dello sheet
|
||||
(*_out) << "PA \"Pagina 1\" 8 5 64 13\n";
|
||||
|
||||
id( 101 );
|
||||
for( i = 0; i < _tab0300b.items( ); i ++ )
|
||||
genera_campo_sheet( _tab0300b.row( i ) );
|
||||
end();
|
||||
end();
|
||||
endmask( );
|
||||
delete _pro;
|
||||
delete _out;
|
||||
}
|
||||
|
||||
|
||||
// Applicazione guscio
|
||||
|
||||
class TGenMask_application : public TApplication
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool create( );
|
||||
virtual bool menu( MENU_TAG m );
|
||||
|
||||
};
|
||||
|
||||
|
||||
bool TGenMask_application::menu(MENU_TAG m)
|
||||
{
|
||||
TMask_generator a( argv( 2 ) );
|
||||
a.genera( );
|
||||
return( TRUE );
|
||||
};
|
||||
|
||||
bool TGenMask_application::create( )
|
||||
{
|
||||
TApplication::create();
|
||||
menu( 0 );
|
||||
return FALSE;
|
||||
};
|
||||
|
||||
int ve0300( int argc, char** argv )
|
||||
{
|
||||
|
||||
if ( argc < 3 )
|
||||
fatal_box( "Sintassi: VE0 -3 <Nome file di profilo>" );
|
||||
|
||||
TGenMask_application a;
|
||||
a.run ( argc, argv, "Generazione in corso ..." );
|
||||
return 0;
|
||||
}
|
272
ve/ve0300.uml
Executable file
272
ve/ve0300.uml
Executable file
@ -0,0 +1,272 @@
|
||||
#include "VeUML1.h"
|
||||
|
||||
TIPOCF |TIPOCF |F_TIPOCF |2|Tipo cliente/fornitore |1|
|
||||
CODCF |CODCF |F_CODCF |3|Codice cliente/fornitore |6|R|§
|
||||
LF_CLIFO KEY 1|§
|
||||
CODCF F_CODCF|§
|
||||
"Codice" LF_CLIFO->CODCF~"Ragione sociale@50" LF_CLIFO->RAGSOC~"Indirizzo@35" LF_CLIFO->INDCF|§
|
||||
F_CODCF LF_CLIFO->CODCF~F_RAGSOC LF_CLIFO->RAGSOC~F_INDCF LF_CLIFO->INDCF~§
|
||||
F_CIVCF LF_CLIFO->CIVCF~F_CODAG LF_CFVEN->CODAG~F_CODVAL LF_CLIFO->CODVAL~§
|
||||
F_OCCAS LF_CLIFO->OCCAS~F_CODLIN LF_CLIFO->CODLIN~F_CODABIA LF_CLIFO->CODABI~§
|
||||
F_CODCABA LF_CLIFO->CODCAB~F_CODLIST LF_CFVEN->CODLIST~§
|
||||
F_CODPAG LF_CLIFO->CODPAG|§
|
||||
HELP "Inserire il codice del cliente"~§
|
||||
WARNING "Cliente non presente"~§
|
||||
JOIN LF_CFVEN TO LF_CLIFO KEY 1 INTO TIPOCF=TIPOCF CODCF=CODCF|
|
||||
|
||||
RAGSOC | |F_RAGSOC |2|Ragione sociale |50|U|§
|
||||
LF_CLIFO KEY 2|§
|
||||
RAGSOC F_RAGSOC|§
|
||||
"Ragione sociale@50" LF_CLIFO->RAGSOC~"Codice" LF_CLIFO->CODCF~"Indrizzo@35" LF_CLIFO->INDCF|§
|
||||
|COPY OUTPUT F_CODCF~§
|
||||
HELP "Inserire la ragione sociale della ditta"~§
|
||||
WARNING "Ragione sociale non trovata"§
|
||||
~JOIN LF_CFVEN TO LF_CLIFO KEY 1 INTO TIPOCF=TIPOCF CODCF=CODCF|
|
||||
|
||||
INDCF | |F_INDCF |2|Indirizzo |35|U|
|
||||
CIVCF | |F_CIVCF |2|N. |3|R|
|
||||
OCFPI |OCFPI |F_OCFPI |2|Partita IVA |16|
|
||||
OCCAS |OCCAS |F_OCCAS |4|Clienti occasionali ||
|
||||
CODVAL |CODVAL |F_CODVAL |2|Codice valuta |3|U|§
|
||||
%VAL|§
|
||||
CODTAB F_CODVAL|§
|
||||
"Codice" CODTAB~"Valuta@25" S0~"Cambio" R0|§
|
||||
F_CODVAL CODTAB~F_NOME_VAL S0~F_CAMBIO R0|§
|
||||
HELP "Inserisci il codice della valuta"~§
|
||||
WARNING "Codice valuta non trovata"|
|
||||
|
||||
CAMBIO |CAMBIO |F_CAMBIO |3|Cambio |1505|R|
|
||||
NOME_VAL | |F_NOME_VAL |2|Valuta |25|U|
|
||||
CODLIN |CODLIN |F_CODLIN |2|Codice lingua |1|U|
|
||||
RAGGR |RAGGR |F_RAGGR |4|Raggruppamenti ||
|
||||
CODPAG |CODPAG |F_CODPAG |2|Codice pagamento |4|U|§
|
||||
%CPG|§
|
||||
CODTAB F_CODPAG|§
|
||||
"Codice" CODTAB~"Descrizione@50" S0|§
|
||||
F_CODPAG CODTAB~F_DESCODPAG S0|§
|
||||
HELP "Inserisci il codice del tipo di pagamento"§
|
||||
~WARNING "Codice tipo pagamento non trovato"|
|
||||
|
||||
DESCODPAG | |F_DESCODPAG |2|Pagamento |7050|
|
||||
DATAINSC |DATAINSC |F_DATAINSC |1|Data inizio scadenza ||A|||||§
|
||||
HELP "Inserisci la data di inizio scadenza"§
|
||||
~WARNING "E' richiesta una data valida"|
|
||||
|
||||
DATASCAD1 | |F_DATASCAD1 |1|Data prima scadenza ||
|
||||
DATASCAD2 | |F_DATASCAD2 |1|Data seconda scadenza ||
|
||||
DATASCAD3 | |F_DATASCAD3 |1|Data terza scadenza ||
|
||||
DATASCAD4 | |F_DATASCAD4 |1|Data quarta scadenza ||
|
||||
DATASCAD5 | |F_DATASCAD5 |1|Data quinta scadenza ||
|
||||
CODABIA |CODABIA |F_CODABIA |3|Codice ABI banca d'appoggio |5|Z|§
|
||||
%BAN KEY 1|§
|
||||
CODTAB[1,5] F_CODABIA~CODTAB[6,10] F_CODCABA|§
|
||||
"Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0|§
|
||||
F_CODABIA CODTAB[1,5]~F_CODCABA CODTAB[6,10]~F_BANCA_APP S0|§
|
||||
HELP "Inserisci il codice della Banca (istituto)"~§
|
||||
WARNING "Codice Banca non trovato"|
|
||||
|
||||
CODCABA |CODCABA |F_CODCABA |3|Codice CAB banca d'appoggio |5|Z§
|
||||
|§F_CODABIA||§
|
||||
"Cod. Fil." CODTAB[6,10]~"Cod. Istit." CODTAB[1,5]~"Denominazione@50" S0||§
|
||||
COPY INPUT F_CODABIA~§
|
||||
COPY OUTPUT F_CODABIA~§
|
||||
HELP "Inserisci il codice della filiale"~§
|
||||
WARNING "Codice della filiale non trovato"|
|
||||
|
||||
BANCA_APP | |F_BANCA_APP |2|Denominazione |50|U|§
|
||||
%BAN KEY 2|§
|
||||
S0 F_BANCA_APP|§
|
||||
"Denominazione@50" S0~"Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]||§
|
||||
COPY OUTPUT F_CODABIA~§
|
||||
HELP "Inserisci il nome della Banca"~§
|
||||
WARNING "Nome di Banca non trovato."|
|
||||
|
||||
CODABIP |CODABIP |F_CODABIP |3|Codice ABI banca provenienza |5|Z|§
|
||||
%BAN KEY 1|§
|
||||
CODTAB[1,5] F_CODABIP~CODTAB[6,10] F_CODCABP|§
|
||||
"Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0|§
|
||||
F_CODABIP CODTAB[1,5]~F_CODCABP CODTAB[6,10]~F_BANCA_PRE S0|§
|
||||
HELP "Inserisci il codice della Banca (istituto)"~§
|
||||
WARNING "Codice Banca non trovato"|
|
||||
|
||||
CODCABP |CODCABP |F_CODCABP |3|Codice CAB banca provenienza |5|Z§
|
||||
|§F_CODABIP||§
|
||||
"Cod. Fil." CODTAB[6,10]~"Cod. Istit." CODTAB[1,5]~"Denominazione@50" S0||§
|
||||
COPY INPUT F_CODABIP~§
|
||||
COPY OUTPUT F_CODABIP~§
|
||||
HELP "Inserisci il codice della filiale"~§
|
||||
WARNING "Codice della filiale non trovato"|
|
||||
|
||||
BANCA_PRE | |F_BANCA_PRE |2|Denominazione |50|U|§
|
||||
%BAN KEY 2|§
|
||||
S0 F_BANCA_PRE|§
|
||||
"Denominazione@50" S0~"Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]||§
|
||||
COPY OUTPUT F_CODABIP~§
|
||||
HELP "Inserisci il nome della Banca"~§
|
||||
WARNING "Nome di Banca non trovato."|
|
||||
|
||||
CODLIST |CODLIST |F_CODLIST |2|Codice listini |5|U|||||§
|
||||
HELP "Inserisci il codice del listino"~§
|
||||
WARNING "Codice del listino non corretto o non presente !!!"|
|
||||
|
||||
CODCONT |CODCONT |F_CODCONT |2|Codice contratti |2|
|
||||
CODCAMP |CODCAMP |F_CODCAMP |2|Codice campagne |1|
|
||||
SCONTOPERC|SCONTOPERC |F_SCONTOPERC |3|Percentuale di sconto |0602|
|
||||
CODINDSP |CODINDSP |F_CODINDSP |2|Codice indirizzo spedizione |3||§
|
||||
LF_INDSP|§
|
||||
TIPOCF F_TIPOCF~CODCF F_CODCF SELECT~CODIND F_CODINDSP|§
|
||||
"Codice" CODIND~"Indirizzo@35" INDIR|§
|
||||
F_CODINDSP CODIND~F_INDSP INDIR~F_CIVSP CIV~F_CAPSP CAP~F_LOCALITASP LOCALITA|§
|
||||
HELP "Inserisci il codice dell'indirizzo di spedizione"~§
|
||||
WARNING "Indirizzo di spedizione non trovato"|
|
||||
|
||||
INDSP | |F_INDSP |2|Indirizzo di spedizione |35|U|
|
||||
CIVSP | |F_CIVSP |2|Numero civico |10|R|
|
||||
CAPSP | |F_CAPSP |2|CAP |5|R|
|
||||
LOCALITASP| |F_LOCALITASP |2|Località |35|R|
|
||||
DATADOCRIF|DATADOCRIF |F_DATADOCRIF |1|Data del documento di riferimento ||
|
||||
NUMDOCRIF |NUMDOCRIF |F_NUMDOCRIF |2|Numero del documento di riferimento |7|
|
||||
CODAG |CODAG |F_CODAG |2|Codice |2|
|
||||
CODAGVIS |CODAGVIS |F_CODAGVIS |2|Codice |2|
|
||||
CODSPMEZZO|CODSPMEZZO |F_CODSPMEZZO |5|Codice spedizione mezzo |2||||||§
|
||||
HELP "Trasporto a mezzo di VETTORE, MITTENTE o DESTINATARIO"~§
|
||||
WARNING "Il tipo di vettore pùo essere solo 1,2 o 3"|§
|
||||
1§MITTENTE £DISABLE,GR_VETTORI@~§
|
||||
2§VETTORE £ENABLE,GR_VETTORI@~§
|
||||
3§DESTINATARIO£DISABLE,GR_VETTORI@
|
||||
|
||||
CODPORTO |CODPORTO |F_CODPORTO |2|Codice porto |2||§
|
||||
%POR|§
|
||||
CODTAB F_CODPORTO|§
|
||||
"Codice" CODTAB~"Porto@50" S0|F_CODPORTO CODTAB~F_PORTO S0|§
|
||||
HELP "Inserisci il codice del porto"§
|
||||
~WARNING "Codice porto non trovato"|
|
||||
|
||||
PORTO | |F_PORTO |2|Porto |50|
|
||||
CODNOTESP1|CODNOTESP1 |F_CODNOTESP1 |2|Codice note spese 1 |2|
|
||||
CODNOTESP2|CODNOTESP2 |F_CODNOTESP2 |2|Codice note spese 2 |2|
|
||||
CAUSTRASP |CAUSTRASP |F_CAUSTRASP |2|Codice causale trasporto |2||§
|
||||
%CLR|§
|
||||
CODTAB F_CAUSTRASP|§
|
||||
"Codice" CODTAB~"Causale trasporto@50" S0|§
|
||||
F_CAUSTRASP CODTAB~F_DENCAUSTRASP S0|§
|
||||
HELP "Inserisci il codice dalla causale del trasporto"~§
|
||||
WARNING "Codice di causale non trovato"|
|
||||
|
||||
DENCAUSTRASP| |F_DENCAUSTRASP |2|Causale trasporto |2|U|
|
||||
CODVETT1 |CODVETT1 |F_CODVETT1 |2|Codice vettore 1 |3||§
|
||||
%VET|§
|
||||
CODTAB F_CODVETT1|§
|
||||
"Codice" CODTAB~"Nome@50" S0|§
|
||||
F_CODVETT1 CODTAB~F_NOMEVETT1 S0|§
|
||||
HELP "Inserisci il codice del primo (o unico) vettore"~§
|
||||
WARNING "Codice primo vettore non trovato"~GROUP GR_VETTORI|
|
||||
|
||||
NOMEVETT1 | |F_NOMEVETT1 |2|Vettore 1 |50|
|
||||
CODVETT2 |CODVETT2 |F_CODVETT2 |2|Codice vettore 2 |3|§
|
||||
|§F_CODVETT1|§
|
||||
CODTAB F_CODVETT2|§
|
||||
§F_CODVETT1|§
|
||||
F_CODVETT2 CODTAB~ F_NOMEVETT2 S0|§
|
||||
HELP "Inserisci il codice del secondo vettore"~§
|
||||
WARNING "Codice secondo vettore non trovato"~GROUP GR_VETTORI|
|
||||
|
||||
NOMEVETT2 | |F_NOMEVETT2 |2|Vettore 2 |50|
|
||||
CODVETT3 |CODVETT3 |F_CODVETT3 |2|Codice vettore 3 |3|§
|
||||
|§F_CODVETT1|§
|
||||
CODTAB F_CODVETT3|§
|
||||
§F_CODVETT1|§
|
||||
F_CODVETT3 CODTAB~F_NOMEVETT3 S0|§
|
||||
HELP "Inserisci il codice del terzo vettore"~§
|
||||
WARNING "Codice terzo vettore non trovato"~GROUP GR_VETTORI|
|
||||
|
||||
NOMEVETT3 | |F_NOMEVETT3 |2|Vettore 3 |50|
|
||||
NCOPIE |NCOPIE |F_NCOPIE |3|Numero copie |0200|
|
||||
DATAPART |DATAPART |F_DATAPART |1|Data partenza |||||||§
|
||||
HELP "Inserisci la data di partenza nel formato gg-mm-aaaa"|
|
||||
|
||||
ORAPART |ORAPART |F_ORAPART |2|Ora partenza |0400||||||§
|
||||
HELP "Inserisci l'orario di partenza nel formato oo:mm (24 ore)"
|
||||
|
||||
IMPPAGATO |IMPPAGATO |F_IMPPAGATO |3|Importo pagato |1802|
|
||||
ACCSALDO |ACCSALDO |F_ACCSALDO |4|Acconto/saldo ||
|
||||
DOC1 |DOC1 |F_DOC1 |2|Documento 1 |12|
|
||||
DOC2 |DOC2 |F_DOC2 |2|Documento 2 |12|
|
||||
DOC3 |DOC3 |F_DOC3 |2|Documento 3 |12|
|
||||
DATACONS |DATACONS |F_DATACONS |1|Data consegna ||
|
||||
ASPBENI1 |ASPBENI1 |F_ASPBENI1 |2|Aspetto beni 1 |2||§
|
||||
%CLR|§
|
||||
CODTAB F_ASPBENI1|§
|
||||
"Codice" CODTAB~"Aspetto beni@50" S0|§
|
||||
F_ASPBENI1 CODTAB~F_DESCRBENI1 S0|§
|
||||
HELP "Inserisci il codice dell'aspetto dei beni"~§
|
||||
WARNING "Codice aspetto beni non trovato"|
|
||||
|
||||
DESCRBENI1| |F_DESCRBENI1 |2|Descrizione beni 1 |50|U|
|
||||
ASPBENI2 |ASPBENI2 |F_ASPBENI2 |2|Aspetto beni 2 |2||§
|
||||
%CLR|§
|
||||
CODTAB F_ASPBENI2|§
|
||||
"Codice" CODTAB~"Aspetto beni@50" S0|§
|
||||
F_ASPBENI2 CODTAB~F_DESCRBENI2 S0|§
|
||||
HELP "Inserisci il codice dell'aspetto dei beni"~§
|
||||
WARNING "Codice aspetto beni non trovato"|
|
||||
|
||||
DESCRBRNI2| |F_DESCRBENI2 |2|Descrizione beni 2 |50|U|
|
||||
IMPNETTI |IMPNETTI |F_IMPNETTI |4|Importi netti ||
|
||||
RAGGREFF |RAGGREFF |F_RAGGREFF |4|Raggruppamento effetti ||
|
||||
SPESEINC |SPESEINC |F_SPESEINC |4|Spese all'incasso ||
|
||||
ADDBRB |ADDBRB |F_ADDBRB |4|Addebito bolli ricevute bancarie ||
|
||||
ADDBTR |ADDBTR |F_ADDBTR |4|Addebito bolli tratte ||
|
||||
ADDBDE |ADDBDE |F_ADDBDE |4|Addebito bolli debiti esteri ||
|
||||
CODIVABRB |CODIVABRB |F_CODIVABRB |2|Codice iva bolli ricevute bancarie |4|
|
||||
CODIVABTR |CODIVABTR |F_CODIVABTR |2|Codice iva bolli tratte |4|
|
||||
CODIVABTRE|CODIVABTRE |F_CODIVABTRE |2|Codice iva bolli tratte estere |4|
|
||||
CODIVABDE |CODIVABDE |F_CODIVABDE |2|Codice iva bolli esteri |4|
|
||||
UMTARA |UMTARA |F_UMTARA |2|Codice Unità misura tara |2||§
|
||||
%CLR|§
|
||||
CODTAB F_UMTARA|§
|
||||
"Codice" CODTAB~"Unità di misura" S0|§
|
||||
F_UMTARA CODTAB~F_DESUMTARA S0|§
|
||||
HELP "Inserisci il codice dell'unità di misura della tara"~§
|
||||
WARNING "Codice unità di misura non trovato"|
|
||||
|
||||
TARA |TARA |F_TARA |3|Tara |1502|R|||||§
|
||||
HELP "Inserisci la tara della merce"~§
|
||||
WARNING "Tara errata o non presente !!!"|
|
||||
|
||||
DESUMTARA | |F_DESUMTARA |2|Unità di misura della tara |25|U|
|
||||
UMPNETTO |UMPNETTO |F_UMPNETTO |2|Codice Unità misura peso netto |2||§
|
||||
%CLR|§
|
||||
CODTAB F_UMPNETTO|§
|
||||
"Codice" CODTAB~"Unità di misura" S0|§
|
||||
F_UMPNETTO CODTAB~F_DESUMPNETTO S0|§
|
||||
HELP "Inserisci il codice dell'unità di misura del peso netto"~§
|
||||
WARNING "Codice unità di misura del peso netto non trovato"|
|
||||
|
||||
PNETTO |PNETTO |F_PNETTO |3|Peso netto |1502|R|||||§
|
||||
HELP "Inserisci il peso netto della merce"~§
|
||||
WARNING "Peso netto non corretto o non presente !!!"|
|
||||
|
||||
DESUMPNETTO| |F_DESUMPNETTO |2|Unità di misura del peso netto |25|U|
|
||||
NCOLLI |NCOLLI |F_NCOLLI |3|Numero colli |0700||||||§
|
||||
HELP "Inserisci il numero dei colli"~§
|
||||
WARNING "Numero di colli errato o non presente !!!"|
|
||||
|
||||
CAUSMAG1 |CAUSMAG1 |F_CAUSMAG1 |2|Codice causale di magazzino 1 |3|U|§
|
||||
LF_CAUSALI|§
|
||||
CODCAUS F_CAUSMAG1|§
|
||||
"Codice" CODCAUS~"Causale@50" DESCR|§
|
||||
F_CAUSMAG1 CODCAUS~F_DESCRMAG1 DESCR|§
|
||||
HELP "Inserisci il codice della causale"~§
|
||||
WARNING "Codice causale non trovato"|
|
||||
|
||||
DESCRMAG1 |DESCRMAG1 |F_DESCRMAG1 |2|Causale di magazzino 1 |50|U|
|
||||
CAUSMAG2 |CAUSMAG2 |F_CAUSMAG2 |2|Codice causale di magazzino 2 |3|U|§
|
||||
LF_CAUSALI|§
|
||||
CODCAUS F_CAUSMAG2§
|
||||
|§ F_CAUSMAG1|§
|
||||
F_CAUSMAG2 CODCAUS~F_DESCRMAG2 DESCR|§
|
||||
HELP "Inserisci il codice della causale"~§
|
||||
WARNING "Codice causale non trovato"|
|
||||
|
||||
DESCRMAG2 |DESCRMAG2 |F_DESCRMAG2 |2|Causale di magazzino 2 |50|U|
|
24
ve/ve1000b.uml
Executable file
24
ve/ve1000b.uml
Executable file
@ -0,0 +1,24 @@
|
||||
#include "veuml.h"
|
||||
|
||||
PAGE "Tipo di riga da aggiungere" -1 -1 50 8
|
||||
|
||||
LISTBOX F_LBTIPORIGA 30
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipo riga "
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 5 ""
|
||||
MESSAGE EXIT, K_SAVE
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 5 ""
|
||||
MESSAGE EXIT, K_ESC
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
ENDMASK
|
36
ve/ve2.cpp
Executable file
36
ve/ve2.cpp
Executable file
@ -0,0 +1,36 @@
|
||||
#include <xvt.h>
|
||||
#include <strings.h>
|
||||
#include <checks.h>
|
||||
|
||||
// #define MAIN
|
||||
|
||||
|
||||
#define usage "Errore - Utilizzo: %s -{1|2|3}"
|
||||
|
||||
extern int ve2100(int argc, char* argv[]); // listini
|
||||
extern int ve2200(int argc, char* argv[]); // contratti
|
||||
extern int ve2300(int argc, char* argv[]); // offerte-campagne
|
||||
|
||||
int main( int argc, char** argv)
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 1:
|
||||
rt = ve2100( argc, argv );
|
||||
break;
|
||||
case 2:
|
||||
rt = ve2200( argc, argv );
|
||||
break;
|
||||
case 3:
|
||||
rt = ve2300( argc, argv );
|
||||
break;
|
||||
default:
|
||||
error_box( usage, argv[0] );
|
||||
break;
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
17
ve/ve2.h
Executable file
17
ve/ve2.h
Executable file
@ -0,0 +1,17 @@
|
||||
#ifndef __VE2_H
|
||||
#define __VE2_H
|
||||
|
||||
#ifdef MAIN
|
||||
#define extern
|
||||
#endif
|
||||
|
||||
int ve2100(int argc, char* argv[]); // Tabella testate listini e righe listini
|
||||
int ve2200(int argc, char* argv[]); // Archivio contratti e righe contratti
|
||||
int ve2300(int argc, char* argv[]); // Archivio indirizzo clienti
|
||||
|
||||
#ifdef MAIN
|
||||
#undef extern
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
27
ve/ve2.url
Executable file
27
ve/ve2.url
Executable file
@ -0,0 +1,27 @@
|
||||
#include <default.url>
|
||||
|
||||
MENU TASK_MENUBAR
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
||||
MENUBAR MENU_BAR(1)
|
||||
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
||||
MENUBAR MENU_BAR(2)
|
||||
|
||||
MENU MENU_BAR(2)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
MENUBAR MENU_BAR(3)
|
||||
|
||||
MENU MENU_BAR(3)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Parametri"
|
||||
|
||||
|
60
ve/ve2100.cpp
Executable file
60
ve/ve2100.cpp
Executable file
@ -0,0 +1,60 @@
|
||||
#include "ve2100.h"
|
||||
|
||||
#define LF_CONDV 52
|
||||
#define LF_RCONDV 53
|
||||
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LFFILES_H
|
||||
#include <lffiles.h>
|
||||
#endif
|
||||
|
||||
class Tlistino_application : public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) { return _msk;}
|
||||
virtual bool changing_mask(int mode) { return FALSE;}
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
Tlistino_application( ) { };
|
||||
virtual ~Tlistino_application() { }
|
||||
};
|
||||
|
||||
bool Tlistino_application::user_create()
|
||||
{
|
||||
_msk = new TMask( "VE2100" );
|
||||
_rel = new TRelation( LF_CONDV );
|
||||
// _rel.add( "%PIP" )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tlistino_application::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ve2100(int argc, char* argv[])
|
||||
{
|
||||
|
||||
Tlistino_application a;
|
||||
|
||||
a.run(argc, argv, "Gestione listini " );
|
||||
return 0;
|
||||
}
|
47
ve/ve2100.h
Executable file
47
ve/ve2100.h
Executable file
@ -0,0 +1,47 @@
|
||||
#define F_TIPO 101
|
||||
#define F_CATVEN 102
|
||||
#define F_CATVEN1 103
|
||||
#define F_CODDIV1 107
|
||||
#define F_COD 108
|
||||
#define F_COD1 109
|
||||
#define F_DESCR 110
|
||||
#define F_CODVAL 111
|
||||
#define F_CODVAL1 112
|
||||
#define F_CAMBIO 113
|
||||
#define F_DATACAM 114
|
||||
#define F_VALIN 115
|
||||
#define F_VALFIN 116
|
||||
#define F_IMPLORDI 117
|
||||
#define F_GESTUM 118
|
||||
#define F_GESTSCAGL 119
|
||||
#define F_GESTSCO 120
|
||||
#define F_SCONST 121
|
||||
#define F_CODLISSUCC 123
|
||||
|
||||
#define F_SEQRIC 124
|
||||
#define F_FLART 125
|
||||
#define F_FLCAT 126
|
||||
#define F_FLLIN 127
|
||||
#define F_FLRAGG 128
|
||||
|
||||
#define F_CATVEN2 129
|
||||
#define F_COD2 130
|
||||
|
||||
#define F_SHEET1 301
|
||||
|
||||
|
||||
#define FS_QLIM 101
|
||||
#define FS_PREZZO 102
|
||||
#define FS_SCONTO 103
|
||||
#define FS_ADDIVA 104
|
||||
#define FS_CODIVA 105
|
||||
#define FS_PRECPROVV 106
|
||||
#define FS_QOM 107
|
||||
#define FS_QBASE 108
|
||||
#define FS_CODARTOM 109
|
||||
#define FS_PROMAGGIO 110
|
||||
#define FS_UMOM 111
|
||||
|
||||
|
||||
#define FS_CODIVA1 114
|
||||
#define FS_CODARTOM1 115
|
60
ve/ve2200.cpp
Executable file
60
ve/ve2200.cpp
Executable file
@ -0,0 +1,60 @@
|
||||
#include "ve2200.h"
|
||||
|
||||
#define LF_CONDV 52
|
||||
#define LF_RCONDV 53
|
||||
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LFFILES_H
|
||||
#include <lffiles.h>
|
||||
#endif
|
||||
|
||||
class TConcli_application : public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) { return _msk;}
|
||||
virtual bool changing_mask(int mode) { return FALSE;}
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
TConcli_application( ) { };
|
||||
virtual ~TConcli_application() { }
|
||||
};
|
||||
|
||||
bool TConcli_application::user_create()
|
||||
{
|
||||
_msk = new TMask( "VE2200" );
|
||||
_rel = new TRelation( LF_CONDV );
|
||||
// _rel.add( "%PIP" )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TConcli_application::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ve2200(int argc, char* argv[])
|
||||
{
|
||||
|
||||
TConcli_application a;
|
||||
|
||||
a.run(argc, argv, "Gestione contratti " );
|
||||
return 0;
|
||||
}
|
49
ve/ve2200.h
Executable file
49
ve/ve2200.h
Executable file
@ -0,0 +1,49 @@
|
||||
#define F_TIPO 101
|
||||
#define F_TIPOCF 104
|
||||
#define F_CODCF 105
|
||||
#define F_CODCF1 106
|
||||
#define F_CODDIV1 107
|
||||
#define F_COD 108
|
||||
#define F_COD1 109
|
||||
#define F_DESCR 110
|
||||
#define F_CODVAL 111
|
||||
#define F_CODVAL1 112
|
||||
#define F_CAMBIO 113
|
||||
#define F_DATACAM 114
|
||||
#define F_VALIN 115
|
||||
#define F_VALFIN 116
|
||||
#define F_IMPLORDI 117
|
||||
#define F_GESTUM 118
|
||||
#define F_GESTSCAGL 119
|
||||
#define F_GESTSCO 120
|
||||
#define F_SCONST 121
|
||||
#define F_OBBLIG 122
|
||||
|
||||
#define F_SEQRIC 124
|
||||
#define F_FLART 125
|
||||
#define F_FLCAT 126
|
||||
#define F_FLLIN 127
|
||||
#define F_FLRAGG 128
|
||||
|
||||
#define F_CATVEN2 129
|
||||
#define F_COD2 130
|
||||
|
||||
|
||||
#define F_SHEET2 302
|
||||
|
||||
#define FS_QLIM 101
|
||||
#define FS_PREZZO 102
|
||||
#define FS_SCONTO 103
|
||||
#define FS_ADDIVA 104
|
||||
#define FS_CODIVA 105
|
||||
#define FS_PRECPROVV 106
|
||||
#define FS_QOM 107
|
||||
#define FS_QBASE 108
|
||||
#define FS_CODARTOM 109
|
||||
#define FS_PROMAGGIO 110
|
||||
#define FS_UMOM 111
|
||||
#define FS_CODLOTTO 112
|
||||
|
||||
#define FS_CODIVA1 114
|
||||
#define FS_CODARTOM1 115
|
||||
#define FS_CODLOTTO1 116
|
59
ve/ve2300.cpp
Executable file
59
ve/ve2300.cpp
Executable file
@ -0,0 +1,59 @@
|
||||
#include "ve2300.h"
|
||||
|
||||
#define LF_CONDV 52
|
||||
#define LF_RCONDV 53
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LFFILES_H
|
||||
#include <lffiles.h>
|
||||
#endif
|
||||
|
||||
class Tofferte_application : public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) { return _msk;}
|
||||
virtual bool changing_mask(int mode) { return FALSE;}
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
Tofferte_application( ) { };
|
||||
virtual ~Tofferte_application() { }
|
||||
};
|
||||
|
||||
bool Tofferte_application::user_create()
|
||||
{
|
||||
_msk = new TMask( "VE2300" );
|
||||
_rel = new TRelation( LF_CONDV );
|
||||
// _rel.add( "%PIP" )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tofferte_application::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ve2300(int argc, char* argv[])
|
||||
{
|
||||
|
||||
Tofferte_application a;
|
||||
|
||||
a.run(argc, argv, "Gestione offerte/campagne " );
|
||||
return 0;
|
||||
}
|
45
ve/ve2300.h
Executable file
45
ve/ve2300.h
Executable file
@ -0,0 +1,45 @@
|
||||
#define F_TIPO 101
|
||||
#define F_COD 108
|
||||
#define F_COD1 109
|
||||
#define F_DESCR 110
|
||||
#define F_CODVAL 111
|
||||
#define F_CODVAL1 112
|
||||
#define F_CAMBIO 113
|
||||
#define F_DATACAM 114
|
||||
#define F_VALIN 115
|
||||
#define F_VALFIN 116
|
||||
#define F_IMPLORDI 117
|
||||
#define F_GESTUM 118
|
||||
#define F_GESTSCAGL 119
|
||||
#define F_GESTSCO 120
|
||||
#define F_SCONST 121
|
||||
|
||||
#define F_SEQRIC 124
|
||||
#define F_FLART 125
|
||||
#define F_FLCAT 126
|
||||
#define F_FLLIN 127
|
||||
#define F_FLRAGG 128
|
||||
|
||||
#define F_CATVEN2 129
|
||||
#define F_COD2 130
|
||||
|
||||
|
||||
#define F_SHEET3 303
|
||||
|
||||
#define FS_QLIM 101
|
||||
#define FS_PREZZO 102
|
||||
#define FS_SCONTO 103
|
||||
#define FS_ADDIVA 104
|
||||
#define FS_CODIVA 105
|
||||
#define FS_PRECPROVV 106
|
||||
#define FS_QOM 107
|
||||
#define FS_QBASE 108
|
||||
#define FS_CODARTOM 109
|
||||
#define FS_PROMAGGIO 110
|
||||
#define FS_UMOM 111
|
||||
#define FS_CODLOTTO 112
|
||||
#define FS_ARTES 113
|
||||
|
||||
#define FS_CODIVA1 114
|
||||
#define FS_CODARTOM1 115
|
||||
#define FS_CODLOTTO1 116
|
257
ve/ve2400.cpp
Executable file
257
ve/ve2400.cpp
Executable file
@ -0,0 +1,257 @@
|
||||
#include "ve2400.h"
|
||||
|
||||
#define LF_ANAMAG 47
|
||||
#define LF_CODCORR 48
|
||||
#define LF_DESLIN 51
|
||||
|
||||
|
||||
|
||||
#ifndef __CHECKS_H
|
||||
#include <checks.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MSKSHEET_H
|
||||
#include <msksheet.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LFFILES_H
|
||||
#include <lffiles.h>
|
||||
#endif
|
||||
|
||||
#define F_SHEET1 300
|
||||
#define F_SHEET2 301
|
||||
|
||||
|
||||
class TAnamag_application : public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
TRecord_array * _linee_rec1;
|
||||
TSheet_field * _sheet1;
|
||||
|
||||
TRecord_array * _linee_rec2;
|
||||
TSheet_field * _sheet2;
|
||||
|
||||
|
||||
virtual int read(TMask& m);
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) { return _msk;}
|
||||
virtual bool changing_mask(int mode) { return FALSE;}
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
TSheet_field& ss() const { return *_sheet1; }
|
||||
|
||||
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
TAnamag_application( ) { };
|
||||
virtual ~TAnamag_application() { }
|
||||
};
|
||||
|
||||
bool TAnamag_application::user_create()
|
||||
{
|
||||
_msk = new TMask( "VE2400" );
|
||||
_sheet1 = &(TSheet_field &)_msk->field( F_SHEET1 );
|
||||
_sheet2 = &(TSheet_field &)_msk->field( F_SHEET2 );
|
||||
|
||||
_rel = new TRelation( LF_ANAMAG );
|
||||
_linee_rec1 = new TRecord_array( LF_DESLIN, "NRIGA", 1 );
|
||||
_rel->add( LF_DESLIN, "CODART=CODART" );
|
||||
|
||||
_linee_rec2 = new TRecord_array( LF_CODCORR, "NRIGA", 1 );
|
||||
_rel->add( LF_CODCORR, "CODART=CODART" );
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TAnamag_application::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int TAnamag_application::read(TMask& m)
|
||||
{
|
||||
int err = TRelation_application::read( m );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
// message_box( "Entrato nel ciclo di caricamento delle righe!" );
|
||||
TLocalisamfile& rdoc = _rel->lfile(LF_DESLIN);
|
||||
TRectype r(rdoc.curr());
|
||||
r.zero();
|
||||
r.put( "CODART", m.get( F_CODART ) );
|
||||
_linee_rec1->read( r );
|
||||
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET1 );
|
||||
f.destroy();
|
||||
int last = _linee_rec1->last_row();
|
||||
for( int i = 1; i <= last; i ++ )
|
||||
{ TRectype &rec = _linee_rec1->row( i, TRUE );
|
||||
TToken_string& row = f.row( i -1 );
|
||||
row = rec.get("CODLIN");
|
||||
row.add( rec.get("DESCR") );
|
||||
}
|
||||
|
||||
TLocalisamfile& rdoccor = _rel->lfile(LF_CODCORR);
|
||||
TRectype rcor(rdoccor.curr());
|
||||
rcor.zero();
|
||||
rcor.put( "CODART", m.get( F_CODART ) );
|
||||
_linee_rec2->read( rcor );
|
||||
|
||||
TSheet_field& fcorr = (TSheet_field&) m.field( F_SHEET2 );
|
||||
fcorr.destroy();
|
||||
last = _linee_rec2->last_row();
|
||||
for( i = 1; i <= last; i ++ )
|
||||
{ TRectype &rec = _linee_rec2->row( i, TRUE );
|
||||
TToken_string& row = f.row( i -1 );
|
||||
row = rec.get("CODARTALT");
|
||||
row.add( rec.get("TIPO") );
|
||||
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int TAnamag_application::write(const TMask& m)
|
||||
{
|
||||
int err = TRelation_application::write(m);
|
||||
if (err == NOERR)
|
||||
{
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET1 );
|
||||
_linee_rec1->destroy_rows();
|
||||
|
||||
if (m.insert_mode())
|
||||
_linee_rec1->renum_key("CODART", m.get(F_CODART));
|
||||
|
||||
|
||||
for (int i = 0; i < f.items(); i++)
|
||||
{
|
||||
TToken_string & row = f.row(i);
|
||||
const TString16 codlin(row.get(0));
|
||||
const TString80 descr(row.get());
|
||||
|
||||
if (codlin.not_empty() || descr.not_empty() )
|
||||
{
|
||||
TRectype & rec = _linee_rec1->row( i+1 , TRUE);
|
||||
|
||||
rec.put("CODLIN", codlin);
|
||||
rec.put("DESCR", descr);
|
||||
}
|
||||
}
|
||||
err = _linee_rec1->write();
|
||||
}
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET2 );
|
||||
_linee_rec2->destroy_rows();
|
||||
|
||||
if (m.insert_mode())
|
||||
_linee_rec2->renum_key("CODART", m.get(F_CODART));
|
||||
|
||||
|
||||
for (int i = 0; i < f.items(); i++)
|
||||
{
|
||||
TToken_string & row = f.row(i);
|
||||
const TString80 codartalt(row.get(0));
|
||||
const TString16 tipo(row.get());
|
||||
|
||||
if (codartalt.not_empty() || tipo.not_empty() )
|
||||
{
|
||||
TRectype & reccor = _linee_rec2->row( i+1 , TRUE);
|
||||
|
||||
reccor.put("CODARTALT", codartalt);
|
||||
reccor.put("TIPO", tipo);
|
||||
}
|
||||
}
|
||||
err = _linee_rec2->write();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int TAnamag_application::rewrite(const TMask& m)
|
||||
{
|
||||
int err = TRelation_application::rewrite(m);
|
||||
if (err == NOERR)
|
||||
{
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET1 );
|
||||
_linee_rec1->destroy_rows();
|
||||
|
||||
if (m.insert_mode())
|
||||
_linee_rec1->renum_key("CODART", m.get(F_CODART));
|
||||
|
||||
|
||||
for (int i = 0; i < f.items(); i++)
|
||||
{
|
||||
TToken_string & row = f.row(i);
|
||||
const TString16 codlin(row.get(0));
|
||||
const TString80 descr(row.get());
|
||||
|
||||
if (codlin.not_empty() || descr.not_empty() )
|
||||
{
|
||||
TRectype & rec = _linee_rec1->row( i+1 , TRUE);
|
||||
|
||||
rec.put("CODLIN", codlin);
|
||||
rec.put("DESCR", descr);
|
||||
}
|
||||
}
|
||||
err = _linee_rec1->rewrite();
|
||||
}
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
TSheet_field& f = (TSheet_field&) m.field( F_SHEET2 );
|
||||
_linee_rec2->destroy_rows();
|
||||
|
||||
if (m.insert_mode())
|
||||
_linee_rec2->renum_key("CODART", m.get(F_CODART));
|
||||
|
||||
|
||||
for (int i = 0; i < f.items(); i++)
|
||||
{
|
||||
TToken_string & row = f.row(i);
|
||||
const TString80 codartalt(row.get(0));
|
||||
const TString80 tipo(row.get());
|
||||
|
||||
if (codartalt.not_empty() || tipo.not_empty() )
|
||||
{
|
||||
TRectype & reccor = _linee_rec2->row( i+1 , TRUE);
|
||||
|
||||
reccor.put("CODARTALT", codartalt);
|
||||
reccor.put("TIPO", tipo);
|
||||
}
|
||||
}
|
||||
err = _linee_rec2->write();
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
|
||||
TAnamag_application a;
|
||||
|
||||
a.run(argc, argv, "Anagrafica di magazzino " );
|
||||
return 0;
|
||||
}
|
62
ve/ve2400.h
Executable file
62
ve/ve2400.h
Executable file
@ -0,0 +1,62 @@
|
||||
#define F_CODART 101
|
||||
#define F_TIPO 102
|
||||
#define F_DESCR 103
|
||||
#define F_GRMERC1 104
|
||||
#define F_GRMERC1A 105
|
||||
#define F_GRMERC2 106
|
||||
#define F_GRMERC2A 107
|
||||
#define F_GRMERC3 108
|
||||
#define F_GRMERC3A 109
|
||||
|
||||
#define F_UMA 111
|
||||
#define F_FCA 112
|
||||
#define F_UMV 113
|
||||
#define F_UM2 114
|
||||
#define F_FC2 115
|
||||
#define F_UM3 116
|
||||
#define F_CATCONA 117
|
||||
#define F_CATCONA1 118
|
||||
#define F_GRUPPOA 119
|
||||
#define F_CONTOA 120
|
||||
#define F_SOTTOCA 121
|
||||
#define F_DESCRA 122
|
||||
#define F_CATCONV 123
|
||||
#define F_CATCONV1 124
|
||||
#define F_GRUPPOV 125
|
||||
#define F_CONTOV 126
|
||||
#define F_SOTTOCV 127
|
||||
#define F_DESCRV 128
|
||||
#define F_UMP 129
|
||||
#define F_PESO 130
|
||||
#define F_CLASSDOG 131
|
||||
#define F_CLASSDOG1 132
|
||||
#define F_UBICAZIONE 133
|
||||
#define F_UBICAZIONE1 134
|
||||
#define F_COSTSTD 135
|
||||
#define F_CODIVA 136
|
||||
#define F_CODIVA1 137
|
||||
#define F_CODFORN 138
|
||||
#define F_CODFORN1 139
|
||||
#define F_ARTFIS 140
|
||||
#define F_RAGGFIS 142
|
||||
#define F_RAGGFIS1 143
|
||||
#define F_CLASSEFIS 144
|
||||
#define F_CLASSEFIS1 145
|
||||
#define F_ARTPROD 146
|
||||
#define F_TIPOCF 147
|
||||
#define F_LINEAPROD 148
|
||||
#define F_LINEAPROD1 149
|
||||
|
||||
|
||||
|
||||
#define FS_CODLIN 101
|
||||
#define FS_DESCR 102
|
||||
//#define FS_CODLIN1 103
|
||||
|
||||
#define FS_CODARTALT 101
|
||||
#define FS_TIPO 102
|
||||
//#define FS_CODARTALT1 103
|
||||
|
||||
|
||||
|
||||
|
506
ve/ve2400.uml
Executable file
506
ve/ve2400.uml
Executable file
@ -0,0 +1,506 @@
|
||||
#include "VE2400.H"
|
||||
#define ANAMAG 47
|
||||
#define PCON 19
|
||||
#define CLIFOR 20
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione anagrafica di magazzino " 0 0 70 20
|
||||
|
||||
STRING F_CODART 30
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice articolo "
|
||||
FIELD ANAMAG->CODART
|
||||
KEY 1
|
||||
FLAG "U"
|
||||
USE ANAMAG
|
||||
INPUT CODART F_CODART
|
||||
DISPLAY "Codice@30" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
|
||||
CHECKTYPE REQUIRED
|
||||
|
||||
|
||||
END
|
||||
|
||||
STRING F_TIPO 1
|
||||
BEGIN
|
||||
PROMPT 55 1 "Tipo "
|
||||
FIELD ANAMAG->TIPO
|
||||
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
FIELD ANAMAG->DESCR
|
||||
KEY 2
|
||||
USE ANAMAG KEY 2
|
||||
INPUT DESCR F_DESCR
|
||||
DISPLAY "Codice@30" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 71 5
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_GRMERC1 3
|
||||
BEGIN
|
||||
PROMPT 1 5 "Gruppo merc. 1 "
|
||||
FIELD ANAMAG->GRMERC1
|
||||
USE GMC
|
||||
INPUT CODTAB F_GRMERC1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC1 CODTAB
|
||||
OUTPUT F_GRMERC1A S0
|
||||
END
|
||||
|
||||
STRING F_GRMERC1A 50
|
||||
BEGIN
|
||||
PROMPT 23 5 ""
|
||||
USE GMC KEY 2
|
||||
INPUT S0 F_GRMERC1A
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC1 CODTAB
|
||||
OUTPUT F_GRMERC1A S0
|
||||
END
|
||||
|
||||
STRING F_GRMERC2 3
|
||||
BEGIN
|
||||
PROMPT 1 6 "Gruppo merc. 2 "
|
||||
FIELD ANAMAG->GRMERC2
|
||||
USE GMC
|
||||
INPUT CODTAB F_GRMERC2
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC2 CODTAB
|
||||
OUTPUT F_GRMERC2A S0
|
||||
END
|
||||
|
||||
STRING F_GRMERC2A 50
|
||||
BEGIN
|
||||
PROMPT 23 6 ""
|
||||
USE GMC KEY 2
|
||||
INPUT S0 F_GRMERC2A
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC2 CODTAB
|
||||
OUTPUT F_GRMERC2A S0
|
||||
END
|
||||
|
||||
STRING F_GRMERC3 3
|
||||
BEGIN
|
||||
PROMPT 1 7 "Gruppo merc. 3 "
|
||||
FIELD ANAMAG->GRMERC3
|
||||
USE GMC
|
||||
INPUT CODTAB F_GRMERC3
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC3 CODTAB
|
||||
OUTPUT F_GRMERC3A S0
|
||||
END
|
||||
|
||||
STRING F_GRMERC3A 50
|
||||
BEGIN
|
||||
PROMPT 23 7 ""
|
||||
USE GMC KEY 2
|
||||
INPUT S0 F_GRMERC3A
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_GRMERC3 CODTAB
|
||||
OUTPUT F_GRMERC3A S0
|
||||
END
|
||||
|
||||
STRING F_UMA 3
|
||||
BEGIN
|
||||
PROMPT 1 8 "U.M. di acq. "
|
||||
FIELD ANAMAG->UMA
|
||||
END
|
||||
|
||||
NUMBER F_FCA 15 5
|
||||
BEGIN
|
||||
PROMPT 21 8 "Fatt. di conv. "
|
||||
FIELD ANAMAG->FCA
|
||||
END
|
||||
|
||||
STRING F_UMV 3
|
||||
BEGIN
|
||||
PROMPT 55 8 "U.M. di vendita "
|
||||
FIELD ANAMAG->UMV
|
||||
END
|
||||
|
||||
STRING F_UM2 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "Seconda U.M. "
|
||||
FIELD ANAMAG->UM2
|
||||
END
|
||||
|
||||
NUMBER F_FC2 15 5
|
||||
BEGIN
|
||||
PROMPT 21 9 "Fatt. di conv. "
|
||||
FIELD ANAMAG->FC2
|
||||
END
|
||||
|
||||
STRING F_UM3 3
|
||||
BEGIN
|
||||
PROMPT 55 9 "Terza U.M. "
|
||||
FIELD ANAMAG->UM3
|
||||
END
|
||||
|
||||
STRING F_CATCONA 3
|
||||
BEGIN
|
||||
PROMPT 1 10 "Categoria conto acquisti "
|
||||
FIELD ANAMAG->CATCONA
|
||||
// MESSAGE CLEAR , F_GRUPPOA
|
||||
// MESSAGE CLEAR , F_CONTOA
|
||||
// MESSAGE CLEAR , F_SOTTOCA
|
||||
// MESSAGE CLEAR , F_DESCRA
|
||||
USE CAA
|
||||
INPUT CODTAB F_CATCONA
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Gruppo" S1
|
||||
DISPLAY "Conto" S2
|
||||
DISPLAY "Sottoconto" S3
|
||||
|
||||
OUTPUT F_CATCONA CODTAB
|
||||
OUTPUT F_CATCONA1 S0
|
||||
END
|
||||
|
||||
STRING F_CATCONA1 40
|
||||
BEGIN
|
||||
PROMPT 33 10 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_GRUPPOA 2
|
||||
BEGIN
|
||||
PROMPT 1 11 "Conto d'acquisto "
|
||||
FIELD ANAMAG->GRUPPOA
|
||||
// MESSAGE CLEAR , F_CATCONA
|
||||
// MESSAGE CLEAR , F_CATCONA1
|
||||
|
||||
USE PCON
|
||||
INPUT GRUPPO F_GRUPPOA
|
||||
INPUT CONTO F_CONTOA
|
||||
INPUT SOTTOCONTO F_SOTTOCA
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
|
||||
OUTPUT F_GRUPPOA GRUPPO
|
||||
OUTPUT F_CONTOA CONTO
|
||||
OUTPUT F_SOTTOCA SOTTOCONTO
|
||||
OUTPUT F_DESCRA DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTOA 2
|
||||
BEGIN
|
||||
PROMPT 24 11 ""
|
||||
FIELD ANAMAG->CONTOA
|
||||
END
|
||||
|
||||
STRING F_SOTTOCA 6
|
||||
BEGIN
|
||||
PROMPT 28 11 ""
|
||||
FIELD ANAMAG->SOTTOCA
|
||||
END
|
||||
|
||||
STRING F_DESCRA 40
|
||||
BEGIN
|
||||
PROMPT 36 11 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_CATCONV 3
|
||||
BEGIN
|
||||
PROMPT 1 12 "Categoria conto vendite "
|
||||
FIELD ANAMAG->CATCONV
|
||||
// MESSAGE CLEAR , F_GRUPPOV
|
||||
// MESSAGE CLEAR , F_CONTOV
|
||||
// MESSAGE CLEAR , F_SOTTOCV
|
||||
// MESSAGE CLEAR , F_DESCRV
|
||||
USE CRA
|
||||
INPUT CODTAB F_CATCONV
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Gruppo" S1
|
||||
DISPLAY "Conto" S2
|
||||
DISPLAY "Sottoconto" S3
|
||||
|
||||
OUTPUT F_CATCONV CODTAB
|
||||
OUTPUT F_CATCONV1 S0
|
||||
END
|
||||
|
||||
STRING F_CATCONV1 40
|
||||
BEGIN
|
||||
PROMPT 33 12 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_GRUPPOV 2
|
||||
BEGIN
|
||||
PROMPT 1 13 "Conto di vendita "
|
||||
FIELD ANAMAG->GRUPPOV
|
||||
// MESSAGE CLEAR , F_CATCONV
|
||||
// MESSAGE CLEAR , F_CATCONV1
|
||||
|
||||
USE PCON
|
||||
INPUT GRUPPO F_GRUPPOV
|
||||
INPUT CONTO F_CONTOV
|
||||
INPUT SOTTOCONTO F_SOTTOCV
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
|
||||
OUTPUT F_GRUPPOV GRUPPO
|
||||
OUTPUT F_CONTOV CONTO
|
||||
OUTPUT F_SOTTOCV SOTTOCONTO
|
||||
OUTPUT F_DESCRV DESCR
|
||||
END
|
||||
|
||||
STRING F_CONTOV 2
|
||||
BEGIN
|
||||
PROMPT 24 13 ""
|
||||
FIELD ANAMAG->CONTOV
|
||||
END
|
||||
|
||||
STRING F_SOTTOCV 6
|
||||
BEGIN
|
||||
PROMPT 28 13 ""
|
||||
FIELD ANAMAG->SOTTOCV
|
||||
END
|
||||
|
||||
STRING F_DESCRV 40
|
||||
BEGIN
|
||||
PROMPT 36 13 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_UMP 3
|
||||
BEGIN
|
||||
PROMPT 1 14 "U.M. peso "
|
||||
FIELD ANAMAG->UMP
|
||||
END
|
||||
|
||||
NUMBER F_PESO 15 5
|
||||
BEGIN
|
||||
PROMPT 30 14 "Peso "
|
||||
FIELD ANAMAG->PESO
|
||||
END
|
||||
|
||||
STRING F_CLASSDOG 10
|
||||
BEGIN
|
||||
PROMPT 1 15 "Classe doganale "
|
||||
FIELD ANAMAG->CLASSDOG
|
||||
END
|
||||
|
||||
STRING F_CLASSDOG1 40
|
||||
BEGIN
|
||||
PROMPT 34 15 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
STRING F_UBICAZIONE 10
|
||||
BEGIN
|
||||
PROMPT 1 16 "Ubicazione "
|
||||
FIELD ANAMAG->CLASSDOG
|
||||
USE UBI
|
||||
INPUT CODTAB F_UBICAZIONE
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
DISPLAY "Piano " S6
|
||||
DISPLAY "Corridoio " S7
|
||||
DISPLAY "Fila " S8
|
||||
DISPLAY "Scaffale " S9
|
||||
DISPLAY "Piano scaffale " S5
|
||||
OUTPUT F_UBICAZIONE CODTAB
|
||||
OUTPUT F_UBICAZIONE1 S0
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_UBICAZIONE1 40
|
||||
BEGIN
|
||||
PROMPT 34 16 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
/*
|
||||
STRING F_LINEAPROD 5
|
||||
BEGIN
|
||||
PROMPT 1 17 "Linea prodotto "
|
||||
FIELD ANAMAG->LINEAPROD
|
||||
USE LIC
|
||||
INPUT CODTAB F_LINEAPROD
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_LINEAPROD CODTAB
|
||||
OUTPUT F_LINEAPROD1 S0
|
||||
END
|
||||
|
||||
STRING F_LINEAPROD1 40
|
||||
BEGIN
|
||||
PROMPT 34 17 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
*/
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
|
||||
PAGE "Gestione anagrafica di magazzino " 0 0 70 20
|
||||
|
||||
|
||||
STRING F_CODIVA 4
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice IVA "
|
||||
FIELD ANAMAG->CODIVA
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODIVA
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODIVA CODTAB
|
||||
OUTPUT F_CODIVA1 S0
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODIVA1 40
|
||||
BEGIN
|
||||
PROMPT 23 1 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER F_COSTSTD 18 2
|
||||
BEGIN
|
||||
PROMPT 37 2 "Costo standard "
|
||||
FIELD ANAMAG->COSTSTD
|
||||
END
|
||||
|
||||
|
||||
LISTBOX F_TIPOCF 1
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "H"
|
||||
ITEM "F|"
|
||||
END
|
||||
|
||||
NUMBER F_CODFORN 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice fornitore "
|
||||
FIELD ANAMAG->CODFORN
|
||||
USE CLIFOR
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT CODCF F_CODFORN
|
||||
DISPLAY "Codice " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODFORN CODCF
|
||||
OUTPUT F_CODFORN1 RAGSOC
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODFORN1 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Ragione sociale "
|
||||
USE CLIFOR KEY 2
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT RAGSOC F_CODFORN1
|
||||
DISPLAY "Codice " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODFORN CODCF
|
||||
OUTPUT F_CODFORN1 RAGSOC
|
||||
END
|
||||
|
||||
|
||||
|
||||
BOOLEAN F_ARTFIS
|
||||
BEGIN
|
||||
PROMPT 2 4 "Articolo fiscale "
|
||||
FIELD ANAMAG->ARTFIS
|
||||
END
|
||||
|
||||
|
||||
|
||||
STRING F_RAGGFIS 1
|
||||
BEGIN
|
||||
PROMPT 2 5 "Raggruppamento fiscale "
|
||||
FIELD ANAMAG->RAGGFIS
|
||||
END
|
||||
|
||||
STRING F_RAGGFIS1 40
|
||||
BEGIN
|
||||
PROMPT 32 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_CLASSEFIS 3
|
||||
BEGIN
|
||||
PROMPT 2 6 "Classe fiscale "
|
||||
FIELD ANAMAG->CLASSEFIS
|
||||
END
|
||||
|
||||
STRING F_CLASSEFIS1 40
|
||||
BEGIN
|
||||
PROMPT 32 6 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ARTPROD
|
||||
BEGIN
|
||||
PROMPT 2 7 "Articolo di produzione "
|
||||
FIELD ANAMAG->ARTPROD
|
||||
END
|
||||
|
||||
SPREADSHEET 300 70 5
|
||||
BEGIN
|
||||
PROMPT 2 8 ""
|
||||
ITEM "Cod. lingua"
|
||||
ITEM "Descrizione@50"
|
||||
|
||||
END
|
||||
|
||||
SPREADSHEET 301 60 5
|
||||
BEGIN
|
||||
PROMPT 2 14 ""
|
||||
ITEM "Cod. art.@30"
|
||||
ITEM "Tipo@10"
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "VE2400B.UML"
|
||||
#include "VE2400C.UML"
|
48
ve/ve2400b.uml
Executable file
48
ve/ve2400b.uml
Executable file
@ -0,0 +1,48 @@
|
||||
// SHEET DI VE2400
|
||||
#include "VE2400.H"
|
||||
#define DESLIN 51
|
||||
|
||||
|
||||
PAGE "Pagina 1" 8 5 65 14
|
||||
|
||||
STRING FS_CODLIN 1
|
||||
BEGIN
|
||||
PROMPT 3 3 "Codice lingua "
|
||||
FIELD DESLIN->CODLIN
|
||||
USE %LIN
|
||||
INPUT CODTAB FS_CODLIN
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@30" S0
|
||||
OUTPUT FS_CODLIN CODTAB
|
||||
// OUTPUT FS_CODLIN1 S0
|
||||
END
|
||||
|
||||
STRING FS_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 1 7 "Descrizione "
|
||||
FIELD DESLIN->DESCR
|
||||
END
|
||||
|
||||
/*
|
||||
STRING FS_CODLIN1 30
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
*/
|
||||
BUTTON 1 9 2
|
||||
BEGIN
|
||||
PROMPT 15 12 ""
|
||||
END
|
||||
|
||||
BUTTON 2 9 2
|
||||
BEGIN
|
||||
PROMPT 38 12 ""
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
54
ve/ve2400c.uml
Executable file
54
ve/ve2400c.uml
Executable file
@ -0,0 +1,54 @@
|
||||
// SHEET DI VE2400
|
||||
#include "VE2400.H"
|
||||
#define CODCORR 48
|
||||
#define ANAMAG 47
|
||||
|
||||
|
||||
PAGE "Pagina 1" 8 5 65 14
|
||||
|
||||
STRING FS_CODARTALT 30
|
||||
BEGIN
|
||||
PROMPT 3 3 "Codice art. alt. "
|
||||
FIELD CODCORR->CODARTALT
|
||||
USE ANAMAG
|
||||
INPUT CODART FS_CODARTALT
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT FS_CODARTALT CODART
|
||||
// OUTPUT FS_CODARTALT1 DESCR
|
||||
END
|
||||
|
||||
LISTBOX FS_TIPO 10
|
||||
BEGIN
|
||||
PROMPT 2 7 "Tipo di codice "
|
||||
ITEM "N|Normal "
|
||||
ITEM "8|EAN8 "
|
||||
ITEM "1|EA13 "
|
||||
ITEM "3|3/9 "
|
||||
ITEM "C|Codabar"
|
||||
|
||||
FIELD CODCORR->TIPO
|
||||
END
|
||||
|
||||
/* STRING FS_CODARTALT1 50
|
||||
BEGIN
|
||||
PROMPT 2 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
*/
|
||||
|
||||
BUTTON 1 9 2
|
||||
BEGIN
|
||||
PROMPT 15 12 ""
|
||||
END
|
||||
|
||||
BUTTON 2 9 2
|
||||
BEGIN
|
||||
PROMPT 38 12 ""
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
40
ve/ve2500.h
Executable file
40
ve/ve2500.h
Executable file
@ -0,0 +1,40 @@
|
||||
#define F_GESTUM 101
|
||||
#define F_GESTSCAGL 102
|
||||
#define F_GESTSCONTI 103
|
||||
#define F_SEQRICRIG 104
|
||||
#define F_SELARCRIG 105
|
||||
#define F_TIPOIMM 106
|
||||
|
||||
#define FS_CODVAL 101
|
||||
#define FS_CODVAL1 102
|
||||
#define FS_CODART 103
|
||||
#define FS_CODART1 104
|
||||
#define FS_UM 105
|
||||
#define FS_SCAGL 106
|
||||
#define FS_QLIM 107
|
||||
#define FS_PREZZONETTO 108
|
||||
#define FS_PREZZOLORDO 109
|
||||
#define FS_PROVV 110
|
||||
#define FS_SCONTO 111
|
||||
#define FS_DATAINI 112
|
||||
#define FS_DATAFIN 113
|
||||
#define FS_APPLPREZZO 114
|
||||
#define FS_APPLSCONTO 115
|
||||
#define FS_APPLPROVV 116
|
||||
#define FS_ARTESAURIM 117
|
||||
#define FS_UMOMAGGI 118
|
||||
#define FS_ADDIVA 119
|
||||
#define FS_CODIVA 120
|
||||
#define FS_CODIVA1 121
|
||||
#define FS_PREZZOMAGGI 122
|
||||
#define FS_QMERCESCON 123
|
||||
#define FS_QBASE 124
|
||||
#define FS_CODTAGLIE 125
|
||||
#define FS_TAGLIE 126
|
||||
#define FS_COLORE 127
|
||||
#define FS_QUALIT 128
|
||||
#define FS_CODLOTTO 129
|
||||
|
||||
|
||||
|
||||
|
9
ve/ve3100.h
Executable file
9
ve/ve3100.h
Executable file
@ -0,0 +1,9 @@
|
||||
#define F_TIPO 101
|
||||
#define F_CODCAT 102
|
||||
#define F_CODART 103
|
||||
#define F_UM 104
|
||||
#define F_SCONTO 105
|
||||
|
||||
#define F_CODCAT1 106
|
||||
#define F_DESCR 107
|
||||
|
96
ve/ve3100.uml
Executable file
96
ve/ve3100.uml
Executable file
@ -0,0 +1,96 @@
|
||||
#include "VE3100.H"
|
||||
|
||||
// #define LF_SCONTI
|
||||
#define LF_ANAMAG 47
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio sconti riga " 11 60 14
|
||||
|
||||
LISTBOX F_TIPO 1
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
ITEM "R|"
|
||||
FLAG "H"
|
||||
// FIELD LF_SCONTI->TIPO
|
||||
END
|
||||
|
||||
STRING F_CODCAT 2
|
||||
BEGIN
|
||||
PROMPT 3 2 "Categoria vendita "
|
||||
// FIELD LF_SCONTI->CODCAT
|
||||
USE %CVE // CATEGORIE VENDITA
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODCAT
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_CODCAT CODTAB
|
||||
OUTPUT F_CODCAT1 S0
|
||||
END
|
||||
|
||||
STRING F_CODCAT1 40
|
||||
BEGIN
|
||||
PROMPT 28 2 ""
|
||||
USE %CVE KEY 2
|
||||
FLAG "U"
|
||||
INPUT S0 F_CODCAT1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_CODCAT CODTAB
|
||||
OUTPUT F_CODCAT1 S0
|
||||
END
|
||||
|
||||
STRING F_CODART 30
|
||||
BEGIN
|
||||
PROMPT 3 4 "Codice articolo "
|
||||
// FIELD LF_SCONTI->CODART
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_CODART
|
||||
DISPLAY "Codice@30" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 3 5 "Descrizione "
|
||||
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_DESCR
|
||||
DISPLAY "Codice@30" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESCR DESCR
|
||||
END
|
||||
|
||||
LISTBOX F_UM 10
|
||||
BEGIN
|
||||
PROMPT 3 7 "U.M. "
|
||||
ITEM " "
|
||||
// TROVARE DA ANAGRAFICA ARTICOLI
|
||||
// FIELD LF_SCONTI->UM
|
||||
END
|
||||
|
||||
STRING F_SCONTO 25
|
||||
BEGIN
|
||||
PROMPT 3 8 "Sconto di riga "
|
||||
// FIELD LF_SCONTI->SCONTO
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 70 13
|
||||
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
5
ve/ve3200.h
Executable file
5
ve/ve3200.h
Executable file
@ -0,0 +1,5 @@
|
||||
#define F_TIPO 101
|
||||
#define F_CODCAT 102
|
||||
#define F_SCONTO 103
|
||||
|
||||
|
45
ve/ve3200.uml
Executable file
45
ve/ve3200.uml
Executable file
@ -0,0 +1,45 @@
|
||||
#include "VE3200.H"
|
||||
|
||||
// #define LF_SCONTI
|
||||
#define LF_ANAMAG 47
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio sconti documenti " 11 60 14
|
||||
|
||||
LISTBOX F_TIPO 1
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
ITEM "R|"
|
||||
FLAG "H"
|
||||
// FIELD LF_SCONTI->TIPO
|
||||
END
|
||||
|
||||
STRING F_CODCAT 2
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
// FIELD LF_SCONTI->CODCAT
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
|
||||
STRING F_SCONTO 25
|
||||
BEGIN
|
||||
PROMPT 3 4 "Sconto documento "
|
||||
// FIELD LF_SCONTI->SCONTO
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 60 7
|
||||
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
13
ve/ve3300.h
Executable file
13
ve/ve3300.h
Executable file
@ -0,0 +1,13 @@
|
||||
#define F_TIPO 101
|
||||
#define F_CODCAT 102
|
||||
#define F_CODCAT1 103
|
||||
#define F_SCONTOC 104
|
||||
#define F_SCONTOC1 105
|
||||
#define F_ZONA 106
|
||||
#define F_ZONA1 107
|
||||
#define F_CODPAG 108
|
||||
#define F_CODPAG1 109
|
||||
|
||||
#define F_SCONTO 110
|
||||
|
||||
|
133
ve/ve3300.uml
Executable file
133
ve/ve3300.uml
Executable file
@ -0,0 +1,133 @@
|
||||
#include "VE3300.H"
|
||||
|
||||
// #define LF_SCONTI
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio sconti incondizionati " 11 60 14
|
||||
|
||||
LISTBOX F_TIPO 1
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
ITEM "I|"
|
||||
FLAG "H"
|
||||
// FIELD LF_SCONTI->TIPO
|
||||
END
|
||||
|
||||
STRING F_CODCAT 2
|
||||
BEGIN
|
||||
PROMPT 3 2 "Categoria vendita "
|
||||
// FIELD LF_SCONTI->CODART[1,2]
|
||||
USE %CVE // CATEGORIE VENDITA
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_CODCAT
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_CODCAT CODTAB
|
||||
OUTPUT F_CODCAT1 S0
|
||||
END
|
||||
|
||||
STRING F_CODCAT1 40
|
||||
BEGIN
|
||||
PROMPT 30 2 ""
|
||||
USE %CVE KEY 2
|
||||
FLAG "U"
|
||||
INPUT S0 F_CODCAT1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_CODCAT CODTAB
|
||||
OUTPUT F_CODCAT1 S0
|
||||
END
|
||||
|
||||
STRING F_SCONTOC 2
|
||||
BEGIN
|
||||
PROMPT 3 4 "Sconto cliente "
|
||||
// FIELD LF_SCONTI->CODART[4,5]
|
||||
USE %SCC // CATEGORIE VENDITA
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_SCONTOC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_SCONTOC CODTAB
|
||||
OUTPUT F_SCONTOC1 S0
|
||||
END
|
||||
|
||||
STRING F_SCONTOC1 40
|
||||
BEGIN
|
||||
PROMPT 25 4 ""
|
||||
USE %SCC KEY 2
|
||||
FLAG "U"
|
||||
INPUT S0 F_SCONTOC1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_SCONTOC CODTAB
|
||||
OUTPUT F_SCONTOC1 S0
|
||||
END
|
||||
|
||||
STRING F_ZONA 2
|
||||
BEGIN
|
||||
PROMPT 3 6 "Zona "
|
||||
// FIELD LF_SCONTI->CODART[7,8]
|
||||
USE %ZON // ZONE
|
||||
FLAG "U"
|
||||
INPUT CODTAB F_ZONA
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_ZONA CODTAB
|
||||
OUTPUT F_ZONA1 S0
|
||||
END
|
||||
|
||||
STRING F_ZONA1 40
|
||||
BEGIN
|
||||
PROMPT 20 6 ""
|
||||
USE %SCC KEY 2
|
||||
FLAG "U"
|
||||
INPUT S0 F_ZONA1
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
|
||||
OUTPUT F_ZONA CODTAB
|
||||
OUTPUT F_ZONA1 S0
|
||||
END
|
||||
|
||||
STRING F_CODPAG 4
|
||||
BEGIN
|
||||
PROMPT 3 8 "Codice pagamento "
|
||||
// FIELD LF_SCONTI->CODART[10,13]
|
||||
|
||||
END
|
||||
|
||||
STRING F_CODPAG1 40
|
||||
BEGIN
|
||||
PROMPT 25 8 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
STRING F_SCONTO 25
|
||||
BEGIN
|
||||
PROMPT 3 10 "Sconto incondizionato "
|
||||
// FIELD LF_SCONTI->SCONTO
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 70 13
|
||||
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
FLAG "R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
25
ve/ve6.cpp
Executable file
25
ve/ve6.cpp
Executable file
@ -0,0 +1,25 @@
|
||||
#include <xvt.h>
|
||||
#include <strings.h>
|
||||
#include <checks.h>
|
||||
#include <rectypes.h>
|
||||
|
||||
#include "ve6.h" // dichiarazioni delle procedure
|
||||
|
||||
#define usage "Errore - Utilizzo: %s -1"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 1:
|
||||
rt = ve6100( argc, argv);
|
||||
break;
|
||||
default:
|
||||
error_box( usage, argv[0] );
|
||||
break;
|
||||
}
|
||||
return rt;
|
||||
}
|
15
ve/ve6.h
Executable file
15
ve/ve6.h
Executable file
@ -0,0 +1,15 @@
|
||||
// Dichiarazione della classe per l'applicazione ve6.cpp
|
||||
|
||||
#if !defined(_VE6_ELAB_STRUCT)
|
||||
#define _VE6_ELAB_STRUCT
|
||||
/* struttura in cui sono memorizzati i campi dell'elaborazione differita che
|
||||
servono sia alla ve6gen che alle procedure particolari di generazione */
|
||||
typedef struct TElab_structTag
|
||||
{
|
||||
TString tipo_doc_org; // tipo documento originale
|
||||
TString tipo_doc_des; // tipo documento finale
|
||||
TString stato_doc_ini; // stato documento originale prima dell'elaborazione
|
||||
TString stato_doc_fin; // dopo l'elaborazione
|
||||
TString codnum; // codice per la numerazione del documento di destinazione
|
||||
} TElab_struct;
|
||||
#endif
|
36
ve/ve6.url
Executable file
36
ve/ve6.url
Executable file
@ -0,0 +1,36 @@
|
||||
#include <default.url>
|
||||
|
||||
/* ba1 -0 */
|
||||
MENU TASK_MENUBAR
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
|
||||
/* ba1 -1 */
|
||||
MENUBAR MENU_BAR(1)
|
||||
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Test"
|
||||
|
||||
|
||||
/* ba1 -2 */
|
||||
MENUBAR MENU_BAR(2)
|
||||
|
||||
MENU MENU_BAR(2)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
ITEM BAR_ITEM(1) "~Test"
|
||||
ITEM BAR_ITEM(2) "~Debug"
|
||||
|
||||
/* ba1 -3 */
|
||||
MENUBAR MENU_BAR(3)
|
||||
|
||||
MENU MENU_BAR(3)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
/* ba1 -4 */
|
||||
MENUBAR MENU_BAR(4)
|
||||
|
||||
MENU MENU_BAR(4)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
|
185
ve/ve6100.cpp
Executable file
185
ve/ve6100.cpp
Executable file
@ -0,0 +1,185 @@
|
||||
// ve6100.cpp: modulo per la generazione delle fatture.
|
||||
|
||||
#include "ve6retv.h" // valori di ritorno dalle varie funzioni
|
||||
|
||||
class TCrea_fatture : public TElaborazioni
|
||||
{
|
||||
protected:
|
||||
virtual bool menu (MENU_TAG);
|
||||
virtual bool create () ;
|
||||
virtual bool destroy();
|
||||
|
||||
public:
|
||||
TCrea_fatture (void) {} // costruttore
|
||||
};
|
||||
|
||||
bool TCrea_fatture::create()
|
||||
{
|
||||
cod_elab = "01"; // imposta il codice elaborazione (per il riferimento alla tabella ELD)
|
||||
dispatch_e_menu(BAR_ITEM(1)); // chiama il metodo menu
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TCrea_fatture::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TCrea_fatture::menu(MENU_TAG)
|
||||
{
|
||||
int err; // errore ritornato dalle funzioni
|
||||
if (err = scan_doc()) // se durante la scansione c'è un errore, esci
|
||||
return !errore_fatale(err);
|
||||
|
||||
switch (ordinamento) // in base all'ordinamento, lancia diverse procedure di creazione
|
||||
{
|
||||
case CLIENTE:
|
||||
// crea fatture raggruppando per cliente
|
||||
err = per_cliente();
|
||||
break;
|
||||
case AGENTE:
|
||||
// crea fatture per agente
|
||||
break;
|
||||
case ZONA:
|
||||
// crea fatture per zona
|
||||
break;
|
||||
case DATA_NUMDOC:
|
||||
if (raggruppa)
|
||||
// crea fatture per data/numero documento
|
||||
else
|
||||
// crea una fattura per ogni cliente
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (err) while (!getchar()); // se c'è un errore, attende la pressione di invio
|
||||
return !errore_fatale(err) // ritorna FALSE se c'è stato un errore fatale
|
||||
}
|
||||
|
||||
int per_cliente(void)
|
||||
{
|
||||
TLocalisamfile f(LF_DOC);
|
||||
TLocalisamfile rdoc(LF_RDOC);
|
||||
int current = 0; // chiave corrente
|
||||
TToken_string tempt; // ttoken string temporanea
|
||||
TString cliente;
|
||||
TRectype tempr (LF_DOC);
|
||||
TRectype temprdoc (LF_RDOC);
|
||||
TTable t("NUM"); // tabella numerazioni
|
||||
int nrdoc=0; // numero di riga della fattura
|
||||
|
||||
do
|
||||
{
|
||||
// memorizza il record del documento pilota
|
||||
f.zero();
|
||||
tempt = _chiavi->row(current); // rileva la chiave corrente
|
||||
codnum = tempt.get(0)
|
||||
f.put ("CODNUM", codnum); // memorizza i valori della chiave corrente nel record
|
||||
f.put ("ANNO", tempt.get());
|
||||
f.put ("PROVV", tempt.get());
|
||||
f.put ("NDOC", tempt.get());
|
||||
if (!f.read (_isequal)) // cerca il record corrispondente alla chiave corrente
|
||||
{
|
||||
error_box ("TCrea_fatture::per_cliente() : errore %d durante la lettura su doc", err);
|
||||
return READ_ERROR;
|
||||
}
|
||||
tempr = f.curr(); // copia ilrecord del doc. pilota in tempr
|
||||
|
||||
// imposta il numero documento per la fattura da creare
|
||||
t.zero();
|
||||
t.put ("CODTAB", _elab.codnum); // codice numerazione per le fatture
|
||||
t.read (_isgteq); // legge il primo record con lo stesso codice di numerazione
|
||||
if (t.get("CODTAB") == _elab.codnum) // controlla che il codice numerazione sia effettivamente lo stesso
|
||||
{
|
||||
n = t.get("I1"); // legge l'ultimo numero di documento utilizzato (o il primo disponibile)
|
||||
// supponiamo che sia l'ultimo utilizzato
|
||||
n++; // ora n è il numero della mia fattura (da mettere in NDOC);
|
||||
}
|
||||
else
|
||||
n = 1; // se non esiste alcun documento con il codice numerazione specificato, allora la fattura corrente è la n° 1
|
||||
|
||||
// inserisce il record del documento pilota in doc
|
||||
f.curr() = tempr // tutti i campi della fattura sono uguali al documento pilota, tranne alcuni (impostati più sotto)
|
||||
f.put ("NDOC", n); // imposta il numero del documento
|
||||
f.put ("TIPODOC", _elab.tipo_doc_des); // imposta il tipo di documento
|
||||
f.put ("STATO", ???); // stato della fattura appena creata
|
||||
|
||||
if ((err = f.write()) == NOERR) // se nonci sono problemi
|
||||
{
|
||||
t--; // si posiziona sul record precedente nella tabella numerazione
|
||||
t.put ("I1", n); // imposta nuovo numero del documento
|
||||
t.write(); // registra
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (err)
|
||||
{
|
||||
case REINSERT:
|
||||
message_box ("ve6100: Errore fatale: il record con la chiave specificata esiste già: impossibile sovrascrivere");
|
||||
break;
|
||||
default:
|
||||
message_box ("ve6100: Errore fatale: %d scrivendo sulla tabella NDOC", err);
|
||||
break;
|
||||
}
|
||||
return RECORD_WRITE_ERROR; // indica al chiamante un errore nella scrittura di un record
|
||||
}
|
||||
|
||||
// cerca la prima riga del documento pilota in rdoc
|
||||
nrdoc = 1; // comincia dalla prima riga
|
||||
temprdoc.zero();
|
||||
temprdoc.put ("CODNUM", tempr.get("CODNUM"));
|
||||
temprdoc.put ("ANNO", tempr.get ("ANNO"));
|
||||
temprdoc.put ("PROVV", tempr.get("PROVV"));
|
||||
temprdoc.put ("NDOC", tempr.get("NDOC"));
|
||||
|
||||
TRecord_array doc_originale;
|
||||
doc_originale.read (temprdoc); // legge tutte le righe del documento originale
|
||||
|
||||
// con la funzione doc_originale.row(i) ho l'i-esima riga del doc. originale
|
||||
TRecord_array doc_destinazione;
|
||||
temprdoc.put ("CODNUM", _elab.codnum); // imposta il codice numerazione per la fattura
|
||||
|
||||
|
||||
/*
|
||||
prendi la prima chiave
|
||||
|
||||
ripeti
|
||||
cerca su doc il record corrispondente alla chiave corrente
|
||||
|
||||
prendi il codcf (codice cliente) // costruzion file pilota per il cliente corrente
|
||||
prendi tutti i campi obbligatori // meglio: copia il record trovato in un oggetto record
|
||||
|
||||
scrivi su doc il record relativo alla nuova fattura creata
|
||||
cerca su rdoc la prima riga del doc. pilota // inserimento del doc. pilota nella fattura
|
||||
copia le righe del doc. pilota nella fattura
|
||||
segna a[0] come processato
|
||||
|
||||
per ogni chiave dell'array (dopo la prima)
|
||||
se non è processata
|
||||
cerca su doc il record corrispondente
|
||||
se codcf è uguale a codcf del doc. pilota // meglio: crea un record campione con codcf e campi obbligatori = a guelli del record pilota e cerca il
|
||||
allora se i campi obbligatori sono uguali a quelli del doc. pilota
|
||||
allora copia tutte le righe del doc. attuale nella fattura
|
||||
indica il record come processato
|
||||
|
||||
prendi dall'array la prima chiave non processata
|
||||
finché la chiave corrente è oltre l'ultimo record. (chiave corrente == a.items()
|
||||
*/
|
||||
|
||||
|
||||
Per numerazione fatture:
|
||||
TTable t ("NUM");
|
||||
metto in codtab il codice numerazione
|
||||
leggo il record con quel codice
|
||||
nel campi I1 c'è il numero del primo campo disponibile (o dell'ultimo utilizzato)
|
||||
|
||||
}
|
||||
|
||||
|
||||
int ve6100 (int argc, char **argv)
|
||||
{
|
||||
TCrea_fatture a;
|
||||
a.run (argc, argv, "Fatturazione");
|
||||
return 0;
|
||||
}
|
218
ve/ve6gen.cpp
Executable file
218
ve/ve6gen.cpp
Executable file
@ -0,0 +1,218 @@
|
||||
// Classe che contiene i data members comuni a tutti gli oggetti di creazione
|
||||
// e la funzione di scansione.
|
||||
|
||||
#include <applicat.h>
|
||||
#include <strings.h>
|
||||
#include <mask.h>
|
||||
#include <tabutil.h>
|
||||
#include <lffiles.h>
|
||||
#include <rectypes.h>
|
||||
#include <config.h>
|
||||
#include <checks.h>
|
||||
|
||||
#include "ve6retv.h" // definizione dei valori di ritorno
|
||||
#include "ve6.h"
|
||||
#include "ve6000.h" // identificativi dei campi della maschera
|
||||
|
||||
class TElaborazioni : public TApplication
|
||||
{
|
||||
protected:
|
||||
// i data members sono protected in modo che gli oggetti generatori
|
||||
// possano accedervi senza la necessità di funzioni specifiche
|
||||
TString_array *_chiavi; // array contenente i valori delle chiavi per ogni record selezionato da scan_doc
|
||||
TString _codelab; // codice elaborazione differita
|
||||
TElab_struct _elab; // struttura per memorizzare i campi significativi dei records di doc
|
||||
int _ordinamento; // indica il tipo di ordinamento
|
||||
bool _raggruppa; // indica se si deve raggruppare o no
|
||||
|
||||
int scan_doc (void); // lancia le altre due procedure
|
||||
int run_mask (void); // lancia la maschera e scandisce i records
|
||||
int get_info (void); // imposta la struttura elab leggendo il record per l'elaborazione corrente
|
||||
bool errore_fatale(int); // ritorna true se l'errore passato come argomento è nella lista degli errori fatali
|
||||
};
|
||||
|
||||
bool TElaborazioni::errore_fatale (int err)
|
||||
{
|
||||
switch (err)
|
||||
{
|
||||
case NO_ORG_DOCS:
|
||||
case RECORD_WRITE_ERROR:
|
||||
case ELAB_NOT_FOUND:
|
||||
case DOC_TYPE_NOT_FOUND:
|
||||
case READ_ERROR:
|
||||
return TRUE;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int TElaborazioni::get_info(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
// informazioni dalla tabella elaborazioni differite
|
||||
TTable t("ELD"); // tabella elaborazioni differite
|
||||
t.zero();
|
||||
t.put ("CODTAB", _codelab); // imposta il codice elaborazione da cercare
|
||||
if (!(err = t.read (_isgteq))) // si posiziona sul record dell'elab. differita con codice cod_elab
|
||||
{
|
||||
error_box ("TElaborazioni::get_info() : errore di lettura %d da tab(ELD)", err);
|
||||
return READ_ERROR;
|
||||
}
|
||||
if (t.get("CODTAB") != _codelab) // controlla se il codice trovato è proprio cod_tab
|
||||
{
|
||||
error_box ("TElaborazioni::get_info() : non esiste l'elaborazione con codice %s in tab(ELD)", (const char *)_codelab);
|
||||
return ELAB_NOT_FOUND;
|
||||
}
|
||||
|
||||
// Imposta i dati relativi all'elaborazione differita corrente
|
||||
_elab.tipo_doc_org = t.get("S6"); // tipo documento originale
|
||||
_elab.tipo_doc_des = t.get ("S8"); // tipo documento destinazione
|
||||
_elab.stato_doc_ini = t.get ("S7"); // stato iniziale del documento originale
|
||||
_elab.stato_doc_fin = t.get ("S9"); // stato finale (dopo l'elaborazione) del documento originale
|
||||
_elab.codnum = t.get ("S5"); // codice numerazione per il documento finale
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TElaborazioni::run_mask(void)
|
||||
{
|
||||
int err;
|
||||
TMask *_msk = new TMask ("ve6000"); // carica la maschera
|
||||
|
||||
// Imposta il flag di autorizzazione agente
|
||||
TTable t("TIP"); // tabella tipi documento
|
||||
t.zero(); // azzera i campi
|
||||
t.put ("CODTAB", _elab.tipo_doc_org); // tipo del documento originale
|
||||
if (!(err = t.read (_isgteq))) // si posiziona sul record relativo al documento del tipo specificato
|
||||
{
|
||||
error_box ("TElaborazioni::run_mask() : errore di lettura %d da tab(TIP)", err);
|
||||
return READ_ERROR;
|
||||
}
|
||||
if (t.get ("CODTAB") != _elab.tipo_doc_org) // verifica che il tipo di documento trovato sia quello richiesto
|
||||
{
|
||||
error_box ("TElaborazioni::run_mask() : non esiste il tipo documento %s in tab(TIP)", (const char *)_elab.tipo_doc_org);
|
||||
return DOC_TYPE_NOT_FOUND;
|
||||
}
|
||||
TFilename profilo(t.get ("S4")); // nome del profilo documento (nome del .ini associato al tipo documento originale)
|
||||
profilo.ext("ini"); // necessario per aggiungere l'estensione
|
||||
TConfig profilo_doc(profilo); // oggetto configurazione (file ini del documento)
|
||||
TConfig p(CONFIG_DITTA); // crea l'oggetto per rilevare l'autorizzazione dall'ini della ditta
|
||||
// gestione agente abilitata <==> abilitata in profilo documento e nell'ini della ditta
|
||||
int agente = (profilo_doc.get_int ("CODAG", "PROFILO") && p.get_int("AGENTE", "VE"));
|
||||
|
||||
/* se il flag per la gestione agenti è != 0, allora visualizza i campi agente ed
|
||||
adotta la stessa convenzione usata per codice cliente e zona per gestire l'eventualita' che
|
||||
l'utente non specifichi nulla.
|
||||
Se è disabilitata, allora lascia vuoti i campi codice agente da e codice agente a, in modo
|
||||
da eliminare una condizione durante il test per il filtraggio dei records.
|
||||
*/
|
||||
|
||||
// nasconde i campi se la gestione agenti è disabilitata
|
||||
if (!agente)
|
||||
{
|
||||
_msk->show (F_CODICE_AGENTE_DA, FALSE);
|
||||
_msk->show (F_CODICE_AGENTE_A, FALSE);
|
||||
}
|
||||
|
||||
if (_msk->run() == K_ESC) // se premuto esc, esci
|
||||
return ESC_PRESSED;
|
||||
|
||||
_ordinamento = _msk->get_int (F_ORDINAMENTO_EMISSIONE);
|
||||
_raggruppa = _msk->get_int (F_RAGGRUPPA);
|
||||
|
||||
TString temps; // stringa temporanea
|
||||
|
||||
// Imposta i campi dei records campione per il filtraggio
|
||||
TLocalisamfile f(LF_DOC); // file doc
|
||||
f.zero(); // azzera i campi
|
||||
TRectype first(f.curr()), last(f.curr()); // dichiara due records con la stessa struttura dei records di $doc
|
||||
|
||||
first.put("TIPOCF", 'C'); // trattare solo clienti
|
||||
last.put ("TIPOCF", 'C');
|
||||
first.put ("TIPODOC", _elab.tipo_doc_org); // tipo documento (da tab. ELD)
|
||||
last.put ("TIPODOC", _elab.tipo_doc_org);
|
||||
first.put ("STATO", _elab.stato_doc_ini); // stato documento originale
|
||||
last.put ("STATO", _elab.stato_doc_ini);
|
||||
|
||||
// codice cliente
|
||||
temps = _msk->get(F_CODICE_CLIENTE_DA);
|
||||
if (temps.not_empty())
|
||||
first.put ("CODCF", temps);
|
||||
temps = _msk->get(F_CODICE_CLIENTE_A);
|
||||
if (temps.not_empty())
|
||||
last.put ("CODCF", temps);
|
||||
|
||||
// data
|
||||
first.put ("DATADOC", _msk->get(F_DATA_DOCUMENTO_DA)); // nessun controllo perché data doc. da e data doc. a sono checktype required
|
||||
last.put ("DATADOC", _msk->get(F_DATA_DOCUMENTO_A));
|
||||
|
||||
// codice zona
|
||||
temps = _msk->get (F_CODICE_ZONA_DA); // mette in temps il valore del campo codice zona da
|
||||
if (temps.not_empty()) // se è stato inserito un valore...
|
||||
// ******************** N.B.: il campo ZONA va aggiunto a $doc. verificare se il campo è proprio ZONA *****************
|
||||
first.put("ZONA", temps); // mettilo nel campo zona
|
||||
temps = _msk->get (F_CODICE_ZONA_A);
|
||||
if (temps.not_empty())
|
||||
last.put ("ZONA", temps);
|
||||
|
||||
// codice agente: imposta i campi solo se ne è abilitata la gestione
|
||||
// se agente è disabilitato, i campi agente rimangono vuoti
|
||||
if (agente)
|
||||
{
|
||||
temps = _msk->get (F_CODICE_AGENTE_DA);
|
||||
if (temps.not_empty())
|
||||
first.put("CODCF", temps);
|
||||
temps = _msk->get (F_CODICE_AGENTE_A);
|
||||
if (temps.not_empty())
|
||||
last.put ("CODCF", temps);
|
||||
}
|
||||
|
||||
f.put ("STATO", _elab.stato_doc_ini);
|
||||
if (! (err = f.read (_isgteq)))
|
||||
error_box ("TElaborazioni::run_mask() : errore di lettura &d da doc", err);
|
||||
if (f.get ("STATO") != _elab.stato_doc_ini)
|
||||
{
|
||||
error_box ("TElaborazioni::run_mask() : non esistrono documenti allo stato %s", (const char *)_elab.stato_doc_ini);
|
||||
return NO_ORG_DOCS;
|
||||
}
|
||||
|
||||
do // scandisce tutti i records a partire dal primo che ha lo stato richiesto
|
||||
{
|
||||
TToken_string tempt; // ttoken string per aggiungere chiavi all'array
|
||||
if (f.curr() >= first && f.curr() <= last)
|
||||
{
|
||||
tempt = f.get("CODNUM"); // utilizza la chiave 1 di $doc
|
||||
tempt.add( (const char *)f.get("ANNO") );
|
||||
tempt.add( (const char *)f.get("PROVV") );
|
||||
tempt.add( (const char *)f.get ("NDOC") );
|
||||
_chiavi->add(tempt); // aggiunge la chiave del record alla lista
|
||||
}
|
||||
}
|
||||
while (err = f.read(_isnext));
|
||||
if (err !=NOERR)
|
||||
{
|
||||
error_box ("TElaborazioni::run_mask() : errore di lettura %d da doc", err);
|
||||
return READ_ERROR;
|
||||
}
|
||||
|
||||
if (!_chiavi->items()) // se l'array è vuoto, indica al chiamante che non ci sono documenti da raggruppare
|
||||
{
|
||||
error_box ("TElaborazioni::run_mask() : nessun documento originale soddisfa le condizioni richieste");
|
||||
return NO_ORG_DOCS;
|
||||
}
|
||||
|
||||
for (int i = 0; i<_chiavi->items()-1; i++)
|
||||
message_box ("Record %d: %s", i, (const char *)_chiavi->row(i));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TElaborazioni::scan_doc(void)
|
||||
{
|
||||
int err; // codice ritornato dalle procedure
|
||||
|
||||
if (err = get_info())
|
||||
return err; // ritorna al chiamante l'errore di get_info, senza eseguire run_mask
|
||||
return run_mask(); // ritorna il codice di errore di run_mask
|
||||
}
|
16
ve/ve6retv.h
Executable file
16
ve/ve6retv.h
Executable file
@ -0,0 +1,16 @@
|
||||
// Valori di ritorno delle procedure interne al modulo ve6
|
||||
|
||||
#if !defined (_VE6_RETURN_VALUES)
|
||||
#define _VE6_RETURN_VALUES
|
||||
|
||||
#define NO_ORG_DOCS 100 // indica che non ci sono documenti originali con le caratteristiche richieste
|
||||
#define ESC_PRESSED 101 // indica che è stato premuto il pulsante "Annulla" sulla maschera di selezione dei ranges
|
||||
#define RECORD_WRITE_ERROR 102 // errore nella scrittura di un record
|
||||
#define CLIENTE 1 // codici ordinamento (codici ritornati dal radiobutton della maschera)
|
||||
#define AGENTE 2
|
||||
#define ZONA 3
|
||||
#define DATA 4
|
||||
#define ELAB_NOT_FOUND 107 // indica che non è stata trovato un record per il codice di elaborazione specificato
|
||||
#define DOC_TYPE_NOT_FOUND 108 // indica che non è stato trovato un record per il tipo di documento specificato
|
||||
#define READ_ERROR 109 // indica che c'è stato un errore in lettura
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user