- Aggiunto CHECK presenza del tracciato letto su file testo
- Corretta la gestione dl default per i file dei Fieldref (ora prende il main della relazione su cui si scrive/legge) - Spostate funzioni di formattazione dalla sezione public a protected git-svn-id: svn://10.65.10.50/trunk@5490 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
27c611a099
commit
83a91f61f2
@ -237,10 +237,6 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section)
|
|||||||
{
|
{
|
||||||
TFieldref field;
|
TFieldref field;
|
||||||
field = obj;
|
field = obj;
|
||||||
if (field.file()==0 && tmprel )
|
|
||||||
{
|
|
||||||
field.set_file(tmprel->lfile().num());
|
|
||||||
}
|
|
||||||
tc.set_field(field);
|
tc.set_field(field);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -413,13 +409,14 @@ int TFile_text::read(TRecord_text& rec)
|
|||||||
TString tipo = buffer.mid(_typepos, _typelen);
|
TString tipo = buffer.mid(_typepos, _typelen);
|
||||||
tipo.trim();
|
tipo.trim();
|
||||||
rec.set_type(tipo);//istanzio il tipo del record text
|
rec.set_type(tipo);//istanzio il tipo del record text
|
||||||
TTracciato_record& tr = *t_rec(tipo);
|
TTracciato_record* tr = t_rec(tipo);
|
||||||
|
CHECK(tr,"Tipo di tracciato record non riconosciuto");
|
||||||
//ora che ho il tracciato record devo scandire i tracciati campo e caricare il record text
|
//ora che ho il tracciato record devo scandire i tracciati campo e caricare il record text
|
||||||
TArray& a_tc = tr.tracciati_campo();
|
TArray& a_tc = tr->tracciati_campo();
|
||||||
int items = a_tc.items();
|
int items = a_tc.items();
|
||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
TTracciato_campo& tc = tr.get(i);
|
TTracciato_campo& tc = tr->get(i);
|
||||||
int pos = tc.position();
|
int pos = tc.position();
|
||||||
int len = tc.length();
|
int len = tc.length();
|
||||||
lavoro = buffer.mid(pos, len);
|
lavoro = buffer.mid(pos, len);
|
||||||
@ -518,7 +515,9 @@ void TFile_text::_autoload(TRecord_text& rec, TCursor& cur , TTracciato_record&
|
|||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
TTracciato_campo& tc = tr.get(i);
|
TTracciato_campo& tc = tr.get(i);
|
||||||
const TFieldref& field = tc.field();
|
TFieldref field = tc.field();
|
||||||
|
if (field.file()==0)
|
||||||
|
field.set_file(rel.lfile().num());
|
||||||
if (!field.name().empty())
|
if (!field.name().empty())
|
||||||
campo = field.read(rel);
|
campo = field.read(rel);
|
||||||
TString message = tc.message();
|
TString message = tc.message();
|
||||||
@ -567,9 +566,11 @@ int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_re
|
|||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
const TTracciato_campo& tc = tr.get(i);
|
const TTracciato_campo& tc = tr.get(i);
|
||||||
const TFieldref& field = tc.field();
|
TFieldref field(tc.field());
|
||||||
if (field.name().not_empty())
|
if (field.name().not_empty())
|
||||||
{
|
{
|
||||||
|
if (field.file()==0)
|
||||||
|
field.set_file(rel.lfile().num());
|
||||||
valore = rec.row(i);
|
valore = rec.row(i);
|
||||||
// formatta il campo del file di testo secondo le specifiche del campo su file isam
|
// formatta il campo del file di testo secondo le specifiche del campo su file isam
|
||||||
// preformat_field(rel,field,rec,valore);
|
// preformat_field(rel,field,rec,valore);
|
||||||
@ -600,7 +601,7 @@ int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_re
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
valore = format_field(tc, valore);//formatta il campo secondo le specifiche del record
|
valore = format_field(tc, rel.lfile().num(), valore);//formatta il campo secondo le specifiche del record
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -716,9 +717,9 @@ TString& TFile_text::format_textfield(const TTracciato_campo& tc, TString& campo
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Formatta la stringa in base al field del file isam
|
//Formatta la stringa in base al field del file isam
|
||||||
TString& TFile_text::format_field(const TTracciato_campo& tc, TString& campo)
|
TString& TFile_text::format_field(const TTracciato_campo& tc, short lfile, TString& campo)
|
||||||
{
|
{
|
||||||
const TRectype record(tc.field().file());
|
const TRectype record(tc.field().file() ? tc.field().file() : lfile);
|
||||||
|
|
||||||
int length = tc.field().len(record);
|
int length = tc.field().len(record);
|
||||||
if (!fpicture(tc).blank())
|
if (!fpicture(tc).blank())
|
||||||
|
@ -158,6 +158,14 @@ protected:
|
|||||||
void _autoload(TRecord_text& rec, TCursor& cur , TTracciato_record& tr );
|
void _autoload(TRecord_text& rec, TCursor& cur , TTracciato_record& tr );
|
||||||
// @cmember caricamento automatico della relazione definita nel tracciato dal record_text
|
// @cmember caricamento automatico della relazione definita nel tracciato dal record_text
|
||||||
int _autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr );
|
int _autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr );
|
||||||
|
|
||||||
|
// @cmember formatta la data
|
||||||
|
void format_date(const TDate& data, const TString& form, TString& data_str);
|
||||||
|
// @cmember formatta il campo secondo il suo tracciato
|
||||||
|
TString& format_textfield(const TTracciato_campo& tc, TString& campo);
|
||||||
|
// @cmember formatta il campo secondo il suo tracciato
|
||||||
|
TString& format_field(const TTracciato_campo& tc, short lfile, TString& campo);
|
||||||
|
|
||||||
//effettua modifiche particolari dal cursore al record_text
|
//effettua modifiche particolari dal cursore al record_text
|
||||||
// <cur> è il cursore della relazione
|
// <cur> è il cursore della relazione
|
||||||
// <rec> è il record da modificare
|
// <rec> è il record da modificare
|
||||||
@ -231,11 +239,6 @@ public:
|
|||||||
//scarica dal record_text il campo di nome <name>
|
//scarica dal record_text il campo di nome <name>
|
||||||
const TString& get_field(const TRecord_text& rec, const char* name);
|
const TString& get_field(const TRecord_text& rec, const char* name);
|
||||||
|
|
||||||
void format_date(const TDate& data, const TString& form, TString& data_str);//formatta la data
|
|
||||||
// @cmember formatta il campo secondo il suo tracciato
|
|
||||||
TString& format_textfield(const TTracciato_campo& tc, TString& campo);
|
|
||||||
// @cmember formatta il campo secondo il suo tracciato
|
|
||||||
TString& format_field(const TTracciato_campo& tc, TString& campo);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__FILETEXT_H
|
#endif //__FILETEXT_H
|
Loading…
x
Reference in New Issue
Block a user