From b08a45ee833a51ce899d5f420ba93eb5dbe0347d Mon Sep 17 00:00:00 2001 From: augusto Date: Thu, 30 Oct 1997 08:54:41 +0000 Subject: [PATCH] -corretta determinazione della lunghezza del campo "Tipo record" -protetti i metodi autoload & auitosave su _current con un CHECK -default file == main file della relazione sui Fieldref git-svn-id: svn://10.65.10.50/trunk@5488 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/filetext.cpp | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/include/filetext.cpp b/include/filetext.cpp index bd492d2c4..7e504d263 100755 --- a/include/filetext.cpp +++ b/include/filetext.cpp @@ -235,10 +235,14 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section) } if (lavoro == "FIE") { - TFieldref field; - field = obj; - tc.set_field(field); - continue; + TFieldref field; + field = obj; + if (field.file()==0 && tmprel ) + { + field.set_file(tmprel->lfile().num()); + } + tc.set_field(field); + continue; } if (lavoro == "FTY") // field type { @@ -259,8 +263,6 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section) int len = atoi(obj); if (tc.length() <= 0 && len >= 0 && tc.length() != len) tc.set_length(len); - if (_fixedlen && _typelen < 0 && n == _typefield) - _typelen = len; continue; } if (lavoro == "DEC") @@ -303,6 +305,9 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section) tc.set_message(obj); continue; } + if (_fixedlen && _typelen < 0 && n == _typefield) + _typelen = tc.length(); + } tr->set_relation(tmprel); //aggiungo il tracciato record all'assoc_array dei tracciati record @@ -497,6 +502,12 @@ void TFile_text::autoload(TRecord_text& rec, TCursor& cur , const TString* tipo) _autoload(rec,cur,tr); } +void TFile_text::autoload(TCursor& cur, const TString* tipo) +{ + CHECK(_current,"Record corrente non settato"); + autoload(*_current, cur, tipo); +} + //Carica tutti i dati nel tracciato record (valido anche per header e footer) nel record_text void TFile_text::_autoload(TRecord_text& rec, TCursor& cur , TTracciato_record& tr ) { @@ -541,6 +552,12 @@ int TFile_text::autosave(TRelation& rel, const TRecord_text& rec) return _autosave(rel,rec, tr); } +int TFile_text::autosave(int mainfile) +{ + CHECK(_current,"Record corrente non settato"); + return autosave(mainfile,*_current); +} + //Carico la relazione con i dati del record text int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr ) { @@ -701,7 +718,7 @@ TString& TFile_text::format_textfield(const TTracciato_campo& tc, TString& campo //Formatta la stringa in base al field del file isam TString& TFile_text::format_field(const TTracciato_campo& tc, TString& campo) { - const TRectype record(tc.field().file()); + const TRectype record(tc.field().file()); int length = tc.field().len(record); if (!fpicture(tc).blank()) @@ -751,7 +768,7 @@ int TFile_text::open(char mode) int TFile_text::open(const char* name, char mode) { - set_name(name); + set_name(name); return open(mode); }