diff --git a/ba/ba3700.cpp b/ba/ba3700.cpp index 6fe5f063c..0b2ee4029 100755 --- a/ba/ba3700.cpp +++ b/ba/ba3700.cpp @@ -387,7 +387,6 @@ bool BA3700_application::sheet_action(TSheet_field&, int r, KEY k) TString news(15), newp(15), newt(1), newu(1); TToken_string ts(36), ns(36); - bool recalc = TRUE; switch (k) { @@ -435,7 +434,7 @@ bool BA3700_application::sheet_action(TSheet_field&, int r, KEY k) if (k == K_ENTER) { - if (mod && recalc) + if (mod) { // ricalcola sheet come sai fare tu int rdiff = atoi(msk->get(F_RATE_DIFF)); @@ -451,20 +450,6 @@ bool BA3700_application::sheet_action(TSheet_field&, int r, KEY k) msk->set(F_RATE_DIFF, pag->rate_differenziate() ? "1" : "2", TRUE); msk->set(F_MESECOMM, pag->mese_commerciale() ? "X" : ""); } - if (!recalc) - { - ahiahi = P_OK; - // put data as they are - TToken_string& trw = pag->rata(r); - TToken_string srw = trw; - if (m_scad) trw.add(news,0); - if (m_perc) trw.add(newp,1); - if (m_tipo) trw.add(newt,2); - if (m_ulc) trw.add(newu,3); - // validate the payment - if ((ahiahi = pag->validate()) != P_OK) - pag->rata(r) = srw; - } if (ahiahi) // rimetti le righe com'erano prima { @@ -472,16 +457,18 @@ bool BA3700_application::sheet_action(TSheet_field&, int r, KEY k) pag->strerr(ahiahi,s); warning_box(s); shf->row(r) = (TToken_string&)(*rws)[r]; - shf->force_update(-1); + shf->force_update(r); msk->set(F_NUM_RATE, pag->n_rate()); } - else if (recalc && mod && need_recalc) + else if (mod && need_recalc) { // ridefinisci lo sheet sulla base delle nuove rate + const int row = shf->selected(); pag->set_sheet(*shf); - shf->force_update(-1); - rws->destroy(); + shf->force_update(); + shf->select(row); +// rws->destroy(); (*rws) = shf->rows_array(); } diff --git a/ba/ba3700a.uml b/ba/ba3700a.uml index 67efc2363..b11f46124 100755 --- a/ba/ba3700a.uml +++ b/ba/ba3700a.uml @@ -187,7 +187,7 @@ ENDMASK PAGE "" -1 -1 78 15 -NUMBER 101 4 +NUMBER 101 5 BEGIN PROMPT 4 1 "Numero giorni " END