Patch level : 2.0 518

Files correlati     : in0.exe
Ricompilazione Demo : [ ]
Commento            :

Il collegamento tra anagrafiche ora avviene sempre mediante la chiave 1
in modo da gestire correttamente anche le omonimie.


git-svn-id: svn://10.65.10.50/trunk@11306 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-07-02 13:21:15 +00:00
parent 4d3fadca5f
commit 31640e4bbc

View File

@ -2339,26 +2339,23 @@ bool TBrowse::do_link(bool insert)
TString8 paragraph; paragraph << _cursor->file().num(); TString8 paragraph; paragraph << _cursor->file().num();
ini.set_paragraph(paragraph); ini.set_paragraph(paragraph);
_inp_fn.restart(); // Uso sempre la chiave 1 per collegarmi agli altri programmi
const TRelation& rel = *_cursor->relation();
const RecDes* recd = rel.curr().rec_des(); // Descrizione del record della testata
const KeyDes& kd = recd->Ky[0]; // Elenco dei campi della chiave 1
TString inp_val; TString inp_val;
FOR_EACH_TOKEN(_inp_id, i) for (int i = 0; i < kd.NkFields; i++)
{ {
inp_val = i; const int nf = kd.FieldSeq[i] % MaxFields;
TFieldref fldref(_inp_fn.get(), 0); const RecFieldDes& rf = recd->Fd[nf];
if (inp_val[0] == '"') const TFieldref fldref(rf.Name, 0);
{ inp_val = fldref.read(rel);
inp_val.rtrim(1);
inp_val.ltrim(1);
}
else
inp_val = fldref.read(*_cursor->relation());
fldref.write(ini, paragraph, inp_val); fldref.write(ini, paragraph, inp_val);
} }
} }
TExternal_app a(app); TExternal_app a(app);
int err = a.run(); const int err = a.run();
field().mask().set_focus(); field().mask().set_focus();
if (msg.not_empty()) if (msg.not_empty())
@ -2375,10 +2372,7 @@ bool TBrowse::do_link(bool insert)
{ {
rec_cache(_cursor->file().num()).destroy(); // Svuota eventule cache rec_cache(_cursor->file().num()).destroy(); // Svuota eventule cache
do_output(); do_output();
} }
#ifdef DBG
else yesnofatal_box("Selezione da programma esterno errata");
#endif
} }
::remove(msg); ::remove(msg);
} }