Patch level :4.0 673
Files correlati : Ricompilazione Demo : [ ] Commento :RICORDO CHE TC9 ESISTE SOLO NELLA 4.0; EVITARE I RIPORTI! git-svn-id: svn://10.65.10.50/trunk@15158 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7388c8a340
commit
bb2ba3f216
@ -286,7 +286,8 @@ TTS_textset::TTS_textset(const char* query)
|
||||
|
||||
TString80 field;
|
||||
// dati iva
|
||||
for (int i=0; i<8; i++)
|
||||
int i;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
field.format("TRF-IMPONIB_%d", i);
|
||||
add_field("0", field, 12, n, 475+(31*i)); // imponibile
|
||||
@ -304,7 +305,7 @@ TTS_textset::TTS_textset(const char* query)
|
||||
add_field("0", "TRF-TOT-FATT", 12, n, 723); // totale fattura
|
||||
|
||||
// conti di ricavo/costo
|
||||
for (i=0; i<8; i++)
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
field.format("TRF-CONTORIC_%d", i);
|
||||
add_field("0", field, 7, n, 735+(19*i)); // codice conto di ricavo/costo
|
||||
@ -319,7 +320,7 @@ TTS_textset::TTS_textset(const char* query)
|
||||
add_field("0", "TRF-CAU-AGG-2-PAGAM", 34, an, 939); // ulteriore descrizione aggiuntiva
|
||||
|
||||
// altri movimenti
|
||||
for (i=0; i<80; i++)
|
||||
for (i = 0; i < 80; i++)
|
||||
{
|
||||
field.format("TRF-CONTO_%d", i);
|
||||
add_field("0", field, 7, n, 973+(64*i)); // codice conto
|
||||
@ -338,7 +339,7 @@ TTS_textset::TTS_textset(const char* query)
|
||||
}
|
||||
|
||||
// ratei e risconti
|
||||
for (i=0; i<10; i++)
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
field.format("TRF-RIFER-TAB_%d", i);
|
||||
add_field("0", field, 1, an, 6093+(19*i)); // tabella di riferimento
|
||||
@ -358,7 +359,7 @@ TTS_textset::TTS_textset(const char* query)
|
||||
add_field("0", "TRF-AN-TIPO-SOGG", 1, n, 6290); // tipo soggetto ritenuta di acconto
|
||||
|
||||
// ulteriori dati ev. pagamento o movimenti diversi
|
||||
for (i=0; i<80; i++)
|
||||
for (i = 0; i < 80; i++)
|
||||
{
|
||||
field.format("TRF-EC-PARTITA-SEZ-PAG_%d", i);
|
||||
add_field("0", field, 2, n, 6291+(2*i)); // numero sezionale partita estratto conto
|
||||
@ -374,13 +375,13 @@ TTS_textset::TTS_textset(const char* query)
|
||||
add_field("0", "TRF-RIT-4", 12, n, 6526); // 4
|
||||
|
||||
// ulteriori dati per unita' produttive ricavi
|
||||
for (i=0; i<8; i++)
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
field.format("TRF-UNITA-RICAVI_%d", i);
|
||||
add_field("0", field, 2, n, 6538+(2*i)); //
|
||||
}
|
||||
// ulteriori dati per unita' produttive pagamenti
|
||||
for (i=0; i<80; i++)
|
||||
for (i = 0; i < 80; i++)
|
||||
{
|
||||
field.format("TRF-UNITA-PAGAM_%d", i);
|
||||
add_field("0", field, 2, n, 6554+(2*i)); //
|
||||
|
@ -7,8 +7,8 @@ int main(int argc, char** argv)
|
||||
const int op = argc < 2 ? 0 : argv[1][1]-'0';
|
||||
switch (op)
|
||||
{
|
||||
case 0: tc9100(argc,argv); break; // esiste sulla 4.0 Invio a Proforma
|
||||
case 1: tc9200(argc,argv); break; // esiste dalla 4.0 Invio a Sispac/Cosmo
|
||||
case 0: tc9100(argc,argv); break; // Invio a Proforma
|
||||
case 1: tc9200(argc,argv); break; // Invio a Sispac/Cosmo
|
||||
default: tc9100(argc,argv); break;
|
||||
}
|
||||
exit(0);
|
||||
|
1623
tc/tc9100.cpp
1623
tc/tc9100.cpp
File diff suppressed because it is too large
Load Diff
34
tc/tc9100a.h
34
tc/tc9100a.h
@ -1,15 +1,23 @@
|
||||
// invio dati ad altra procedura (Proforma)
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_MOVIMENTI 103
|
||||
#define F_CLIENTI 104
|
||||
#define F_FORNITORI 105
|
||||
#define F_CONTI 106
|
||||
#define F_PAGAMENTI 107
|
||||
#define F_TIPOINVIO 108
|
||||
#define F_DESTINAZIONE 109
|
||||
#define F_DATAINI 110
|
||||
#define F_DATAFIN 111
|
||||
#define F_RIPRISTINA 112
|
||||
#define F_DATARIPRISTINO 113
|
||||
#define F_CODDITTA 301
|
||||
#define F_RAGSOC 302
|
||||
#define F_MOVIMENTI 303
|
||||
#define F_CLIENTI 304
|
||||
#define F_FORNITORI 305
|
||||
#define F_CONTI 306
|
||||
#define F_PAGAMENTI 307
|
||||
#define F_TIPOINVIO 308
|
||||
#define F_DESTINAZIONE 309
|
||||
#define F_DATAINI 310
|
||||
#define F_DATAFIN 311
|
||||
#define F_RIPRISTINA 312
|
||||
#define F_DATARIPRISTINO 313
|
||||
|
||||
#define F_PDCC 315
|
||||
|
||||
#define S_TIPO 101
|
||||
#define S_GRUPPO 102
|
||||
#define S_CONTO 103
|
||||
#define S_SOTTOCONTO 104
|
||||
#define S_DESCRIZIONE 105
|
||||
|
423
tc/tc9100a.ini
423
tc/tc9100a.ini
@ -7,3 +7,426 @@ SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
TYPELEN = -1
|
||||
TYPEPOS = -1
|
||||
|
||||
[TYPE STRINGA]
|
||||
ALIGN = L
|
||||
DATA = S
|
||||
DECIMAL = 0
|
||||
FILLER = ' '
|
||||
LENGTH = 0
|
||||
PICTURE =
|
||||
|
||||
[TYPE NUMERO]
|
||||
ALIGN = R
|
||||
DATA = N
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
PICTURE =
|
||||
|
||||
[TYPE DATA]
|
||||
ALIGN =
|
||||
DATA = D
|
||||
DECIMAL = 0
|
||||
FILLER = '0'
|
||||
LENGTH = 8
|
||||
PICTURE = 1444
|
||||
|
||||
[TYPE IMPORTO]
|
||||
ALIGN = R
|
||||
DATA = N
|
||||
DECIMAL = 2
|
||||
FILLER = '0'
|
||||
LENGTH = 14
|
||||
PICTURE = @@@@@@@@@,@@
|
||||
|
||||
[RECORD T]
|
||||
|
||||
NAME(0) = ID REGISTRAZIONE
|
||||
TYPE(0) = NUMERO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 10
|
||||
FIELD(0) = NUMREG
|
||||
|
||||
NAME(1) = DATA REGISTRAZIONE
|
||||
TYPE(1) = DATA
|
||||
POSITION(1) = 10
|
||||
LENGTH(1) = 8
|
||||
FIELD(1) = DATAREG
|
||||
|
||||
NAME(2) = CODICE CAUSALE
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 18
|
||||
LENGTH(2) = 3
|
||||
FIELD(2) = CODCAUS
|
||||
|
||||
NAME(3) = DESCRIZIONE CAUSALE
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 21
|
||||
LENGTH(3) = 40
|
||||
FIELD(3) = 26->DESCR[1,40]
|
||||
|
||||
NAME(4) = DESCRIZIONE TESTATA
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 61
|
||||
LENGTH(4) = 240
|
||||
FIELD(4) = DESCR[1,40]
|
||||
|
||||
NAME(5) = DATA DOCUMENTO
|
||||
TYPE(5) = DATA
|
||||
POSITION(5) = 301
|
||||
LENGTH(5) = 8
|
||||
FIELD(5) = DATADOC
|
||||
|
||||
NAME(6) = NUMERO DOCUMENTO
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 309
|
||||
LENGTH(6) = 6
|
||||
FIELD(6) = NUMDOC
|
||||
|
||||
NAME(7) = TIPO DOCUMENTO
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 315
|
||||
LENGTH(7) = 30
|
||||
|
||||
NAME(8) = CODICE CLIFOR
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 345
|
||||
LENGTH(8) = 10
|
||||
FIELD(8) = CODCF
|
||||
|
||||
NAME(9) = TOTALE IMPONIBILE
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 355
|
||||
|
||||
NAME(10) = TOTALE IVA
|
||||
TYPE(10) = IMPORTO
|
||||
POSITION(10) = 369
|
||||
|
||||
NAME(11) = TOTALE DOCUMENTO
|
||||
TYPE(11) = IMPORTO
|
||||
POSITION(11) = 383
|
||||
FIELD(11) = TOTDOC
|
||||
|
||||
NAME(12) = DATA PAGAMENTO
|
||||
TYPE(12) = DATA
|
||||
POSITION(12) = 397
|
||||
LENGTH(12) = 8
|
||||
|
||||
NAME(13) = TIPO PAGAMENTO
|
||||
TYPE(13) = STRINGA
|
||||
POSITION(13) = 405
|
||||
LENGTH(13) = 20
|
||||
FIELD(13) = CODPAG
|
||||
|
||||
NAME(14) = DATA COMPETENZA
|
||||
TYPE(14) = DATA
|
||||
POSITION(14) = 425
|
||||
LENGTH(14) = 8
|
||||
FIELD(14) = DATACOMP
|
||||
|
||||
NAME(15) = NUMERO PROTOCOLLO
|
||||
TYPE(15) = STRINGA
|
||||
POSITION(15) = 433
|
||||
LENGTH(15) = 10
|
||||
FIELD(15) = PROTIVA
|
||||
|
||||
NAME(16) = VALUTA
|
||||
TYPE(16) = STRINGA
|
||||
POSITION(16) = 443
|
||||
LENGTH(16) = 1
|
||||
MESSAGE(16)=_FISSO,!1
|
||||
|
||||
[RECORD R]
|
||||
|
||||
NAME(0) = ID REGISTRAZIONE
|
||||
TYPE(0) = NUMERO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 10
|
||||
FIELD(0) = 23->NUMREG
|
||||
|
||||
NAME(1) = FLAG RIGA IVA
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 10
|
||||
LENGTH(1) = 1
|
||||
MESSAGE(1) = _FISSO,!N
|
||||
|
||||
NAME(2) = FLAG DARE/AVERE
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 11
|
||||
LENGTH(2) = 1
|
||||
FIELD(2) = SEZIONE
|
||||
|
||||
NAME(3) = CODICE MASTRO
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 12
|
||||
LENGTH(3) = 5
|
||||
|
||||
NAME(4) = CODICE CONTO
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 17
|
||||
LENGTH(4) = 5
|
||||
|
||||
NAME(5) = CODICE SOTTOCONTO
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 22
|
||||
LENGTH(5) = 5
|
||||
|
||||
NAME(6) = FLAG CLIFOR
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 27
|
||||
LENGTH(6) = 1
|
||||
|
||||
NAME(7) = CODICE CLIFOR
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 28
|
||||
LENGTH(7) = 10
|
||||
|
||||
NAME(8) = DESCRIZIONE RIGA
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 38
|
||||
LENGTH(8) = 40
|
||||
FIELD(8) = DESCR[1,40]
|
||||
|
||||
NAME(9) = IMPORTO SOTTOCONTO
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 78
|
||||
FIELD(9) = IMPORTO
|
||||
|
||||
NAME(10) = IMPONIBILE
|
||||
TYPE(10) = IMPORTO
|
||||
POSITION(10) = 92
|
||||
|
||||
NAME(11) = CODICE IVA
|
||||
TYPE(11) = STRINGA
|
||||
POSITION(11) = 106
|
||||
LENGTH(11) = 4
|
||||
|
||||
NAME(12) = CP INDED
|
||||
TYPE(12) = STRINGA
|
||||
POSITION(12) = 110
|
||||
LENGTH(12) = 15
|
||||
|
||||
NAME(13) = COMMESSA
|
||||
TYPE(13) = STRINGA
|
||||
POSITION(13) = 125
|
||||
LENGTH(13) = 20
|
||||
FIELD(13) = CODCMS
|
||||
|
||||
NAME(14) = SOTTOPROGETTO
|
||||
TYPE(14) = STRINGA
|
||||
POSITION(14) = 145
|
||||
LENGTH(14) = 20
|
||||
|
||||
NAME(15) = EDIZIONE
|
||||
TYPE(15) = STRINGA
|
||||
POSITION(15) = 165
|
||||
LENGTH(15) = 20
|
||||
|
||||
NAME(16) = VOCE DI SPESA
|
||||
TYPE(16) = STRINGA
|
||||
POSITION(16) = 185
|
||||
LENGTH(16) = 10
|
||||
|
||||
[RECORD I]
|
||||
|
||||
NAME(0) = ID REGISTRAZIONE
|
||||
TYPE(0) = NUMERO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 10
|
||||
FIELD(0) = NUMREG
|
||||
|
||||
NAME(1) = FLAG RIGA IVA
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 10
|
||||
LENGTH(1) = 1
|
||||
MESSAGE(1) = _FISSO,!S
|
||||
|
||||
NAME(3) = CODICE MASTRO
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 12
|
||||
LENGTH(3) = 5
|
||||
FIELD(3) = GRUPPO
|
||||
|
||||
NAME(4) = CODICE CONTO
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 17
|
||||
LENGTH(4) = 5
|
||||
FIELD(4) = CONTO
|
||||
|
||||
NAME(5) = CODICE SOTTOCONTO
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 22
|
||||
LENGTH(5) = 5
|
||||
FIELD(5) = SOTTOCONTO
|
||||
|
||||
NAME(6) = FLAG CLIFOR
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 27
|
||||
LENGTH(6) = 1
|
||||
FIELD(6) = TIPOC
|
||||
|
||||
NAME(7) = CODICE CLIFOR
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 28
|
||||
LENGTH(7) = 10
|
||||
|
||||
NAME(8) = DESCRIZIONE RIGA
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 38
|
||||
LENGTH(8) = 40
|
||||
|
||||
NAME(9) = IMPORTO SOTTOCONTO
|
||||
TYPE(9) = IMPORTO
|
||||
POSITION(9) = 78
|
||||
|
||||
NAME(10) = IMPONIBILE
|
||||
TYPE(10) = IMPORTO
|
||||
POSITION(10) = 92
|
||||
FIELD(10) = IMPONIBILE
|
||||
|
||||
NAME(11) = CODICE IVA
|
||||
TYPE(11) = STRINGA
|
||||
POSITION(11) = 106
|
||||
LENGTH(11) = 4
|
||||
FIELD(11) = CODIVA
|
||||
|
||||
NAME(12) = CP INDED
|
||||
TYPE(12) = STRINGA
|
||||
POSITION(12) = 110
|
||||
LENGTH(12) = 15
|
||||
|
||||
NAME(13) = COMMESSA
|
||||
TYPE(13) = STRINGA
|
||||
POSITION(13) = 125
|
||||
LENGTH(13) = 20
|
||||
|
||||
NAME(14) = SOTTOPROGETTO
|
||||
TYPE(14) = STRINGA
|
||||
POSITION(14) = 145
|
||||
LENGTH(14) = 20
|
||||
|
||||
NAME(15) = EDIZIONE
|
||||
TYPE(15) = STRINGA
|
||||
POSITION(15) = 165
|
||||
LENGTH(15) = 20
|
||||
|
||||
NAME(16) = VOCE DI SPESA
|
||||
TYPE(16) = STRINGA
|
||||
POSITION(16) = 185
|
||||
LENGTH(16) = 10
|
||||
|
||||
|
||||
[RECORD C]
|
||||
|
||||
NAME(0) = CODICE
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 10
|
||||
FIELD(0) = 20->CODCF
|
||||
|
||||
NAME(1) = RAGIONE SOCIALE
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 11
|
||||
LENGTH(1) = 40
|
||||
MESSAGE(1) = _RAGSOC
|
||||
FIELD(1) = 20->RAGSOC
|
||||
|
||||
NAME(2) = PARTITA IVA
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 50
|
||||
LENGTH(2) = 12
|
||||
FIELD(2)=20->PAIV
|
||||
|
||||
NAME(3) = CODICE FISCALE
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 62
|
||||
LENGTH(3) = 16
|
||||
FIELD(3) = 20->COFI
|
||||
|
||||
NAME(4) = INDIRIZZO
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 78
|
||||
LENGTH(4) = 40
|
||||
FIELD(4) = 20->INDCF
|
||||
|
||||
NAME(5) = CAP DI RESIDENZA
|
||||
TYPE(5) = STRINGA
|
||||
POSITION(5) = 118
|
||||
LENGTH(5) = 5
|
||||
FIELD(5)=20->CAPCF
|
||||
|
||||
NAME(6) = COMUNE DI RESIDENZA
|
||||
TYPE(6) = STRINGA
|
||||
POSITION(6) = 123
|
||||
LENGTH(6) = 23
|
||||
FIELD(6) = 13->DENCOM[1,40]
|
||||
|
||||
NAME(7) = PROVINCIA DI RESIDENZA
|
||||
TYPE(7) = STRINGA
|
||||
POSITION(7) = 163
|
||||
LENGTH(7) = 2
|
||||
FIELD(7) = 13->PROVCOM
|
||||
|
||||
NAME(8) = TELEFONO
|
||||
TYPE(8) = STRINGA
|
||||
POSITION(8) = 165
|
||||
LENGTH(8) = 20
|
||||
FIELD(8) = 20->TEL
|
||||
MESSAGE(8) = _TELEFONO
|
||||
|
||||
[RECORD P]
|
||||
|
||||
NAME(0) = CODICE MASTRO
|
||||
TYPE(0) = STRINGA
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 5
|
||||
FIELD(0)=19->GRUPPO
|
||||
|
||||
NAME(1) = CODICE CONTO
|
||||
TYPE(1) = STRINGA
|
||||
POSITION(1) = 5
|
||||
B LENGTH(1) = 5
|
||||
FIELD(1)=19->CONTO
|
||||
|
||||
NAME(2) = CODICE SOTTOCONTO
|
||||
TYPE(2) = STRINGA
|
||||
POSITION(2) = 10
|
||||
LENGTH(2) = 5
|
||||
FIELD(2)=19->SOTTOCONTO
|
||||
|
||||
NAME(3) = DESCRIZIONE
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 15
|
||||
LENGTH(3) = 80
|
||||
FIELD(3)=19->DESCR
|
||||
|
||||
[RECORD G]
|
||||
|
||||
NAME(0) = ID REGISTRAZIONE PAGAMENTO
|
||||
TYPE(0) = NUMERO
|
||||
POSITION(0) = 0
|
||||
LENGTH(0) = 10
|
||||
MESSAGE(0) = _NREGPAG
|
||||
|
||||
NAME(1) = ID REGISTRAZIONE COSTO
|
||||
TYPE(1) = NUMERO
|
||||
POSITION(1) = 10
|
||||
LENGTH(1) = 10
|
||||
MESSAGE(1) = _NREGCOSTO
|
||||
|
||||
NAME(2) = IMPORTO
|
||||
TYPE(2) = IMPORTO
|
||||
POSITION(2) = 20
|
||||
MESSAGE(2) = _IMPORTO
|
||||
|
||||
NAME(3) = FLAG ACCONTO/SALDO
|
||||
TYPE(3) = STRINGA
|
||||
POSITION(3) = 34
|
||||
LENGTH(3) = 1
|
||||
MESSAGE(3) = _FLAG
|
||||
|
||||
NAME(4) = VALUTA
|
||||
TYPE(4) = STRINGA
|
||||
POSITION(4) = 35
|
||||
LENGTH(4) = 1
|
||||
MESSAGE(4)=_FISSO,!1
|
||||
|
170
tc/tc9100a.uml
170
tc/tc9100a.uml
@ -1,5 +1,19 @@
|
||||
#include "tc9100a.h"
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Invio dati contabilita'" -1 -1 78 20
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
@ -31,70 +45,188 @@ END
|
||||
BOOLEAN F_MOVIMENTI
|
||||
BEGIN
|
||||
PROMPT 3 5 "Movimenti contabili"
|
||||
MESSAGE TRUE,ENABLE F_DATAFIN
|
||||
MESSAGE FALSE CLEAR,F_PAGAMENTI|DISABLE,F_DATAFIN
|
||||
MESSAGE TRUE ENABLE,F_PAGAMENTI|ENABLE,F_DATAFIN
|
||||
END
|
||||
|
||||
BOOLEAN F_CLIENTI
|
||||
BEGIN
|
||||
PROMPT 3 6 "Clienti"
|
||||
PROMPT 3 6 "Clienti"
|
||||
END
|
||||
|
||||
BOOLEAN F_FORNITORI
|
||||
BEGIN
|
||||
PROMPT 3 7 "Fornitori"
|
||||
PROMPT 3 7 "Fornitori"
|
||||
END
|
||||
|
||||
BOOLEAN F_CONTI
|
||||
BEGIN
|
||||
PROMPT 3 8 "Piano dei conti"
|
||||
PROMPT 3 8 "Piano dei conti"
|
||||
END
|
||||
|
||||
BOOLEAN F_PAGAMENTI
|
||||
BEGIN
|
||||
PROMPT 40 5 "Pagamenti"
|
||||
PROMPT 40 5 "Pagamenti"
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOINVIO 20
|
||||
BEGIN
|
||||
PROMPT 2 10 "Invio a "
|
||||
ITEM "P|Proforma"
|
||||
PROMPT 2 10 "Invio a "
|
||||
ITEM "P|Proforma"
|
||||
END
|
||||
|
||||
STRING F_DESTINAZIONE 20
|
||||
BEGIN
|
||||
PROMPT 2 11 "Destinazione "
|
||||
PROMPT 2 11 "Destinazione "
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 12 "Data iniziale "
|
||||
PROMPT 2 12 "Data iniziale "
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 40 12 "Data finale "
|
||||
PROMPT 40 12 "Data finale "
|
||||
END
|
||||
|
||||
BUTTON F_RIPRISTINA 20
|
||||
BUTTON F_RIPRISTINA 20 2
|
||||
BEGIN
|
||||
PROMPT 2 14 "Annulla invio"
|
||||
MESSAGE SHOW,F_DATARIPRISTINO|ENABLE,F_DATARIPRISTINO
|
||||
PROMPT 2 14 "Annulla invio"
|
||||
MESSAGE SHOW,F_DATARIPRISTINO|ENABLE,F_DATARIPRISTINO
|
||||
END
|
||||
|
||||
DATE F_DATARIPRISTINO
|
||||
BEGIN
|
||||
PROMPT 25 14 "Annulla invio fino al "
|
||||
FLAGS "HD"
|
||||
PROMPT 25 14 "Annulla invio fino al "
|
||||
FLAGS "HD"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Conti" -1 -1 78 20
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
PROMPT 1 1 "@bPiano dei conti contabile"
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
SPREADSHEET F_PDCC 78 -6
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
PROMPT 1 2 "Pdcc"
|
||||
ITEM "Tipo"
|
||||
ITEM "Gruppo"
|
||||
ITEM "Conto"
|
||||
ITEM "Sottoconto"
|
||||
ITEM "Descrizione@50"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 1 17 "Inserire conti di tipo F per ritenute Fiscali"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 1 18 "S per ritenute Sociali, C per Costi, P per Pagamenti"
|
||||
END
|
||||
|
||||
BUTTON DLG_SAVEREC 12 2
|
||||
BEGIN
|
||||
PROMPT -11 19 ""
|
||||
PICTURE BMP_SAVEREC
|
||||
PICTURE BMP_SAVERECDN
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Riga dello sheet dei conti
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
PAGE "Riga Piano dei conti contabile" -1 -1 78 8
|
||||
|
||||
LIST S_TIPO 1 18
|
||||
BEGIN
|
||||
PROMPT 1 1 "Tipo "
|
||||
ITEM "C|Costi"
|
||||
ITEM "P|Pagamenti"
|
||||
ITEM "F|Ritenute fiscali"
|
||||
ITEM "S|Ritenute sociali"
|
||||
END
|
||||
|
||||
NUMBER S_GRUPPO 3
|
||||
BEGIN
|
||||
PROMPT 1 2 "Gruppo "
|
||||
USE LF_PCON KEY 1 SELECT CONTO=""
|
||||
INPUT GRUPPO S_GRUPPO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT S_GRUPPO GRUPPO
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER S_CONTO 3
|
||||
BEGIN
|
||||
PROMPT 1 3 "Conto "
|
||||
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
|
||||
COPY INPUT S_GRUPPO
|
||||
INPUT CONTO S_CONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT S_GRUPPO GRUPPO
|
||||
OUTPUT S_CONTO CONTO
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE REQIF_FUNC 1 S_SOTTOCONTO
|
||||
END
|
||||
|
||||
NUMBER S_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "Sottoconto "
|
||||
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
|
||||
COPY INPUT S_CONTO
|
||||
INPUT SOTTOCONTO S_SOTTOCONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT S_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT S_CONTO CONTO
|
||||
OUTPUT S_GRUPPO GRUPPO
|
||||
OUTPUT S_DESCRIZIONE DESCR
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING S_DESCRIZIONE 50
|
||||
BEGIN
|
||||
PROMPT 1 5 "Descrizione "
|
||||
KEY 2
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR S_DESCRIZIONE
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT S_SOTTOCONTO
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -1,2 +1,5 @@
|
||||
|
||||
[OPZIONI]
|
||||
CONFSTRINGA =
|
||||
DATA =
|
||||
PERCORSO =
|
||||
|
||||
|
384
tc/tc9200.cpp
384
tc/tc9200.cpp
@ -1,7 +1,385 @@
|
||||
//NON riportare nulla!!!! Esiste dalla 4.0; qui e' solo un segnaposto
|
||||
#include "tc9.h"
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <filetext.h>
|
||||
|
||||
#include "tc0.h"
|
||||
#include "tc9200a.h"
|
||||
|
||||
#include <clifo.h>
|
||||
#include <mov.h>
|
||||
#include <rmov.h>
|
||||
#include <rmoviva.h>
|
||||
|
||||
#define ALIAS_REG 100
|
||||
|
||||
class TInvioS_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TInvioS_file(const TString& file_name);
|
||||
virtual ~TInvioS_file() { }
|
||||
};
|
||||
|
||||
TInvioS_file::TInvioS_file(const TString& file_name)
|
||||
: TFile_text(file_name, "tc9200a.ini")
|
||||
{
|
||||
}
|
||||
|
||||
class TInvioS_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
|
||||
TInvioS_mask();
|
||||
|
||||
virtual ~TInvioS_mask(){};
|
||||
};
|
||||
|
||||
TInvioS_mask::TInvioS_mask() :TAutomask ("tc9200a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TInvioS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_CODDITTA:
|
||||
if (e==fe_init && o.empty())
|
||||
{
|
||||
set(F_CODDITTA, main_app().get_firm());
|
||||
((TEdit_field&) o).check();
|
||||
disable(F_CODDITTA);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
class TInvioS : public TSkeleton_application
|
||||
{
|
||||
TCursor* _cur;
|
||||
TInvioS_mask* _msk;
|
||||
TInvioS_file* _trasfile;
|
||||
TConfig* _configfile;
|
||||
TDate _dataini, _datafin;
|
||||
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual bool destroy(void);
|
||||
virtual void main_loop() ;
|
||||
void invio_sispac();
|
||||
long i_sispac_clifor(const char* tipocf, const bool invio = TRUE);
|
||||
long i_sispac_movcont(const bool invio = TRUE);
|
||||
long i_sispac_moviva(const bool invio = TRUE);
|
||||
|
||||
public:
|
||||
TInvioS_file* apri_file(const char* nome);
|
||||
void chiudi_file(TInvioS_file* trasfile);
|
||||
TConfig& config() {return *_configfile;};
|
||||
TInvioS() {} ;
|
||||
virtual ~TInvioS() {} ;
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TInvioS& app() { return (TInvioS&) main_app();}
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
if (code == "_FISSO")
|
||||
{
|
||||
// gestione dei campi fissi per i record delle riba
|
||||
// sintassi: _FISSO,!<valore>
|
||||
// dove: <valore> è la stringa fissa da emettere
|
||||
TString in(s.get());
|
||||
CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'");
|
||||
in.ltrim(1);
|
||||
in.trim();
|
||||
valore = in;
|
||||
}
|
||||
else if (code == "_TIPORIGA")
|
||||
{
|
||||
valore = str.empty() ? " " : "S";
|
||||
}
|
||||
else if (code == "_CODPAG")
|
||||
{
|
||||
valore = app().config().get(str, "PAGAMENTI");
|
||||
}
|
||||
else if (code == "_OPZIONI")
|
||||
{
|
||||
TString in(s.get());
|
||||
valore = app().config().get(in, "OPZIONI");
|
||||
}
|
||||
else if (code == "_IMPORTO")
|
||||
{
|
||||
real importo(str);
|
||||
valore = importo.string(0,2);
|
||||
valore.strip("-");
|
||||
valore.strip("+");
|
||||
valore.strip(".");
|
||||
}
|
||||
else if (code == "_IMPORTORIGAIVA")
|
||||
{
|
||||
real imponibile = cur.curr(LF_RMOVIVA).get_real(RMI_IMPONIBILE);;
|
||||
real imposta = cur.curr(LF_RMOVIVA).get_real(RMI_IMPOSTA);;
|
||||
imponibile += imposta;
|
||||
valore = imposta.string(0,2);
|
||||
valore.strip("-");
|
||||
valore.strip("+");
|
||||
valore.strip(".");
|
||||
}
|
||||
else if (code == "_INDIR")
|
||||
{
|
||||
valore = cur.curr(LF_CLIFO).get(CLI_INDCF);
|
||||
valore << ' ' << cur.curr(LF_CLIFO).get(CLI_CIVCF);
|
||||
valore.cut(40);
|
||||
}
|
||||
else if (code == "_GIUFIS")
|
||||
{
|
||||
const char c = str[0];
|
||||
valore = (c == 'F') ? "S" : "N";
|
||||
}
|
||||
else if (code == "_TITOLARE")
|
||||
{
|
||||
valore = (str.empty() ? "N" : "S");
|
||||
}
|
||||
else if (code == "_TIPODET")
|
||||
{
|
||||
valore = (str.empty() ? " " : "100");
|
||||
}
|
||||
else if (code == "_CONTO")
|
||||
{
|
||||
int gruppo = cur.curr(LF_CLIFO).get_int(CLI_GRUPPO);
|
||||
if (gruppo == 10)
|
||||
gruppo = 0;
|
||||
int conto = cur.curr(LF_CLIFO).get_int(CLI_CONTO);
|
||||
long codice = cur.curr(LF_CLIFO).get_int(CLI_CODCF);
|
||||
valore.format("%03d%03d%06ld", gruppo, conto, codice);
|
||||
}
|
||||
else if (code == "_CONTOMOV")
|
||||
{
|
||||
int gruppo = cur.curr(LF_RMOV).get_int(RMV_GRUPPO);
|
||||
if (gruppo == 10)
|
||||
gruppo = 0;
|
||||
int conto = cur.curr(LF_RMOV).get_int(RMV_CONTO);
|
||||
long codice = cur.curr(LF_RMOV).get_int(RMV_SOTTOCONTO);
|
||||
valore.format("%03d%03d%06ld", gruppo, conto, codice);
|
||||
}
|
||||
else if (code == "_CONTOMOVIVA")
|
||||
{
|
||||
int gruppo = cur.curr(LF_RMOVIVA).get_int(RMI_GRUPPO);
|
||||
if (gruppo == 10)
|
||||
gruppo = 0;
|
||||
int conto = cur.curr(LF_RMOVIVA).get_int(RMI_CONTO);
|
||||
long codice = cur.curr(LF_RMOVIVA).get_int(RMI_SOTTOCONTO);
|
||||
valore.format("%03d%03d%06ld", gruppo, conto, codice);
|
||||
}
|
||||
else NFCHECK("Macro non definita: %s", (const char *)code);
|
||||
str = valore;
|
||||
}
|
||||
|
||||
TInvioS_file* TInvioS::apri_file(const char* nome)
|
||||
{
|
||||
TFilename filename = _msk->get(F_DESTINAZIONE);
|
||||
filename.add(nome);
|
||||
filename.ext("txt");
|
||||
if (filename.exist())
|
||||
remove(filename);
|
||||
TInvioS_file* trasfile = new TInvioS_file(filename);
|
||||
trasfile->open(filename,'w');
|
||||
trasfile->force_record_separator();
|
||||
return trasfile;
|
||||
}
|
||||
|
||||
void TInvioS::chiudi_file(TInvioS_file* trasfile)
|
||||
{
|
||||
trasfile->close();
|
||||
delete trasfile;
|
||||
}
|
||||
|
||||
long TInvioS::i_sispac_movcont(const bool invio)
|
||||
{
|
||||
TRectype da(LF_MOV);
|
||||
TRectype a(LF_MOV);
|
||||
TDate dataini = _msk->get_date(F_DATAINI);
|
||||
TDate datafin = _msk->get_date(F_DATAFIN);
|
||||
if (dataini.ok())
|
||||
da.put(MOV_DATAREG, dataini);
|
||||
if (datafin.ok())
|
||||
a.put(MOV_DATAREG, datafin);
|
||||
TRelation rel(LF_MOV);
|
||||
rel.add(LF_RMOV, "NUMREG==NUMREG", 1);
|
||||
rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1);
|
||||
TCursor cur(&rel, "", 2, &da, &a);
|
||||
const long cur_items = cur.items();
|
||||
if (cur_items != 0)
|
||||
{
|
||||
cur.freeze();
|
||||
TRectype& cur_rec = cur.curr();
|
||||
for (cur = 0; cur.pos() < cur_items; ++(cur))
|
||||
{
|
||||
const long numreg = cur.curr().get_long(MOV_NUMREG);
|
||||
bool continua = TRUE;
|
||||
while (continua)
|
||||
{
|
||||
const long numregrig = cur.curr(LF_RMOV).get_long(RMV_NUMREG);
|
||||
if (numreg == numregrig)
|
||||
{
|
||||
if (invio)
|
||||
{
|
||||
TRectype& cur_rec_righe = cur.curr(LF_RMOV);
|
||||
TRecord_text recrighe;
|
||||
recrighe.set_type("R");
|
||||
_trasfile->autoload(recrighe, cur);
|
||||
_trasfile->write(recrighe);
|
||||
}
|
||||
}
|
||||
continua = cur.next_match(LF_RMOV, "NUMREG");
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
long TInvioS::i_sispac_moviva(const bool invio)
|
||||
{
|
||||
TRectype da(LF_MOV);
|
||||
TRectype a(LF_MOV);
|
||||
da.put(MOV_DATAREG, _dataini);
|
||||
a.put(MOV_DATAREG, _datafin);
|
||||
TRelation rel(LF_MOV);
|
||||
rel.add(LF_RMOVIVA, "NUMREG==NUMREG", 1);
|
||||
rel.add("REG", "CODTAB[1,4]==ANNOIVA|CODTAB[5,7]==REG", 1);
|
||||
rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1);
|
||||
TCursor cur(&rel, "", 2, &da, &a);
|
||||
const long cur_items = cur.items();
|
||||
if (cur_items != 0)
|
||||
|
||||
{
|
||||
cur.freeze();
|
||||
TRectype& cur_rec = cur.curr();
|
||||
for (cur = 0; cur.pos() < cur_items; ++(cur))
|
||||
{
|
||||
const long numreg = cur.curr().get_long(MOV_NUMREG);
|
||||
bool continua = TRUE;
|
||||
while (continua)
|
||||
{
|
||||
const long numregrig = cur.curr(LF_RMOVIVA).get_long(RMI_NUMREG);
|
||||
if (numreg == numregrig)
|
||||
{
|
||||
if (invio)
|
||||
{
|
||||
TRectype& cur_rec_righe = cur.curr(LF_RMOVIVA);
|
||||
TRecord_text recrighe;
|
||||
recrighe.set_type("I");
|
||||
_trasfile->autoload(recrighe, cur);
|
||||
_trasfile->write(recrighe);
|
||||
}
|
||||
}
|
||||
continua = cur.next_match(LF_RMOVIVA, "NUMREG");
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
long TInvioS::i_sispac_clifor(const char* tipocf, const bool invio)
|
||||
{
|
||||
TString80 nomefile = "FILE";
|
||||
nomefile << tipocf;
|
||||
TInvioS_file* trasfilecf = apri_file(_configfile->get(nomefile, "OPZIONI"));
|
||||
TRelation rel(LF_CLIFO);
|
||||
rel.add(LF_COMUNI, "STATO==STATOCF|COM==COMCF", 1);
|
||||
rel.add(LF_ANAGFIS,"CODANAGR==CODANAGPER", 1);
|
||||
rel.add(LF_ANAG,"TIPOA==TIPOPERS|CODANAGR==CODANAGPER", 1);
|
||||
TString80 filtro;
|
||||
filtro = "20->TIPOCF == \"";
|
||||
filtro << tipocf;
|
||||
filtro << "\"";
|
||||
TCursor cur(&rel);
|
||||
cur.setfilter(filtro, TRUE);
|
||||
const long cur_items = cur.items();
|
||||
if (cur_items != 0 && invio)
|
||||
{
|
||||
cur.freeze();
|
||||
TRectype& cur_rec = cur.curr();
|
||||
for (cur = 0; cur.pos() < cur_items; ++(cur))
|
||||
{
|
||||
TRecord_text rec;
|
||||
rec.set_type(tipocf);
|
||||
trasfilecf->autoload(rec, cur);
|
||||
trasfilecf->write(rec);
|
||||
}
|
||||
}
|
||||
chiudi_file(trasfilecf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//metodone globale che chiama, come un menu, i vari sottometodi in base alle scelte sulla maschera
|
||||
void TInvioS::invio_sispac()
|
||||
{
|
||||
if (_msk->get_bool(F_CLIFOR))
|
||||
{
|
||||
i_sispac_clifor("C");
|
||||
i_sispac_clifor("F");
|
||||
}
|
||||
if (_msk->get_bool(F_MOVCONT))
|
||||
{
|
||||
TString80 filename = _configfile->get("FILEM", "OPZIONI");
|
||||
_trasfile = apri_file(filename);
|
||||
i_sispac_movcont();
|
||||
i_sispac_moviva();
|
||||
chiudi_file(_trasfile);
|
||||
}
|
||||
}
|
||||
|
||||
bool TInvioS::create()
|
||||
{
|
||||
_msk = new TInvioS_mask();
|
||||
TFilename configname = "tc9200conf.ini";
|
||||
configname.custom_path();
|
||||
_configfile = new TConfig(configname);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TInvioS::destroy()
|
||||
{
|
||||
delete _configfile;
|
||||
delete _msk;
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TInvioS::main_loop()
|
||||
{
|
||||
_msk->set(F_NUMEROINVIO, _configfile->get_int("NUMEROINVIO","OPZIONI")+1);
|
||||
_msk->set(F_DATAINI, _configfile->get("DATA","OPZIONI"));
|
||||
_msk->set(F_DESTINAZIONE, _configfile->get("PERCORSO","OPZIONI"));
|
||||
while (_msk->run() != K_QUIT)
|
||||
{
|
||||
_configfile->set("NUMEROINVIO", _msk->get(F_NUMEROINVIO),"OPZIONI");
|
||||
_configfile->set("DATA", _msk->get_date(F_DATAFIN),"OPZIONI");
|
||||
_configfile->set("PERCORSO", _msk->get(F_DESTINAZIONE),"OPZIONI");
|
||||
_configfile->set_paragraph("PAGAMENTI");
|
||||
_dataini = _msk->get_date(F_DATAINI);
|
||||
_datafin = _msk->get_date(F_DATAFIN);
|
||||
const char tipoinvio = _msk->get(F_TIPOINVIO)[0];
|
||||
if (tipoinvio == 'S')
|
||||
invio_sispac();
|
||||
}
|
||||
}
|
||||
|
||||
int tc9200(int argc, char **argv)
|
||||
{
|
||||
return 0;
|
||||
TInvioS a;
|
||||
a.run(argc, argv, "Invio dati contabilità Sispac/Cosmo");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,8 @@ Module = 27
|
||||
Flags = ""
|
||||
Item_01 = "TeamSystem", [TCMENU_002]
|
||||
Item_02 = "Zucchetti", "tc1 -0", ""
|
||||
Item_03 = "Proforma", "tc9 -0", ""
|
||||
Item_04 = "Sispac/Cosmo", "tc9 -1", ""
|
||||
|
||||
[TCMENU_002]
|
||||
Caption = "TeamSystem"
|
||||
|
Loading…
x
Reference in New Issue
Block a user