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();
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;
FOR_EACH_TOKEN(_inp_id, i)
{
inp_val = i;
TFieldref fldref(_inp_fn.get(), 0);
if (inp_val[0] == '"')
{
inp_val.rtrim(1);
inp_val.ltrim(1);
}
else
inp_val = fldref.read(*_cursor->relation());
for (int i = 0; i < kd.NkFields; i++)
{
const int nf = kd.FieldSeq[i] % MaxFields;
const RecFieldDes& rf = recd->Fd[nf];
const TFieldref fldref(rf.Name, 0);
inp_val = fldref.read(rel);
fldref.write(ini, paragraph, inp_val);
}
}
TExternal_app a(app);
int err = a.run();
const int err = a.run();
field().mask().set_focus();
if (msg.not_empty())
@ -2375,10 +2372,7 @@ bool TBrowse::do_link(bool insert)
{
rec_cache(_cursor->file().num()).destroy(); // Svuota eventule cache
do_output();
}
#ifdef DBG
else yesnofatal_box("Selezione da programma esterno errata");
#endif
}
}
::remove(msg);
}