From 31640e4bbc3f06adf6d9c4c421891ca3a6bbce23 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 2 Jul 2003 13:21:15 +0000 Subject: [PATCH] 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 --- include/maskfld.cpp | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/include/maskfld.cpp b/include/maskfld.cpp index d2b14a56f..43fc34fd4 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -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); }