From 9830e2f49f75ebf0d03ad9428752d794f8883441 Mon Sep 17 00:00:00 2001 From: sauro Date: Wed, 29 Oct 1997 14:03:26 +0000 Subject: [PATCH] Aggiuta funzione-membro pre_format e pre_write git-svn-id: svn://10.65.10.50/trunk@5483 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/filetext.cpp | 5 ++++- include/filetext.h | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/include/filetext.cpp b/include/filetext.cpp index 3d192a978..bd492d2c4 100755 --- a/include/filetext.cpp +++ b/include/filetext.cpp @@ -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(); diff --git a/include/filetext.h b/include/filetext.h index 1b7a5851b..2551c6806 100755 --- a/include/filetext.h +++ b/include/filetext.h @@ -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 - // č il cursore della relazione - // č il record da modificare - // contiene il messaggio da modificare e/o caircare nel record - // 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 + // č il cursore della relazione + // č il record da modificare + // contiene il messaggio da modificare e/o caircare nel record + // 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 con il valore giā formattato