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:
parent
4d3fadca5f
commit
31640e4bbc
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user