diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index ec54929d7..5848a03b4 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -236,8 +236,11 @@ protected: static bool lv_codart_handler(TMask_field& f, KEY k); static bool lv_causale_handler(TMask_field& f, KEY k); + static bool ss_notify(TSheet_field& ss, int r, KEY key); + virtual void on_idle(); + public: virtual void user_set_handler( short fieldid, int index); virtual void user_set_row_handler(TMask& rm, short field, int index); @@ -303,11 +306,20 @@ void TGestione_bolle_msk:: on_idle() { TSheet_field& s = sfield(F_SHEET); //per ora 4 fisso perchè non sappiamo calcolare la colonna del ritirato - int i = s.selected(); + s.set_focus_cell(_autoselect,4); + _autoselect = -1; } } +bool TGestione_bolle_msk::ss_notify(TSheet_field& ss, int r, KEY key) +{ + int err = TDocumento_mask::ss_notify(ss, r, key); + if (key == K_TAB && ((TGestione_bolle_msk&)ss.mask())._autoselect == -1) + ((TGestione_bolle_msk&)ss.mask())._autoselect = ss.selected(); + return err; +} + //LV_BOLLA_HANDLER: handler di bolla, carica le righe contratto sulle bolle, preparando la struttura del documento bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) { @@ -661,7 +673,8 @@ TGestione_bolle_msk::TGestione_bolle_msk(const char* tipodoc) : TDocumento_mask( if (dtfs == 'X') field(F_DATADOC).disable(); sfield(F_SHEET).set_nav_column(FR_QTA, FR_QTAGG1); - sfield(F_SHEET).set_auto_append(); + sfield(F_SHEET).set_auto_append(); + sfield(F_SHEET).set_notify( ss_notify ); } //////////////////////////////////////////