diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index 4e641971c..0d00b2d3f 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -140,7 +140,17 @@ bool TContratti_msk::on_art_select() { const int pos = id2pos(id); if (pos > 0) - fld(pos).set(row.get(ss.cid2index(id - 400))); + { + TMask_field& f = fld(pos); + const TString& oldval = f.get(); + const char* newval = row.get(ss.cid2index(id - 400)); + if (oldval != newval) + { + f.set(newval); + if (f.is_kind_of(CLASS_LIST_FIELD)) + f.on_hit(); + } + } } if (field(F_PPCONF).empty()) @@ -148,12 +158,16 @@ bool TContratti_msk::on_art_select() set(F_CALCCONS, "0"); set(F_ARROT, ""); disable(F_CALCCONS); - disable(F_ARROT); + disable(F_ARROT); + rowmask.field(S_CALCCONS).disable(); + rowmask.field(S_ARROT).disable(); } else { enable(F_CALCCONS); enable(F_ARROT); + rowmask.field(S_CALCCONS).enable(); + rowmask.field(S_ARROT).enable(); set(F_ARROT, "X"); TToken_string row = ss.row(ss.selected()); @@ -266,8 +280,16 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly const int pos=id2pos(id); if (pos>0) { - fld(pos).set(row.get(ss.cid2index(id-400))); - fld(pos).set_dirty(false); + TMask_field& f = fld(pos); + const TString& oldval = f.get(); + const char* newval = row.get(ss.cid2index(id - 400)); + if (oldval != newval) + { + f.set(newval); + if (f.is_kind_of(CLASS_LIST_FIELD)) + f.on_hit(); + } + f.set_dirty(false); } } @@ -336,9 +358,14 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly { const short rowid = o.dlg() - 400; const int index = ss.cid2index(rowid); - ss.sheet_mask().set(rowid,o.get()); - ss.row(sel).add(o.get(),index); - ss.force_update(sel); + const TString& oldval = ss.sheet_mask().get(rowid); + const TString& newval = o.get(); + if (newval != oldval) + { + ss.sheet_mask().set(rowid,newval); + ss.row(sel).add(newval,index); + ss.force_update(sel); + } } } break; diff --git a/lv/lv0400a.uml b/lv/lv0400a.uml index cc019fba9..77cb4c862 100755 --- a/lv/lv0400a.uml +++ b/lv/lv0400a.uml @@ -723,9 +723,8 @@ END LISTBOX S_VCARTCLI 1 20 BEGIN PROMPT 45 8 "Per " - ITEM "N|Nessuno" - ITEM "C|Cliente" ITEM "A|Articolo" + ITEM "C|Cliente" FIELD VCARTCLI GROUP 1 END @@ -734,6 +733,7 @@ CURRENCY S_PREZZOST 15 BEGIN PROMPT 2 9 "In vigore " FIELD PREZZO + FLAGS "U" GROUP 2 END @@ -741,6 +741,7 @@ CURRENCY S_PREZZORN 15 BEGIN PROMPT 30 9 "Di rinnovo " FIELD PREZRIN + FLAGS "U" GROUP 2 END