From b31aff8711e376f9a6af80a55396f9430a2d8f88 Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 26 Nov 2007 16:08:33 +0000 Subject: [PATCH] Patch level :4.0 818 Files correlati : Ricompilazione Demo : [ ] Commento :corretto errore di cambio stato in caso di elaborazione differita di un documento (tipo elaborazione: generazione effetti) git-svn-id: svn://10.65.10.50/trunk@15795 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/velib06.cpp | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/ve/velib06.cpp b/ve/velib06.cpp index fb613fbdf..b99a5584d 100755 --- a/ve/velib06.cpp +++ b/ve/velib06.cpp @@ -2860,29 +2860,33 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key ) bool do_checks = false; const char stato_iniziale = m.doc().stato(); - while (selection->run() == K_ENTER) + while (selection->run() == K_ENTER) //NON riportare modifiche dalla 3.1!! Già sistemato { m.mask2doc(); const bool processed = selection->elabora(); - do_checks |= processed; + do_checks |= processed; + if (m.doc().stato() != stato_iniziale) - break; - if (processed) - { - m.doc2mask(FALSE); - TSheet_field& ss = m.sfield(F_SHEET); - for (int i = 0; i < ss.items(); i++) - { - m.ss_notify(ss,i,K_TAB); - m.ss_notify(ss,i,K_SPACE); - m.ss_notify(ss,i,K_ENTER); - } - } + break; + + if (processed) + { + m.doc2mask(false); + TSheet_field& ss = m.sfield(F_SHEET); + for (int i = 0; i < ss.items(); i++) + { + m.ss_notify(ss,i,K_TAB); + m.ss_notify(ss,i,K_SPACE); + m.ss_notify(ss,i,K_ENTER); + } + } + if (!m.get_bool(F_TYPE)) // non aggiunge al documento attuale break; } - if (do_checks) + if (do_checks) //NON riportare modifiche dalla 3.1!! Già sistemato { + m.doc2mask(false); // Provoca decodifiche necessarie const int tutti = m.fields(); int i; @@ -2898,7 +2902,7 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key ) delete selection; } } - return TRUE; + return true; } ///////////////////////////////////////////////////////////