Aggiuta funzione-membro pre_format e pre_write

git-svn-id: svn://10.65.10.50/trunk@5483 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
sauro 1997-10-29 14:03:26 +00:00
parent ea24bfa9be
commit 9830e2f49f
2 changed files with 17 additions and 9 deletions

View File

@ -555,7 +555,9 @@ int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_re
{
valore = rec.row(i);
// formatta il campo del file di testo secondo le specifiche del campo su file isam
const TRectype& rel_rec = rel.curr(field.file());
// preformat_field(rel,field,rec,valore);
preformat_field(field,valore);
const TRectype& rel_rec = rel.curr(field.file());
TFieldtypes tipo_campo = rel_rec.type(field.name());
switch(tipo_campo)
{
@ -588,6 +590,7 @@ int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_re
field.write(valore, rel);//faccio una write sulla relazione del fieldref
}
}
pre_write(rel,rec);
int err = rel.write();
if (err == _isdupkey || err ==_isreinsert)
err = rel.rewrite();

View File

@ -149,17 +149,22 @@ class TFile_text : public TObject
int _typefield;//posizione ove trovare la chiave nel record a lunghezza variabile
protected:
//effettua operazioni personalizzate dall'applicazione sul record_text
// <cur> è il cursore della relazione
// <rec> è il record da modificare
// <val> contiene il messaggio da modificare e/o caircare nel record
// <str> conterrà il risultato dell'operazione
virtual void validate(TCursor& cur, TRecord_text &rec, TToken_string &val, TString& str){}
const int fdecimal(const TTracciato_campo &tc ) const;
const char falign(const TTracciato_campo &tc ) const;
const char ffiller(const TTracciato_campo &tc ) const ;
const TString& fpicture(const TTracciato_campo &tc ) const;
//effettua modifiche particolari dal cursore al record_text
// <cur> è il cursore della relazione
// <rec> è il record da modificare
// <val> contiene il messaggio da modificare e/o caircare nel record
// <str> conterrà il risultato dell'operazione
virtual void validate(TCursor& cur, TRecord_text &rec, TToken_string &val, TString& str){}
//effettua modifiche particolari al valore da assegnare ad un campo dell'isamfile
//virtual void preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str) {}
virtual void preformat_field(const TFieldref&field,TString &str) {}
//effettua modifiche sui record della relazione prima di effettuarne la write
virtual void pre_write(TRelation& rel,const TRecord_text& rec) {}
public:
TFile_text(const char* file_name, const char* config_name);
virtual ~TFile_text();
@ -209,8 +214,8 @@ public:
//caricamento automatico della relazione dal record_text corrente
int autosave(TRelation& rel) {return autosave(rel, *_current); };
//caricamento automatico della relazione definita nel tracciato dal record_text
int autosave(int mainfile, const TRecord_text& rec);
int _autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr );
int autosave(int mainfile, const TRecord_text& rec);
int _autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr );
int read(TRecord_text & rec);//legge da file di testo il record_text
int read(){return read(*_current);}//legge da file di testo il record_text corrente
//carica nel record_text il campo alla posizione <ncampo> con il valore <val> già formattato