From 5c5563fd88bb5f03c079337199e55293e985fa25 Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 5 Jan 2010 14:03:30 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@19873 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/at2600.cpp | 41 +++++++++-------- at/at2700.cpp | 117 +++++++++++++++++++++++++++--------------------- at/at2900.cpp | 47 +++++++++++-------- at/at7200.cpp | 28 +++++------- at/atlib.h | 2 + at/atlib1.cpp | 31 ++++++++++++- at/iscritti.trr | 22 --------- 7 files changed, 163 insertions(+), 125 deletions(-) delete mode 100755 at/iscritti.trr diff --git a/at/at2600.cpp b/at/at2600.cpp index d838ed646..7e70a5973 100755 --- a/at/at2600.cpp +++ b/at/at2600.cpp @@ -554,6 +554,25 @@ void TStampaIscritti::crea_intestazione() bool TStampaIscritti::user_create() { + //lettura della configurazione + TConfig config(CONFIG_STUDIO); + TString16 etformato = config.get("EtFormato"); + //crea il form di stampa + if (!controlla_esistenza_form(etformato, "ate10x36")) + return false; + _form_eti = new TEti_iscritti_form(etformato); + + _etlarghezza = config.get_int("EtLarghezza"); + _etcolonne = config.get_int("EtColonne"); + + //file di appoggio + TFilename iscrname, iscrtrr; + if (!controlla_esistenza_trr("at2600", iscrname, iscrtrr)) + return false; + + _fileiscr = new TExternisamfile(iscrname, iscrtrr, false); + + //relazione _rel = new TRelation(LF_SOGGETTI); _rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD); _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); @@ -561,25 +580,11 @@ bool TStampaIscritti::user_create() _rel->add("GAZ", "CODTAB==GRUPPOAZIE",1,0,ALIAS_GAZ); _rel->add(LF_COMUNI, "COM==DOM_CODCOM",1,0,ALIAS_COMDOM); add_cursor(new TSorted_cursor(_rel,"SOG_CODSEZ|SOG_CODSOT","",3)); + + //maschera _msk = new TMask("at2600a"); - TConfig config(CONFIG_STUDIO); - TString16 etformato = config.get("EtFormato"); - _etlarghezza = config.get_int("EtLarghezza"); - _etcolonne = config.get_int("EtColonne"); - _form_eti = new TEti_iscritti_form(etformato); - TFilename iscrname = "iscritti"; - iscrname.ext("dbf"); - TFilename iscrtrr = "iscritti"; - iscrtrr.ext("trr"); - if (!iscrtrr.custom_path()) - { - iscrtrr = "recdesc/iscritti"; - iscrtrr.ext("trr"); - } - - _fileiscr = new TExternisamfile(iscrname, iscrtrr, FALSE); - return TRUE; + return true; } bool TStampaIscritti::user_destroy() @@ -588,7 +593,7 @@ bool TStampaIscritti::user_destroy() delete _form_eti; delete _msk; delete _rel; - return TRUE; + return true; } int at2600(int argc, char* argv[]) diff --git a/at/at2700.cpp b/at/at2700.cpp index 596f8e213..7f7542a02 100755 --- a/at/at2700.cpp +++ b/at/at2700.cpp @@ -1245,7 +1245,71 @@ void TStampaPerCategorie::crea_intestazione() } bool TStampaPerCategorie::user_create() -{ +{ + //controllo e caricamento dati dalla configurazione + TConfig config(CONFIG_STUDIO); + //etichette + TString16 etformato = config.get("EtFormato"); + if (!controlla_esistenza_form(etformato, "ate10x36")) + return false; + _form_eti = new TEti_percat_form(etformato); + _etlarghezza = config.get_int("EtLarghezza"); + _etcolonne = config.get_int("EtColonne"); + _etrighe = config.get_int("EtRighe"); + _etbordoini = config.get_int("EtBordoIni"); + _etbordofin = config.get_int("EtBordoFin"); + + //etichette notiziario + TString16 etnformato = config.get("EtNFormato"); + if (!controlla_esistenza_form(etnformato, "ate10x36")) + return false; + _form_neti = new TEti_percat_form(etnformato); + _stampa80 = config.get_bool("Stampa80"); + _etictot = config.get_bool("EticTot"); + + //cartoline + TString16 caformato = config.get("CaFormato"); + if (!controlla_esistenza_form(caformato, "atcarto1")) + return false; + _form_car = new TEti_percat_form(caformato); + + //schede + TString16 schformato = config.get("SchFormato"); + if (!controlla_esistenza_form(schformato, "at_pagin")) + return false; + _form_sch = new TEti_percat_form(schformato); + _schxpag = config.get_int("SchXPag"); + + //elenco + TString16 performato = config.get("ElencoFormato"); + if (!controlla_esistenza_form(performato, "atrubrsa")) + return false; + _form_per = new TEti_percat_form(performato); + + _lenpage = printer().formlen(); + + + + //attenzione: i files at2700a e at2700b, se si desiderano personalizzati, richiedono il tracciato record modificato.. + //..in Custom; questo perchè le varie sezioni possono volere campi diversi; il max dei campi è quello che si trova.. + //..nei trr ufficiali; la gestione dei campi mancanti è fatta dalla filepers_put() al momento della scrittura vera.. + //..e propria dei files + //stampa indirizzi su file + TFilename filename, filetrr; + if (!controlla_esistenza_trr("at2700a", filename, filetrr)) + return false; + + _file = new TExternisamfile(filename, filetrr, false); + + //stampa file personalizzato + TFilename persname, perstrr; + if (!controlla_esistenza_trr("at2700b", persname, perstrr)) + return false; + + _filepers = new TExternisamfile(persname, perstrr, false); + + + //relazione e cursore _rel = new TRelation(LF_SOGGETTI); _rel->add(LF_DONAZ, "CODICE==CODICE", 1); _rel->add(LF_BENEM, "CODICE==CODICE", 1); @@ -1269,57 +1333,10 @@ bool TStampaPerCategorie::user_create() _sbenemerenze = new TRecord_array(LF_BENEM,BEN_PROGBEN); _sfamiglia = new TRecord_array(LF_FAMIGLIE,FAM_PROGFAM); add_cursor(new TSorted_cursor(_rel,"SOG_CODSEZ|SOG_CODSOT","",3)); + + //maschera _msk = new TMask("at2700a"); - //attenzione: i files at2700a e at2700b, se si desiderano personalizzati, richiedono il tracciato record modificato.. - //..in Custom; questo perchè le varie sezioni possono volere campi diversi; il max dei campi è quello che si trova.. - //..nei trr ufficiali; la gestione dei campi mancanti è fatta dalla filepers_put() al momento della scrittura vera.. - //..e propria dei files - //stampa indirizzi su file - TFilename filename = "at2700a"; - filename.ext("dbf"); - TFilename filetrr = "at2700a"; - filetrr.ext("trr"); - if (!filetrr.custom_path() && !filetrr.exist()) - return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)filetrr); - - _file = new TExternisamfile(filename, filetrr, false); - - //stampa file personalizzato - TFilename namepers = "at2700b"; - namepers.ext("dbf"); - TFilename perstrr = "at2700b"; - perstrr.ext("trr"); - if (!perstrr.custom_path() && !perstrr.exist()) - return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)perstrr); - - _filepers = new TExternisamfile(namepers, perstrr, false); - - - TConfig config(CONFIG_STUDIO); - - TString16 etformato = config.get("EtFormato"); - _etlarghezza = config.get_int("EtLarghezza"); - _etcolonne = config.get_int("EtColonne"); - _etrighe = config.get_int("EtRighe"); - _etbordoini = config.get_int("EtBordoIni"); - _etbordofin = config.get_int("EtBordoFin"); - _form_eti = new TEti_percat_form(etformato); - - TString16 etnformato = config.get("EtNFormato"); - _etnlarghezza = config.get_int("EtNLarghezza"); - _etncolonne = config.get_int("EtNColonne"); - _form_neti = new TEti_percat_form(etnformato); - _stampa80 = config.get_bool("Stampa80"); - _etictot = config.get_bool("EticTot"); - _form_car = new TEti_percat_form("ATCARTO1"); - TString16 schformato = config.get("SchFormato"); - _schxpag = config.get_int("SchXPag"); - _form_sch = new TEti_percat_form(schformato); - TString16 performato = config.get("ElencoFormato"); - _form_per = new TEti_percat_form(performato); - _lenpage = printer().formlen(); - return true; } diff --git a/at/at2900.cpp b/at/at2900.cpp index 8c2cdd11a..914891a62 100755 --- a/at/at2900.cpp +++ b/at/at2900.cpp @@ -596,30 +596,41 @@ void TFrequenza::crea_intestazione() bool TFrequenza::user_create() { + //configurazione + TConfig config(CONFIG_STUDIO); + //etichette + TString16 etformato = config.get("EtFormato"); + if (!controlla_esistenza_form(etformato, "ate10x36")) + return false; + _form_eti = new TEti_freq_form(etformato); + _etlarghezza = config.get_int("EtLarghezza"); + _etcolonne = config.get_int("EtColonne"); + _stampa80 = config.get_bool("Stampa80"); + + //lettera + _form_let = new TEti_freq_form("ATLETTER"); + + //files + _donaz = new TLocalisamfile(LF_DONAZ); + _sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON); + + //file di appoggio + TFilename freqname, freqtrr; + if (!controlla_esistenza_trr("at2900", freqname, freqtrr)) + return false; + + _file = new TExternisamfile(freqname, freqtrr, false); + + //relazione _rel = new TRelation(LF_SOGGETTI); _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); _rel->add("LCP", "CODTAB==DOM_CODLOC",1,0,ALIAS_LCPDOM); _rel->add(LF_COMUNI, "COM==DOM_CODCOM"); _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); add_cursor(new TSorted_cursor(_rel, "", "", 3)); - _msk = new TMask("at2900a"); - _donaz = new TLocalisamfile(LF_DONAZ); - _sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON); - TConfig config(CONFIG_STUDIO); - TString16 etformato = config.get("EtFormato"); - _etlarghezza = config.get_int("EtLarghezza"); - _etcolonne = config.get_int("EtColonne"); - _form_eti = new TEti_freq_form(etformato); - _stampa80 = config.get_bool("Stampa80"); - _form_let = new TEti_freq_form("ATLETTER"); - TFilename freqname = "at2900"; - freqname.ext("dbf"); - TFilename freqtrr = "at2900"; - freqtrr.ext("trr"); - if (!freqtrr.custom_path() && !freqtrr.exist()) - return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)freqtrr); - _file = new TExternisamfile(freqname, freqtrr, FALSE); + //maschera + _msk = new TMask("at2900a"); return true; } @@ -633,7 +644,7 @@ bool TFrequenza::user_destroy() delete _file; delete _msk; delete _rel; - return TRUE; + return true; } int at2900(int argc, char* argv[]) diff --git a/at/at7200.cpp b/at/at7200.cpp index a500fb863..7dbdb4ed0 100755 --- a/at/at7200.cpp +++ b/at/at7200.cpp @@ -6,10 +6,11 @@ #include "soggetti.h" #include "sezioni.h" +#include "atlib.h" #include "at7.h" #include "at7200a.h" - #include "at7100.h" + #define ALIAS_COMDOM 501 #define ALIAS_COMNAS 500 #define ALIAS_LCP 100 @@ -357,15 +358,18 @@ bool TStampaTessereS::user_create() //controlla se esistono i form di stampa; se non ci sono è inutile proseguire TConfig config(CONFIG_STUDIO); TString16 teformato = config.get("TeFormato"); - if (teformato.blank()) - return error_box("Non è indicato nella configurazione di sezione il formato della tessera. Impossibile proseguire!"); - TFilename form_tessera = teformato; - form_tessera.ext("frm"); - if (!form_tessera.custom_path() && !form_tessera.exist()) - return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)form_tessera); //crea il form di stampa + if (!controlla_esistenza_form(teformato, "attesser")) + return false; _form_pag = new TTessereS_form(teformato); + _numdon2 = config.get_int("NumDon2"); + _catini2 = config.get("CatIni2"); + _catfin2 = config.get("CatFin2"); + _sttess2 = config.get_bool("StTess2"); + _tecolonne = config.get_int("TeColonne"); + _telarghezza = config.get_int("TeLarghezza"); + //filtro per avere i dati da stampare _sogtmp = new TIsamtempfile(LF_SOGGETTI,NULL,TRUE,TRUE); _rel = new TRelation(_sogtmp); @@ -378,15 +382,7 @@ bool TStampaTessereS::user_create() //cursore ordinamento per sezione+sottogruppo+cognome+nome _cur = add_cursor(new TCursor(_rel, "", 3)); - //roba della configurazione di sezione - _numdon2 = config.get_int("NumDon2"); - _catini2 = config.get("CatIni2"); - _catfin2 = config.get("CatFin2"); - _sttess2 = config.get_bool("StTess2"); - _tecolonne = config.get_int("TeColonne"); - _telarghezza = config.get_int("TeLarghezza"); - - //roba della maschera + //maschera _msk = new TMask("at7200a"); TSheet_field& ss = (TSheet_field&)_msk->field(F_SOGGETTI); add_rows_soggetti(ss,50); diff --git a/at/atlib.h b/at/atlib.h index 95c1a5a0d..bd6dfa6aa 100755 --- a/at/atlib.h +++ b/at/atlib.h @@ -18,6 +18,8 @@ void ido_reord(TRectype& soggetto, TRecord_array* idoneita); void don_datepross(TRectype& soggetto); void calcola_donazioni_lib(TRectype& soggetto, TRecord_array* donazioni); bool configura_stampante(TPrinter& p, const char* configurazione, const char* tipostampa); +bool controlla_esistenza_form(TString& frm_name, const TString& default_frm_name); +bool controlla_esistenza_trr(const char* name, TFilename& filename, TFilename& trrname); class TSoggetto : public TRectype { diff --git a/at/atlib1.cpp b/at/atlib1.cpp index ebdac6ebf..bb192e81c 100755 --- a/at/atlib1.cpp +++ b/at/atlib1.cpp @@ -506,4 +506,33 @@ bool configura_stampante(TPrinter& p, const char* configurazione, const char* ti message_box(messaggio); return FALSE; } -} \ No newline at end of file +} + +//metodo per il controllo della corretta configurazione del formato di stampa (etichette,cartoline,tessere ecc.) in configurazione.. +//..sezione e della effettiva esistenza del .frm indicato +bool controlla_esistenza_form(TString& frm_name, const TString& default_frm_name) +{ + //se non trova un formato indicato nel config usa quello di default + if (frm_name.blank()) + frm_name = default_frm_name; + //controlla se il file .frm esiste davvero + TFilename frm_file = frm_name; + frm_file.ext("frm"); + if (!frm_file.custom_path() || !frm_file.exist()) + return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)frm_file); + + return true; +} + +//metodo per il controllo della esistenza dei tracciati record dei file di appoggio dell'AVIS +bool controlla_esistenza_trr(const char* name, TFilename& filename, TFilename& trrname) +{ + filename = name; + filename.ext("dbf"); + trrname = name; + trrname.ext("trr"); + if (!trrname.custom_path() || !trrname.exist()) + return error_box("Manca il file %s sia in custom che nella cartella del programma. Impossibile proseguire!", (const char*)trrname); + + return true; +} \ No newline at end of file diff --git a/at/iscritti.trr b/at/iscritti.trr deleted file mode 100755 index 14a4c31fb..000000000 --- a/at/iscritti.trr +++ /dev/null @@ -1,22 +0,0 @@ -1001 -18 -COGNOME|1|25|0|Cognome -NOME|1|25|0|Nome -DATANASC|5|8|0|Data di nascita -CATDON|1|2|0|Categoria donatori -CODSEZ|1|2|0|Codice sezione -CODSOT|1|2|0|Codice sottogruppo -SEZIONE|1|50|0|Denominazione sezione/sottog. -SESSO|1|1|0|Sesso m/f -INDIRIZZO|1|30|0|Indirizzo -CAP|1|5|0|Cap, -COMUNE|1|50|0|Localita/comune -PROVINCIA|1|2|0|Provincia -LOCALITA|1|50|0|CAP, Localita, Prov. -TELABI|1|14|0|Telefono abitazione -TELLAV|1|14|0|Telefono lavoro -TELALT|1|14|0|Telefono altro -DATAULTDON|5|8|0|Data ultima donazione -TOTDON|2|3|0|Totale donazioni -1 -COGNOME+NOME+DATANASC|X