From c6e7c5df0b2254a77ff41fd71920304fe93cb562 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 15 Apr 2010 08:25:48 +0000 Subject: [PATCH] Patch level :10.0 Files correlati : Ricompilazione Demo : [ ] Commento : modifiche necessarie per la gestione degli importi nei report git-svn-id: svn://10.65.10.50/trunk@20335 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/alex.cpp | 44 ++++++++++++++------------------ include/doc.h | 3 ++- include/maskfld.cpp | 2 +- include/real.h | 2 ++ include/report.alx | 62 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 86 insertions(+), 27 deletions(-) diff --git a/include/alex.cpp b/include/alex.cpp index a31eaed05..1f3e119fa 100755 --- a/include/alex.cpp +++ b/include/alex.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -174,7 +175,7 @@ void TAVM_list_window::update() TString str; int tab = 6; - const int last = min(_bc->items(), rows()); + const int last = min(_bc->items(), origin().y + rows()); for (int i = 0; i < last; i++) { const int y = i+1; @@ -338,17 +339,6 @@ public: bool TAVM_monitor::on_field_event(TOperable_field& o, TField_event e, long jolly) { - switch (o.dlg()) - { - case 104: - if (e == fe_init) - o.set(ignore_mon() ? "X" : ""); - if (e == fe_modify) - set_ignore_mon(!o.get().blank()); - break; - default: - break; - } return true; } @@ -356,6 +346,8 @@ bool TAVM_monitor::on_key(KEY k) { switch (k) { + case K_F9: + set_ignore_mon(true); case K_F10: case K_F11: stop_run(k); @@ -365,27 +357,29 @@ bool TAVM_monitor::on_key(KEY k) return TAutomask::on_key(k); } -TAVM_monitor::TAVM_monitor() : TAutomask("Monitor", 1, 50, 20), _ignore_mon(false) +TAVM_monitor::TAVM_monitor() : TAutomask("Monitor", 1, 64, -1, -1, 1), _ignore_mon(false) { + //toolbar modernissima + add_button_tool(DLG_NEXTREC, "Step F11", TOOL_NEXTREC).set_exit_key(K_F11); + add_button_tool(DLG_LASTREC, "Skip F10", TOOL_NEXTREC).set_exit_key(K_F10); + add_button_tool(DLG_ELABORA, "Run F5", TOOL_LASTREC).set_exit_key(K_F5); + add_button_tool(DLG_CANCEL, "NoMon F9", TOOL_CANCEL).set_exit_key(K_F9); + add_button_tool(DLG_QUIT, "End", TOOL_QUIT).set_exit_key(K_QUIT); + + //campi vari + //finestra con codice TWindowed_field* wf = new TAVM_list_field(this); - wf->create(101, 0, 0, 24, -4); add_field(wf); + wf->create(101, 0, 0, 31, -3, page_win(0)); add_field(wf); _lw = (TAVM_list_window*)&wf->win(); - + //finestra stack TWindowed_field* sf = new TAVM_stack_field(this); - sf->create(102, 27, 0, -3, 9); add_field(sf); + sf->create(102, 34, 0, -3, 12, page_win(0)); add_field(sf); _sw = (TAVM_stack_window*)&sf->win(); - + //finestra di return stack TWindowed_field* rf = new TAVM_stack_field(this); - rf->create(103, 27, 10, -3, -4); add_field(rf); + rf->create(103, 34, 13, -2, -1, page_win(0)); add_field(rf); _rw = (TAVM_stack_window*)&rf->win(); - add_boolean(104, 0, TR("Ignora MON d'ora in poi"), 1, -3); - - add_button(DLG_NEXTREC, 0, "", -14, -1, 10, 2, "", BMP_NEXTREC).set_exit_key(K_F11); - add_button(DLG_LASTREC, 0, "", -24, -1, 10, 2, "", BMP_DARROWR2).set_exit_key(K_F10); - add_button(DLG_ELABORA, 0, "", -34, -1, 10, 2, "", BMP_LASTREC).set_exit_key(K_F5); - add_button(DLG_QUIT, 0, "", -44, -1, 10, 2).set_exit_key(K_QUIT); - set_handlers(); } diff --git a/include/doc.h b/include/doc.h index 5fb46f293..fa166f06d 100755 --- a/include/doc.h +++ b/include/doc.h @@ -83,7 +83,8 @@ #define DOC_TIPOCFFATT "TIPOCFFATT" #define DOC_CODCFFATT "CODCFFATT" #define DOC_LIQDIFF "LIQDIFF" - +#define DOC_DATACOMP "DATACOMP" +#define DOC_DATAFCOMP "DATAFCOMP" // Virtuali diff --git a/include/maskfld.cpp b/include/maskfld.cpp index f5171c599..de3cafadb 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -4133,7 +4133,7 @@ const char* TDate_field::win2raw( y = oggi.year(); } if (y < 100) - y += (y <= 10) ? 2000 : 1900; + y += (y <= 20) ? 2000 : 1900; s.format("%02d-%02d-%4d", int(d), m, y); } } diff --git a/include/real.h b/include/real.h index a4883ee4c..5c3ef9a86 100755 --- a/include/real.h +++ b/include/real.h @@ -476,6 +476,8 @@ protected: // @cmember Permette la comparazione degli importi (0 se uguali in valore // ed importo) virtual int compare(const TSortable& s) const; + // @cmember Duplicatore importi + virtual TObject* dup() const { return new TImporto(_sezione, _valore); } // @access Public Member public: diff --git a/include/report.alx b/include/report.alx index 79b98704f..3bef80bf7 100755 --- a/include/report.alx +++ b/include/report.alx @@ -80,6 +80,68 @@ SP ; +: REP_ADD_IMPORTO ( dst_sezione_fld dst_valore_fld src_sezione src_valore -- ) +DUP \ dup src_valore +EMPTY= IF \ se l'importo sorgente è nullo butta tutto e finisce qui + DROP + DROP + DROP + DROP +ELSE + 3 PICK >R \ prende dst_sezione_fld + 2 PICK >R \ prende dst_valore_fld + >R \ store di src_valore + >R \ store di src_sezione + SWAP \ porta in cima allo stack la dst_sezione_fld + DUP \ la duplica perchè la perde la riga dopo + @ \ prende il valore di dst_sezione_fld + + EMPTY= IF \ se la dst_sezione_fld è vuota + R> \ recupera la src_sezione + SWAP \ gira i due termini + ! \ assegna il contenuto della src_sezione al campo dst_sezione_fld + R> \ prende src_valore + SWAP \ gira i campi src_valore e dst_valore_fld + ! \ assegna src_valore al campo dst_valore_fld + ELSE + @ + R> \ legge src_sezione + = IF + R> \ prende src_valore + ELSE + R> \ prende src_valore + -1 * \ inverte il segno di src_valore + THEN + SWAP \ gira i campi sullo stack src_valore dst_valore_fld + +! \ somma src_valore con segno rovesciato al campo dst_valore_fld + THEN +\ normalizzazione della destinazione + MON + R@ \ recupera dst_valore_fld + @ \ legge il valore di dst_valore_fld + DUP \ lo duplica per possibile cambio di segno + 0 < IF \ se il valore è negativo + -1 * \ gli cambia segno + R> \ recupera ancora dst_valore_fld + ! \ salva il valore positivo nel campo dst_valore_fld + R@ \ recupera dst_sezione_fld + @ \ legge il valore di dst_sezione_fld + "A" = IF \ lo inverte + "D" + ELSE + "A" + THEN + R> \ recupera ancora dst_sezione_fld + ! \ salva il valore cambiato della sezione in dst_sezione_fld + ELSE + DROP \ se non deve invertire nulla svuota gli stack + R> + R> + THEN + +THEN +; + \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Implementazione dei vari messaggi standard \ f1 campo o sezione del report