Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@19873 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-01-05 14:03:30 +00:00
parent c36629f744
commit 5c5563fd88
7 changed files with 163 additions and 125 deletions

View File

@ -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[])

View File

@ -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;
}

View File

@ -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[])

View File

@ -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);

View File

@ -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
{

View File

@ -506,4 +506,33 @@ bool configura_stampante(TPrinter& p, const char* configurazione, const char* ti
message_box(messaggio);
return FALSE;
}
}
}
//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;
}

View File

@ -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