// cg3300.h enum stampe { clienti=1, fornitori=2, modulo101=3, modulo102=4, entrambi=5 }; class desc_campo : public TObject { public: int _riga; TString _formato; desc_campo() : _riga(0), _formato("") {} virtual ~desc_campo() {} }; class Array_desc_campi : public TObject { TArray _campi; // Array di campi e stringhe di formato int _passo; // Numero di righe tra le righe dettaglio int _righe_modulo; // Numero di righe totali del modulo public: const desc_campo& campi(int i) { return (const desc_campo&) _campi[i]; } int riga (int i) { return ((const desc_campo&)_campi[i])._riga; } const char * formato (int i) { return ((desc_campo&)_campi[i])._formato; } void add (int, const char*); void leggi_modulo (const char *, const char *); const int passo() { return _passo; } const int righe_modulo () { return _righe_modulo; } Array_desc_campi() {}; virtual ~Array_desc_campi() {}; }; class Record_B { int esc; real impesc; real ivaesc; real tot; public: void compila (TLocalisamfile *); void azzera(); void somma(); real tot_real() { return tot; } int esc_int() { return esc; } real impesc_real() { return impesc; } real ivaesc_real() { return ivaesc; } const char * tot_str() { return tot.string("@@@@@@@@@@@"); } // const char * esc_str() { return esc.string("@@@@@@@@@@@"); } const char * impesc_str() { return impesc.string("@@@@@@@@@@@"); } const char * ivaesc_str() { return ivaesc.string("@@@@@@@@@@@"); } Record_B() : esc(0), impesc(0.00), ivaesc(0.00), tot(0.00) {}; virtual ~Record_B () {}; }; struct alleg_sort { long codditta_dic; char tipopers_dic [2]; char paiva_dic [12]; char cognome_dic [31]; char nome_dic [21]; char ragsoc_dic[51]; // char datana_dic[11]; TDate datana_dic; char sesso_dic [2]; char comunena_dic [51]; char provna_dic [6]; char viafis_dic[36]; // via + numero civico char comunefis_dic [51]; char provfis_dic [6]; char attivita_dic [51]; char codatt_dic [6]; int natgiu_dic; int anno; char codatt_dett [6]; char tipopers_dett [2]; long codcf_dett ; char ragsoc_dett [51]; char cognome_dett [31]; char nome_dett [21]; char via_dett [36]; char comune_dett [51]; char prov_dett [6]; char statopaiva_dett [2]; char paiva_dett [12]; bool immesso; real impesc; real ivaesc; real niesc; real e8esc; int ndocesc; real impesp; real ivaesp; real niesp; real e8esp; int ndocesp; real prog101102; real tot_rigac; real tot_rigap; }; class SortRecord { TLocalisamfile * _clifo; TLocalisamfile * _comuni; TLocalisamfile * _anagfis; TLocalisamfile * _anaggiu; TLocalisamfile * _anag; TTable * _attiv; TTable * _tpd; struct alleg_sort * _all; protected: TRectype& look_com(const char *); long cerca_codice_all(TString tipo, long codcf) ; const char * decodifica_desc_att (TString & codatt); bool corrispettivo (const char * tipodoc); public: void azzera_struttura(); bool fill_dati_anag_dic (TLocalisamfile *); const char * fill_dati_dettaglio (const char * tipo, long codcf); const char * Strutt_str() { return (const char *) _all; } struct alleg_sort * Strutt() { return _all; } void compila(TLocalisamfile *); void somma (TLocalisamfile *, stampe); real importo() { return _all->impesc; } int RecSize () { return sizeof(struct alleg_sort); } long codcf_dett() { return _all->codcf_dett; } const real& Impesc() { return _all->impesc; } SortRecord(); ~SortRecord(); }; struct Totali { // Totali anno corrente real _tot_tot_rigac; int _tot_esc; real _tot_impesc; real _tot_ivaesc; real _tot_niesc; real _tot_e8esc; // Totali anno precedente real _tot_tot_rigap; int _tot_esp; real _tot_impesp; real _tot_ivaesp; real _tot_niesp; real _tot_e8esp; // Riporti real _rip_tot_riga; int _rip_tot_es; real _rip_tot_impes; real _rip_tot_ivaes; real _rip_tot_nies; real _rip_tot_e8es; real _tot_col_101102; public: void azzera_totali(); void incrementa_totali(struct alleg_sort*, stampe); void compila_riporti(); const real& TotTotRigac() { return _tot_tot_rigac; } const int TotEsc() { return _tot_esc; } const real& TotImpesc() { return _tot_impesc; } const real& TotIvaesc() { return _tot_ivaesc; } const real& TotNiesc() { return _tot_niesc; } const real& TotE8esc() { return _tot_e8esc; } const real& TotTotRigap() { return _tot_tot_rigap; } const int TotEsp() { return _tot_esp; } const real& TotImpesp() { return _tot_impesp; } const real& TotIvaesp() { return _tot_ivaesp; } const real& TotNiesp() { return _tot_niesp; } const real& TotE8esp() { return _tot_e8esp; } const real& RipTotTotRiga() { return _rip_tot_riga; } const int RipTotEs() { return _rip_tot_es; } const real& RipTotImpes() { return _rip_tot_impes; } const real& RipTotIvaes() { return _rip_tot_ivaes; } const real& RipTotNies() { return _rip_tot_nies; } const real& RipTotE8es() { return _rip_tot_e8es; } }; enum modi_stampa { modulo=1, controllo=2, dischetto=3 }; enum posizioni { PAIVA_DIC = 0, PAG_NUM, COGNOME_DIC, NOME_DIC , GG_NA , MM_NA , AA_NA , MASCHIO, FEMMINA, COMUNE_NA, PROV_NA , IND_FIS , COMUNE_FIS, PROV_FIS , PAIVA_FIS, ATT_FIS , CODATT_FIS , RAGSOC_DIC , NAT_GIU , IND_GIU , COMUNE_GIU , PROV_GIU , PAIVA_GIU, ATT_GIU , CODATT_GIU , NUM_PAG_TOT, NUM_REC, PROG_DETT, COG_DETT, NOM_DETT, VIA_DETT, COM_DETT, PRO_DETT, PAIVA_DETT, ESC_DETT, SEGNO_IMPESC, IMPESC_DETT, SEGNO_IVAESC, IVAESC_DETT, SEGNO_NIESC, NIESC_DETT, SEGNO_E8ESC, E8ESC_DETT, SEGNO_TOTC, TOTC_DETT, CASELLA_PAIVA, ESP_DETT, SEGNO_IMPESP, IMPESP_DETT, SEGNO_IVAESP, IVAESP_DETT, SEGNO_NIESP, NIESP_DETT, SEGNO_E8ESP, E8ESP_DETT, SEGNO_TOTP, TOTP_DETT, RECB_ESC, RECB_IMPESP, RECB_IVAESC, RECB_SEGNO_TOT, RECB_TOT, RIP_ESC, RIP_SEGNO_IMPESP, RIP_IMPESP, RIP_SEGNO_IVAESP, RIP_IVAESP, RIP_SEGNO_NIESP, RIP_NIESP, RIP_SEGNO_E8ESP, RIP_E8ESP, RIP_SEGNO_TOTALE, RIP_TOTALE, TOT_ESC, TOT_SEGNO_IMPESP, TOT_IMPESP, TOT_SEGNO_IVAESP, TOT_IVAESP, TOT_SEGNO_NIESP, TOT_NIESP, TOT_SEGNO_E8ESP, TOT_E8ESP, TOT_SEGNO_TOTALE, TOT_TOTALE };