Aggiunto backup di tutto

Aggiunti due form IVA


git-svn-id: svn://10.65.10.50/trunk@1525 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-06-28 16:31:24 +00:00
parent 650d88c3d8
commit b72d034963
5 changed files with 735 additions and 52 deletions

View File

@ -42,7 +42,7 @@ public:
class TArchive : public TObject
{
enum { BUFSIZE = 4096 };
enum { BUFSIZE = 4096*7 };
ALArchive* _arc;
protected:
@ -53,6 +53,9 @@ protected:
bool fsplit(const char* filename, char floppy, const char* desc = "") const;
bool fbuild(const char* filename, char floppy) const;
int build_backup_list(long firm, TString_array& fl) const;
int build_restore_list(long firm, char floppy, TString_array& fl) const;
public:
bool backup(const char* dir, char floppy, const char* desc);
bool backup(long firm, char floppy, const char* desc);
@ -79,7 +82,7 @@ FILE* TArchive::ask_disk(TFilename& name, int disk, char floppy, bool lettura) c
retry = yesno_box("Il file %s non e' accessibile: riprovare?", (const char*)name);
else
{
setvbuf(f, NULL, _IOFBF, 32000);
setvbuf(f, NULL, _IOFBF, BUFSIZE);
retry = FALSE;
}
}
@ -94,6 +97,64 @@ long TArchive::fsize(FILE* f) const
const long s = ftell(f);
fseek(f, 0, SEEK_SET);
return s;
}
int TArchive::build_backup_list(long firm, TString_array& fl) const
{
fl.destroy();
if (firm < 0L)
{
fl.add(firm2dir(0L));
TLocalisamfile ditte(LF_NDITTE);
for (int err = ditte.first(); err == NOERR; err = ditte.next())
{
const char* dir = firm2dir(ditte.get_long("CODDITTA"));
if (fexist(dir))
fl.add(dir);
}
TFilename name(firm2dir(-1)); // __ptprf
name.add("config"); // Aggiungi configurazioni
if (fexist(name))
fl.add(name);
}
else
fl.add(firm2dir(firm));
return fl.items();
}
// Costruisce la lista delle directory da scompattare
int TArchive::build_restore_list(long firm, char floppy, TString_array& fl) const
{
if (firm < 0) // Crea lista automaticamente
{
TFilename name("a:/backup.ini"); name[0] = floppy;
TConfig ini(name);
const int max = ini.list_paragraphs(fl); // Lista degli archivi
for (int i = max-1; i >= 0; i--)
{
const int disk = ini.get_int("Disk", fl.row(i));
if (disk == 1)
{
firm = atol(fl.row(i));
fl.add(firm2dir(firm), i); // Aggiungi gli archivi che iniziano qui
}
else fl.destroy(i, TRUE); // Elimina gli archivi che non iniziano qui
}
name = firm2dir(-1); // __ptprf
name.add("config"); // Aggiungi configurazioni
fl.add(name);
}
else
{
fl.destroy();
fl.add(firm2dir(firm)); // Inserisci solo una ditta (o COM)
}
return fl.items();
}
@ -103,6 +164,7 @@ bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
FILE* i = fopen(from, "rb"), *o = NULL;
if (i == NULL) return error_box("Impossibile aprire il file '%s'", from);
setvbuf(i, NULL, _IOFBF, BUFSIZE);
const long tot = fsize(i);
@ -118,10 +180,10 @@ bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
bool ok = TRUE;
while (ok)
{
const word letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
const size_t letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
if (o != NULL)
ok = letti ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
ok = (letti > 0) ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
else
ok = FALSE;
@ -135,23 +197,40 @@ bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
TFilename parag(work.name()); parag.ext("");
TFilename ini("a:/backup.ini"); ini[0] = floppy;
if (fexist(ini))
bool asked = FALSE;
while (!asked)
{
TConfig c(ini, parag);
const TString16 d(c.get("Date"));
if (d.not_empty())
if (fexist(ini))
{
ok = yesno_box("Il disco %d contiene gia' un backup del direttorio %s del %s"
"\nSi desidera continuare ugualmente?",
disk, (const char*)parag, (const char*)d);
if (!ok) break;
}
}
else
{
FILE* i = fopen(ini, "w"); // Crea il file backup.ini
fclose(i);
TConfig c(ini, parag);
const int d = c.get_int("Disk");
if (d == disk)
{
ok = yesno_box("Il disco %d contiene gia' un backup del direttorio %s del %s"
"\nSi desidera continuare?",
disk, (const char*)parag, (const char*)c.get("Date"));
asked = TRUE;
}
else
{
if (d > 0)
{
ok = yesno_box("Inserire il disco %d nel drive %c:"
"\nSi desidera continuare?", disk, floppy);
if (!ok) break;
}
else
asked = TRUE;
}
}
else
{
FILE* i = fopen(ini, "w"); // Crea il file backup.ini
fclose(i);
asked = TRUE;
}
}
if (!ok) break;
TConfig c(ini, parag);
const char* oggi = TDate(TODAY).string();
@ -160,14 +239,16 @@ bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
c.set("Description", desc, NULL, TRUE);
c.set("Date", oggi, NULL, TRUE);
ok = letti ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
ok = (letti > 0) ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
if (!ok) error_box("Impossibile scrivere i dati sul dischetto");
}
}
w.addstatus(letti);
if (letti < BUFSIZE) break;
if (ok) ok = !w.iscancelled();
if (ok)
ok = !w.iscancelled();
if (letti < BUFSIZE)
break;
}
fclose(i);
@ -182,7 +263,9 @@ bool TArchive::fbuild(const char* filename, char floppy) const
const TFilename work(filename);
FILE* o = fopen(work, "wb"), *i = NULL;
if (o == NULL) return error_box("Impossibile creare il file '%s'", (const char*)work);
if (o == NULL)
return error_box("Impossibile creare il file '%s'", (const char*)work);
setvbuf(o, NULL, _IOFBF, BUFSIZE);
long totale = 0L; // Bytes letti
long max = 1440000L; // Bytes da leggere
@ -198,7 +281,7 @@ bool TArchive::fbuild(const char* filename, char floppy) const
bool ok = TRUE;
while (ok)
{
word letti = 0;
size_t letti = 0;
if (i != NULL)
{
letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
@ -207,7 +290,7 @@ bool TArchive::fbuild(const char* filename, char floppy) const
else
ok = FALSE;
if (!ok)
if (!ok) // Richiedi nuovo disco
{
if (i != NULL) fclose(i);
i = ask_disk(name, ++disk, floppy, TRUE);
@ -227,7 +310,7 @@ bool TArchive::fbuild(const char* filename, char floppy) const
}
w.setmax(max);
if (ok)
if (ok) // Leggi primo blocco di bytes
{
letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
ok = letti > 0;
@ -235,7 +318,7 @@ bool TArchive::fbuild(const char* filename, char floppy) const
}
}
if (ok)
if (ok) // La lettura e stata fatta bene
{
ok = fwrite((char*)(const char*)buffer, 1, letti, o) == letti;
if (ok)
@ -247,7 +330,8 @@ bool TArchive::fbuild(const char* filename, char floppy) const
else error_box("Impossibile scrivere i dati sul file %s", (const char*)work);
}
if (letti < BUFSIZE || totale == max) break;
if (!ok || totale == max) // Esci in caso di errore o se hai finito
break;
}
fclose(o);
@ -269,8 +353,9 @@ bool TArchive::backup(const char* dir, char floppy, const char* desc)
TFilename work; work.tempdir(); work.add(name); work.ext("gal");
_arc = new ALArchive(work);
TProgress_win w("Archiviazione", this);
TString256 title("Archiviazione di "); title << name;
TProgress_win w(title, this);
ALEntryList list(w.monitor());
_arc->AddWildCardFiles(list, "*.*");
@ -295,9 +380,18 @@ bool TArchive::backup(const char* dir, char floppy, const char* desc)
}
bool TArchive::backup(long firm, char floppy, const char* desc)
{
const TFilename dir(firm2dir(firm));
return backup(dir, floppy, desc);
{
TString_array fl;
const int num_ditte = build_backup_list(firm, fl);
bool ok = TRUE;
for (int f = 0; f < num_ditte; f++)
{
ok = backup(fl.row(f), floppy, desc);
if (!ok) break;
}
return ok;
}
bool TArchive::restore(const char* dir, char floppy, bool tmp)
@ -362,8 +456,18 @@ bool TArchive::restore(const char* dir, char floppy, bool tmp)
bool TArchive::restore(long firm, char floppy, bool temp)
{
const TFilename dir(firm2dir(firm));
return restore(dir, floppy, temp);
TString_array fl;
const int num_ditte = build_restore_list(firm, floppy, fl);
bool ok = TRUE;
for (int f = 0; f < num_ditte; f++)
{
ok = restore(fl.row(f), floppy, temp);
if (!ok) break;
}
return ok;
}
void TArchive::stop_job()
@ -460,8 +564,11 @@ KEY TArchive_app::query(long& firm, char& floppy, TString& desc, bool& temp) con
const KEY k = m.run();
if (k != K_QUIT)
{
firm = m.get_long(F_CODDITTA);
{
if (m.get(F_DATA) == "T")
firm = -1;
else
firm = m.get_long(F_CODDITTA);
floppy = m.get(F_FLOPPY)[0];
desc = m.get(F_DESCR);
temp = m.get_bool(F_TEMP);

View File

@ -13,7 +13,8 @@ LIST F_DATA 1 14
BEGIN
PROMPT 17 1 "Dati "
ITEM " |Ditta" MESSAGE ENABLE,1@
ITEM "C|Dati comuni" MESSAGE CLEAR,1@
ITEM "C|Dati comuni" MESSAGE CLEAR,1@|"Archivi comuni",F_RAGSOC
ITEM "T|Tutti" MESSAGE CLEAR,1@|"Archivi comuni e ditte",F_RAGSOC
END
NUMBER F_CODDITTA 5

376
ba/boltitcf.frm Executable file
View File

@ -0,0 +1,376 @@
USE %DEL
JOIN 9 INTO CODDITTA=CODTAB[1,5]
JOIN 6 TO 9 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 9 INTO CODANAGR=CODANAGR
JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC
JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN %UCC TO 213@ ALIAS 14 INTO CODTAB=UFFCONC
END
SECTION BODY ODD 24 0 0
GROUP
BEGIN
KEY "Prima sezione"
END
NUMERO
BEGIN
KEY "IMPORTO TRIBUTO"
PROMPT 2 13 ""
MESSAGE COPY,10@
PICTURE "###.###.###^^^"
FIELD R0
END
NUMERO
BEGIN
KEY "INTERESSI"
PROMPT 12 13 ""
MESSAGE ADD,10@
PICTURE "###.###.###^^^"
FIELD R1
END
NUMERO
BEGIN
KEY "TOTALE (in basso)"
PROMPT 19 13 ""
GROUP 10
PICTURE "###.###.###^^^"
END
NUMERO
BEGIN
KEY "TOTALE (in alto)"
PROMPT 19 2 ""
GROUP 10
PICTURE "###.###.###^^^"
END
NUMERO
BEGIN
KEY "TOTALE (in lettere)"
PROMPT 2 3 ""
GROUP 10
PICTURE "LETTERE"
END
STRINGA
BEGIN
KEY "sul C/C n."
PROMPT 6 4 ""
FIELD 14@->S5
END
STRINGA
BEGIN
KEY "Concessione di"
PROMPT 10 5 ""
FIELD 14@->S0
END
STRINGA
BEGIN
KEY "Eseguito da"
PROMPT 7 6 ""
FIELD 6->RAGSOC[1,22]
END
NUMERO
BEGIN
KEY "Codice Concessione"
PROMPT 8 9 ""
FIELD 14@->CODTAB
END
STRINGA
BEGIN
KEY "Codice fiscale"
PROMPT 12 9 ""
FIELD 6->COFI
END
STRING
BEGIN
KEY "CODICE TRIBUTO"
PROMPT 9 11 ""
FIELD S6
END
STRING
BEGIN
KEY "PERIODO DI RIFERIMENTO"
PROMPT 20 11 ""
FIELD CODTAB[6,9]
END
GROUP
BEGIN
KEY "Seconda sezione"
END
NUMERO
BEGIN
KEY "IMPORTO TRIBUTO"
PROMPT 2 47 ""
PICTURE "###.###.###^^^"
FIELD R0
END
NUMERO
BEGIN
KEY "INTERESSI"
PROMPT 12 47 ""
PICTURE "###.###.###^^^"
FIELD R1
END
NUMERO
BEGIN
KEY "TOTALE (in basso)"
PROMPT 19 47 ""
GROUP 10
PICTURE "###.###.###^^^"
END
NUMERO
BEGIN
KEY "TOTALE (in alto)"
PROMPT 19 45 ""
GROUP 10
PICTURE "###.###.###^^^"
END
NUMERO
BEGIN
KEY "TOTALE (in lettere)"
PROMPT 2 45 ""
GROUP 10
PICTURE "LETTERE"
END
STRINGA
BEGIN
KEY "sul C/C n."
PROMPT 6 38 ""
FIELD 14@->S5
END
STRINGA
BEGIN
KEY "Concessione di"
PROMPT 10 39 ""
FIELD 14@->S0
END
STRINGA
BEGIN
KEY "Eseguito da"
PROMPT 7 40 ""
FIELD 6->RAGSOC[1,22]
END
NUMERO
BEGIN
KEY "Codice Concessione"
PROMPT 8 43 ""
FIELD 14@->CODTAB
END
STRINGA
BEGIN
KEY "Codice fiscale"
PROMPT 12 43 ""
FIELD 6->COFI
END
STRING
BEGIN
KEY "CODICE TRIBUTO"
PROMPT 9 45 ""
FIELD S6
END
STRING
BEGIN
KEY "PERIODO DI RIFERIMENTO"
PROMPT 20 56 ""
FIELD CODTAB[6,9]
END
GROUP
BEGIN
KEY "Terza sezione"
END
NUMERO
BEGIN
KEY "TOTALE (in lettere)"
PROMPT 70 3 ""
GROUP 10
PICTURE "LETTERE"
END
NUMERO
BEGIN
KEY "TOTALE (in alto)"
PROMPT 110 3 ""
GROUP 10
PICTURE "###.###.###^^^"
END
STRINGA
BEGIN
KEY "sul C/C n."
PROMPT 70 4 ""
FIELD 14@->S5
END
STRINGA
BEGIN
KEY "Concessione di"
PROMPT 74 5 ""
FIELD 14@->S0
END
STRINGA
BEGIN
KEY "Eseguito da (1)"
PROMPT 72 6 ""
FIELD 6->RAGSOC[1,30]
END
STRINGA
BEGIN
KEY "Eseguito da (2)"
PROMPT 102 6 ""
FIELD 6->RAGSOC[31,50]
END
LISTA
BEGIN
KEY "Tipo anagrafica"
FIELD 6->TIPOA
ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@
ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@
END
DATA
BEGIN
KEY "DATA DI NASCITA"
PROMPT 68 7 ""
GROUP 1
FLAGS "D"
PICTURE "# # ^ # # ^ ^ # # #"
FIELD 8->DATANASC
END
STRINGA
BEGIN
KEY "COMUNE (o Stato estero) DI NASCITA"
PROMPT 84 7 ""
GROUP 1
FLAGS "D"
FIELD 113@->DENCOM
END
STRINGA
BEGIN
KEY "PROV. DI NASCITA (sigla)"
PROMPT 123 7 ""
GROUP 1
FLAGS "D"
FIELD 113@->PROVCOM
END
STRINGA
BEGIN
KEY "SESSO (M o F)"
PROMPT 127 7 ""
GROUP 1
FLAGS "D"
FIELD 8->SESSO
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: COMUNE"
PROMPT 65 8 ""
FIELD 213@->DENCOM
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: VIA"
PROMPT 85 8 ""
FIELD 6->INDRF
FIELD 6->INDRES
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: NUMERO CIVICO"
PROMPT 124 8 ""
FIELD 6->CIVRF
FIELD 6->CIVRES
END
STRING
BEGIN
KEY "CODICE TRIBUTO"
PROMPT 68 13 ""
PICTURE "# # # #"
FIELD S6
END
STRING
BEGIN
KEY "PERIODO DI RIFERIMENTO"
PROMPT 80 13 ""
FIELD CODTAB[6,9]
END
NUMERO
BEGIN
KEY "Codice Concessione"
PROMPT 92 13 ""
PICTURE "# # #"
FIELD 14@->CODTAB
END
STRINGA
BEGIN
KEY "Codice fiscale"
PROMPT 100 13 ""
PICTURE "# # # # # # # # # # # # # # # #"
FIELD 6->COFI
END
STRINGA
BEGIN
KEY "Partita IVA"
PROMPT 109 15 ""
PICTURE "# # # # # # # # # # #"
FIELD 6->PAIV
END
NUMERO
BEGIN
KEY "IMPORTO TRIBUTO"
PROMPT 109 17 ""
PICTURE "# # # # # # # #^^^"
FIELD R0
END
NUMERO
BEGIN
KEY "INTERESSI"
PROMPT 109 19 ""
PICTURE "# # # # # # # #^^^"
FIELD R1
END
END

View File

@ -4,7 +4,8 @@ JOIN 6 INTO TIPOA=S0[1,1] CODANAGR=S0[2,6]
JOIN 8 TO 6 INTO CODANAGR=CODANAGR
JOIN 13 TO 6 INTO COM=COMRF(COMRES)
END
END
SECTION BODY 0 66 0 0
STRINGA
@ -83,7 +84,7 @@ BEGIN
KEY "IRPEG 2100 GRUPPO 4: IMPOSTA"
PROMPT 32 18 ""
MESSAGE COPY,1@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R0
END
@ -92,7 +93,7 @@ BEGIN
KEY "IRPEG 2100 GRUPPO 4: INTERESSI"
PROMPT 48 18 ""
MESSAGE ADD,1@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R4
END
@ -102,7 +103,7 @@ BEGIN
PROMPT 62 18 ""
GROUP 1
MESSAGE COPY,5@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
END
NUMERO
@ -124,7 +125,7 @@ BEGIN
KEY "IRPEG 2110 GRUPPO 10: IMPOSTA"
PROMPT 32 23 ""
MESSAGE COPY,2@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R1
END
@ -133,7 +134,7 @@ BEGIN
KEY "IRPEG 2110 GRUPPO 10: INTERESSI"
PROMPT 48 23 ""
MESSAGE ADD,2@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R5
END
@ -143,7 +144,7 @@ BEGIN
PROMPT 62 23 ""
GROUP 2
MESSAGE ADD,5@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
END
GRUPPO
@ -171,7 +172,7 @@ BEGIN
KEY "ILOR 3000 GRUPPO 06: IMPOSTA"
PROMPT 32 33 ""
MESSAGE COPY,3@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R2
END
@ -180,7 +181,7 @@ BEGIN
KEY "ILOR 3000 GRUPPO 06: INTERESSI"
PROMPT 48 33 ""
MESSAGE ADD,3@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R6
END
@ -190,7 +191,7 @@ BEGIN
PROMPT 62 33 ""
GROUP 3
MESSAGE ADD,5@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
END
NUMERO
@ -212,7 +213,7 @@ BEGIN
KEY "ILOR 3110 GRUPPO 11: IMPOSTA"
PROMPT 32 38 ""
MESSAGE COPY,4@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R3
END
@ -221,7 +222,7 @@ BEGIN
KEY "ILOR 3110 GRUPPO 11: INTERESSI"
PROMPT 48 38 ""
MESSAGE ADD,4@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
FIELD R7
END
@ -231,7 +232,7 @@ BEGIN
PROMPT 62 38 ""
GROUP 4
MESSAGE ADD,5@
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
END
NUMERO
@ -239,7 +240,7 @@ BEGIN
KEY "TOTALE DA VERSARE"
PROMPT 62 44 ""
GROUP 5
PICTURE "###.###.###^^^"
PICTURE "###.###.###~~~"
END
STRINGA
@ -261,7 +262,7 @@ DATA
BEGIN
KEY "DATA: giorno - mese - anno"
PROMPT 12 56 ""
PICTURE "@@ ^ @@^^^@@"
PICTURE "@@ ~ @@~~~@@"
FIELD D0
END

198
ba/distitcf.frm Executable file
View File

@ -0,0 +1,198 @@
USE %DEL
JOIN 9 INTO CODDITTA=CODTAB[1,5]
JOIN 6 TO 9 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 9 INTO CODANAGR=CODANAGR
JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC
JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN %UCC TO 213@ ALIAS 14 INTO CODTAB=UFFCONC
END
SECTION BODY 0 64 0 0
STRINGA
BEGIN
KEY "CONCESSIONE DI"
PROMPT 36 5 ""
FIELD 14@->S0
END
STRINGA
BEGIN
KEY "COD. CONCESS."
PROMPT 9 11 ""
FIELD 14@->CODTAB
END
STRINGA
BEGIN
KEY "CODICE FISCALE"
PROMPT 15 11 ""
FIELD 6->COFI
END
STRINGA
BEGIN
KEY "COGNOME, DENOMINAZIONE O RAGIONE SOCIALE"
PROMPT 2 15 ""
FIELD 6->RAGSOC[1,30]
END
STRINGA
BEGIN
KEY "NOME"
PROMPT 54 15 ""
FIELD 6->RAGSOC[31,-1]
END
LISTA
BEGIN
KEY "Tipo anagrafica"
FIELD 6->TIPOA
ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@
ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@
END
GRUPPO
BEGIN
KEY "Persone fisiche"
PROMPT 0 0 ""
GROUP 1
FLAGS "DH"
END
DATA
BEGIN
KEY "DATA DI NASCITA"
PROMPT 2 17 ""
GROUP 1
FLAGS "DH"
PICTURE "# # ~ # # ~ ~ # # #"
FIELD 8->DATANASC
END
STRINGA
BEGIN
KEY "SESSO (M o F)"
PROMPT 19 17 ""
GROUP 1
FLAGS "DH"
FIELD 8->SESSO
END
STRINGA
BEGIN
KEY "COMUNE (o Stato estero) DI NASCITA"
PROMPT 24 17 ""
GROUP 1
FLAGS "DH"
FIELD 113@->DENCOM
END
STRINGA
BEGIN
KEY "PROV. DI NASCITA (sigla)"
PROMPT 68 17 ""
GROUP 1
FLAGS "DH"
FIELD 113@->PROVCOM
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: COMUNE"
PROMPT 8 19 ""
FIELD 213@->DENCOM
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: PROV. (sigla)"
PROMPT 36 19 ""
FIELD 213@->PROVCOM
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: VIA"
PROMPT 41 19 ""
FIELD 6->INDRF
FIELD 6->INDRES
END
STRINGA
BEGIN
KEY "DOMICILIO FISCALE: NUMERO CIVICO"
PROMPT 70 19 ""
FIELD 6->CIVRF
FIELD 6->CIVRES
END
STRINGA
BEGIN
KEY "PARTITA IVA"
PROMPT 12 47 ""
FIELD 6->PAIV
END
NUMERO
BEGIN
KEY "ANNO"
PROMPT 14 51 ""
PICTURE "~~@@"
FIELD CODTAB[6,9]
END
NUMERO
BEGIN
KEY "IMPORTO TRIBUTO"
PROMPT 20 51 ""
MESSAGE COPY,10@
PICTURE "###.###.###~~~"
FIELD R0
END
NUMERO
BEGIN
KEY "INTERESSI"
PROMPT 40 51 ""
MESSAGE ADD,10@
PICTURE "###.###.###~~~"
FIELD R1
END
NUMERO
BEGIN
KEY "TOTALE"
PROMPT 54 51 ""
GROUP 10
PICTURE "###.###.###~~~"
END
NUMERO
BEGIN
KEY "TOTALE (in lettere)"
PROMPT 5 55 ""
GROUP 10
PICTURE "LETTERE"
END
NUMERO
BEGIN
KEY "TOTALE (in cifre)"
PROMPT 54 55 ""
GROUP 10
PICTURE "###.###.###~~~"
END
DATA
BEGIN
KEY "DATA: giorno - mese - anno"
PROMPT 12 60 ""
PICTURE "@@ ~ @@~~~@@"
FIELD D0
END
END
END