From 2966682bae3339021c29f71a46efa612f24ef6ee Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 30 Nov 2010 16:37:08 +0000 Subject: [PATCH] Patch level : 10.0 850 Files correlati : mr2.exe Ricompilazione Demo : [ ] Commento : Aggiunta funzionwe per spostare una cella o una colonna ad una certa data con F8 sulla cella git-svn-id: svn://10.65.10.50/branches/R_10_00@21214 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- mr/mr2200.cpp | 59 ++++++++++++++++++++++++++++++++++++++------------ mr/mr2200g.h | 8 +++++++ mr/mr2200g.uml | 27 +++++++++++++++++++++++ 3 files changed, 80 insertions(+), 14 deletions(-) create mode 100755 mr/mr2200g.h create mode 100755 mr/mr2200g.uml diff --git a/mr/mr2200.cpp b/mr/mr2200.cpp index 96e8a0459..f82ee8416 100755 --- a/mr/mr2200.cpp +++ b/mr/mr2200.cpp @@ -1,6 +1,7 @@ #include "mr2200.h" #include "mr2200a.h" #include "mr2200b.h" +#include "mr2200g.h" #include #include @@ -3403,21 +3404,51 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol case F_BUCKET28: case F_BUCKET29: case F_BUCKET30: - if (e == fe_modify) + if (e == fe_magic) { - const TSheet_field& s = sfield(F_ARTICOLI); - TMask & m=s.sheet_mask(); - TMask_field &fprice=m.field(o.dlg()+1); - real qta(o.get()); - real price(fprice.get()); - if (!qta.is_zero() && price.is_zero()) - find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), - m.get(F_TIPOCF_SHEET), m.get_long(F_CLIENTE), m.get(F_ARTICOLO), - qta , price); - fprice.set(price.string()); - if (qta != ZERO) - highlight(s.selected(), o.dlg(), true, false); - } + TMask m("mr2200g"); + + if (m.run() != K_ENTER) + return true; + + + + TSheet_field& s = sfield(F_ARTICOLI); + const bool all = m.get_bool(F_ALL); + const short from_bucket = o.dlg(); + const short to_bucket = (bucket(m.get_date(F_TODATE)) + 1) * 2 + F_BUCKET0; + const int from_row = all ? 0 : s.selected(); + const int to_row = all ? s.items() - 1 : s.selected(); + + for (int r = from_row; r <= to_row; r++) + { + TToken_string & row = s.row(r); + const real qtafrom(row.get(s.cid2index(from_bucket))); + real qtato(row.get(s.cid2index(to_bucket))); + + qtato += qtafrom; + row.add("", s.cid2index(from_bucket)); + row.add(qtato.string(), s.cid2index(to_bucket)); + s.update_mask(r); + } + s.force_update(); + } + else + if (e == fe_modify) + { + const TSheet_field& s = sfield(F_ARTICOLI); + TMask & m=s.sheet_mask(); + TMask_field &fprice=m.field(o.dlg()+1); + real qta(o.get()); + real price(fprice.get()); + if (!qta.is_zero() && price.is_zero()) + find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), + m.get(F_TIPOCF_SHEET), m.get_long(F_CLIENTE), m.get(F_ARTICOLO), + qta , price); + fprice.set(price.string()); + if (qta != ZERO) + highlight(s.selected(), o.dlg(), true, false); + } break; case DLG_CANCEL: if (e == fe_button) diff --git a/mr/mr2200g.h b/mr/mr2200g.h new file mode 100755 index 000000000..3354f3ee7 --- /dev/null +++ b/mr/mr2200g.h @@ -0,0 +1,8 @@ +#ifndef __MR2100G_H +#define __MR2100G_H + +#define F_TODATE 201 +#define F_ALL 202 + +#endif + diff --git a/mr/mr2200g.uml b/mr/mr2200g.uml new file mode 100755 index 000000000..d9874b91f --- /dev/null +++ b/mr/mr2200g.uml @@ -0,0 +1,27 @@ +#include "mr2200g.h" + +PAGE "Spostamento quantita'" -1 -1 76 8 + +DATA F_TODATE +BEGIN + PROMPT 2 2 "Sposta al " +END + +BOOLEAN F_ALL +BEGIN + PROMPT 2 4 "Sposta tutta la la colonna" +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK