diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index 294edb010..397733faa 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -135,22 +135,28 @@ bool TContratti_msk:: on_field_event(TOperable_field& o,TField_event e,long joll } break; case S_CODART: - if (e==fe_modify) + if (!o.empty()) { - TSheet_field& ss=sfield(F_RIGHE); - TToken_string& row=ss.row(ss.selected()); - row.add(o.get(),ss.cid2index(S_CODART)); - TArticolo art(o.get()); - const TString& um = art.um()[0].get(UMART_UM); - - set(S_UM,um); - row.add(um,S_UM); - on_art_select(); + if (e==fe_modify) + { + TArticolo art(o.get()); + if (art.um().rows() > 0) + { + TSheet_field& ss=sfield(F_RIGHE); + TMask& m = o.mask(); // maschera di riga! + const TString& um = art.um()[1].get(UMART_UM); + m.set(S_UM,um); + TToken_string& row=ss.row(ss.selected()); + row.add(o.get(),ss.cid2index(S_CODART)); + row.add(um,S_UM); + on_art_select(); + } + } + else + if (e==fe_init) + on_art_select(); } - else - if (e==fe_init) - on_art_select(); - break; + break; default:break; } @@ -184,7 +190,7 @@ protected: virtual int write(const TMask& m); virtual int rewrite(const TMask& m); virtual bool remove(); - + virtual void init_insert_mode(TMask& m); }; bool TContratti_app:: user_create() @@ -326,11 +332,18 @@ void TContratti_app::save_rows(const TMask& m) fr->write(row->get(pos),file.curr()); } } - file.rewrite_write(); + if (file.get("CODART").full()) + file.rewrite_write(); } } +void TContratti_app::init_insert_mode(TMask& m) +{ + TSheet_field& ss=m.sfield(F_RIGHE); + ss.insert(); +} + int TContratti_app::write(const TMask& m) { int err=TRelation_application::write(m); diff --git a/lv/lv0400a.uml b/lv/lv0400a.uml index ff1d93e29..52ced5162 100755 --- a/lv/lv0400a.uml +++ b/lv/lv0400a.uml @@ -423,7 +423,7 @@ BEGIN FLAGS "U" USE LF_ANAMAG INPUT CODART S_CODART - DISPLAY "Articolo" CODART + DISPLAY "Articolo@20" CODART DISPLAY "Descrizione@50" DESCR OUTPUT S_CODART CODART OUTPUT S_DESCR DESCR @@ -439,7 +439,7 @@ BEGIN USE LF_ANAMAG KEY 2 INPUT DESCR S_DESCR DISPLAY "Descrizone@50" DESCR - DISPLAY "Articolo" CODART + DISPLAY "Articolo@20" CODART COPY OUTPUT S_CODART CHECKTYPE REQUIRED END