diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index 85c090453..95c03f49a 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -195,6 +195,9 @@ inline TGestione_bolle_app& gbapp() { return (TGestione_bolle_app &)main_app(); //Definizione della classe della maschera class TGestione_bolle_msk : public TDocumento_mask { + long _stcodcf; + long _stcodcont; + protected: static void arrotonda(const TMask& msk, real& quantita); //hanlder di documento: @@ -208,6 +211,7 @@ protected: public: virtual void user_set_handler( short fieldid, int index); virtual void user_set_row_handler(TMask& rm, short field, int index); + void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;} TGestione_bolle_msk(const char* tipodoc); }; @@ -269,15 +273,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) case F_DATADOC: ok = data_hndl( f, k ); break; default: break; } - TDocumento_mask& dmsk = (TDocumento_mask&)f.mask(); + TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask(); if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || f.focusdirty())) { f.set_focusdirty(false); TDocumento& doc = dmsk.doc(); - - static long stcodcf = 0, stcodcont = 0; TSheet_field& sheet = dmsk.sfield(F_SHEET); int nrighe = sheet.items(); @@ -299,13 +301,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) return true; } - if (stcodcf == codcf && stcodcont == codcont && nrighe > 0) + if (dmsk._stcodcf == codcf && dmsk._stcodcont == codcont && nrighe > 0) return true; dmsk.mask2doc(); - stcodcf = codcf; - stcodcont = codcont; + dmsk._stcodcf = codcf; + dmsk._stcodcont = codcont; //elimino tutte le righe del documento doc.destroy_rows(); @@ -685,10 +687,12 @@ int TGestione_bolle_app::read(TMask& m) //ridefinisco il metodo init_insert_mode della TMotore_application void TGestione_bolle_app::init_insert_mode(TMask &m) { - TDocumento_mask& mask = (TDocumento_mask&) m; + TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; TDocumento& d = mask.doc(); _giac.reset(d); + mask.reset_var_mask(); + return TMotore_application::init_insert_mode(m); }