Patch level : 10.0 no patch

Files correlati     : 
Ricompilazione Demo : [ ]
Commento            :

Nel caso la ricerse fosse su una tabella non veniva impostato il campo _tab, per cui il record non ers in realtà dii una tabella.

git-svn-id: svn://10.65.10.50/branches/R_10_00@23212 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2016-09-02 08:44:38 +00:00
parent 0b44cc293a
commit 69cf9a5d3b

View File

@ -688,6 +688,9 @@ const TObject& TFile_cache::query(const char* code)
{ {
TLocalisamfile& f = file(); TLocalisamfile& f = file();
TRectype& curr = f.curr(); TRectype& curr = f.curr();
const int logicnum = f.num();
const bool is_tab = (logicnum >= LF_TABGEN && logicnum <= LF_TAB) || (logicnum == LF_TABMOD);
if (_code.full()) if (_code.full())
{ {
const RecDes& recd = curr.rec_des(); // Descrizione del record della testata const RecDes& recd = curr.rec_des(); // Descrizione del record della testata
@ -697,8 +700,13 @@ const TObject& TFile_cache::query(const char* code)
const int nf = kd.FieldSeq[i] % MaxFields; const int nf = kd.FieldSeq[i] % MaxFields;
const RecFieldDes& rf = recd.Fd[nf]; const RecFieldDes& rf = recd.Fd[nf];
const char* val = _code.get(); const char* val = _code.get();
if (val && *val) if (val && *val)
curr.put(rf.Name, val); {
if (is_tab && strcmp(rf.Name, "COD") == 0)
curr.settab(val);
curr.put(rf.Name, val);
}
else else
curr.zero(rf.Name); curr.zero(rf.Name);
} }