From 86706305f7d2a78320ebe6ee9442411e3a07cf07 Mon Sep 17 00:00:00 2001 From: luca83 Date: Fri, 22 Oct 2010 15:33:56 +0000 Subject: [PATCH] Patch level : 10.0 NO PATCH Files correlati : pd6411 pd6411a.msk Ricompilazione Demo : [ ] Commento : Correzioni richieste da Roberto git-svn-id: svn://10.65.10.50/branches/R_10_00@21057 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/pd6411100.cpp | 59 +++++++++++++++++++++++++++++++++++++++-------- ps/pd6411100a.h | 6 ++--- ps/pd6411100a.uml | 39 +++---------------------------- 3 files changed, 54 insertions(+), 50 deletions(-) diff --git a/ps/pd6411100.cpp b/ps/pd6411100.cpp index 1133f2d90..111db6ce6 100755 --- a/ps/pd6411100.cpp +++ b/ps/pd6411100.cpp @@ -62,27 +62,36 @@ void TListini_haba_msk::riempi_sheet() row.add(impfr.string(), sheet.cid2index(S_IMPFRANCO)); } sheet.force_update(); + + if(get(F_CAMBIO).empty()) + { + TToken_string& row = sheet.row(0); + real euro(row.get(sheet.cid2index(S_IMPEURO))); + real franco(row.get(sheet.cid2index(S_IMPFRANCO))); + + real cambio = franco / euro; + set(F_CAMBIO, cambio); + } } void TListini_haba_msk::cambio(const short primo, const short secondo) { TSheet_field& sheet = sfield(F_SHEET); TMask& msk = sheet.mask(); - const TString& codval = msk.get(F_CODVAL); const real cambio = msk.get_real(F_CAMBIO); TMask& rmsk = sheet.sheet_mask(); - if(rmsk.field(secondo).empty() || cambio.is_zero() || codval.empty()) + if(rmsk.field(secondo).empty() || cambio.is_zero()) return; TToken_string& row = sheet.row(sheet.selected()); - TCurrency impval; rmsk.get_currency(secondo, impval); + real impval = rmsk.get_real(secondo); if(secondo == S_IMPEURO) - impval.change_value(codval, cambio); + impval *= cambio; else - impval.change_to_euro_val(); + impval /= cambio; rmsk.set(primo, impval); } @@ -110,16 +119,26 @@ void TListini_haba_msk::registra() FOR_EACH_SHEET_ROW(sheet, r, riga) { TToken_string& row = *(TToken_string*)riga; + TString4 spessore; spessore.format("%02d", row.get_int(sheet.cid2index(S_SPESSORE))); TString80 codtab; - codtab << row.get(sheet.cid2index(S_GRUPPO)) << row.get(sheet.cid2index(S_MESE)) << row.get(sheet.cid2index(S_SPESSORE)); + codtab << row.get(sheet.cid2index(S_GRUPPO)) << row.get(sheet.cid2index(S_MESE)) << spessore; const real impeuro(row.get(sheet.cid2index(S_IMPEURO))); const real impfranco(row.get(sheet.cid2index(S_IMPFRANCO))); - listini.put("CODTAB", codtab); - listini.put("R0", impeuro); - listini.put("R1", impfranco); - listini.rewrite_write(); + if(impeuro == ZERO && impfranco == ZERO) + { + listini.put("CODTAB", codtab); + listini.remove(); + } + else + { + listini.put("CODTAB", codtab); + listini.put("R0", impeuro); + listini.put("R1", impfranco); + listini.rewrite_write(); + } } + riempi_sheet(); } bool TListini_haba_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -131,6 +150,7 @@ bool TListini_haba_msk::on_field_event(TOperable_field& o, TField_event e, long { reset(F_GRUPPO); reset(F_MESE); + reset(F_CAMBIO); sfield(F_SHEET).destroy(); return false; } @@ -139,6 +159,15 @@ bool TListini_haba_msk::on_field_event(TOperable_field& o, TField_event e, long if(e == fe_button) registra(); break; + case DLG_DELREC: + if(e == fe_button && jolly == 1) + { + TMask& msk = sfield(F_SHEET).sheet_mask(); + msk.reset(S_IMPEURO); + msk.reset(S_IMPFRANCO); + return false; + } + break; case F_GRUPPO: case F_MESE: if(e == fe_modify) @@ -150,6 +179,16 @@ bool TListini_haba_msk::on_field_event(TOperable_field& o, TField_event e, long aggiungi_riga(); return false; } + if(e == se_query_del) + { + const TString& zero = real(ZERO).string(); + TSheet_field& sheet = sfield(o.dlg()); + TToken_string& row = sheet.row(sheet.selected()); + row.add(zero, sheet.cid2index(S_IMPEURO)); + row.add(zero, sheet.cid2index(S_IMPFRANCO)); + sheet.force_update(); + return false; + } break; case S_SPESSORE: if(e == fe_modify) diff --git a/ps/pd6411100a.h b/ps/pd6411100a.h index 5ade4ac64..5710e6179 100755 --- a/ps/pd6411100a.h +++ b/ps/pd6411100a.h @@ -1,10 +1,8 @@ //Definizione campi per maschera pd6411 - Gestione Materiali spessore categoria #define F_GRUPPO 201 #define F_MESE 202 -#define F_CODVAL 203 -#define F_DESVAL 204 -#define F_CAMBIO 205 -#define F_SHEET 206 +#define F_CAMBIO 203 +#define F_SHEET 204 #define S_GRUPPO 101 #define S_MESE 102 diff --git a/ps/pd6411100a.uml b/ps/pd6411100a.uml index 09489b4af..51e24698a 100755 --- a/ps/pd6411100a.uml +++ b/ps/pd6411100a.uml @@ -42,47 +42,14 @@ BEGIN FLAGS "AM" END -GROUPBOX DLG_NULL 78 4 +GROUPBOX DLG_NULL 78 3 BEGIN PROMPT 1 4 "@bParametri per il cambio" END -STRING F_CODVAL 3 -BEGIN - PROMPT 2 5 "Valuta " - FIELD CODTAB - FLAGS "UZ" - KEY 1 - USE %VAL - INPUT CODTAB F_CODVAL - DISPLAY "Codice" CODTAB - DISPLAY "Valuta@50" S0 - OUTPUT F_CODVAL CODTAB - OUTPUT F_DESVAL S0 - OUTPUT F_CAMBIO S4 - HELP "Codice della valuta" - CHECKTYPE REQUIRED -END - -STRING F_DESVAL 50 -BEGIN - PROMPT 15 5 "" - FIELD S0 - KEY 2 - USE %VAL KEY 2 - INPUT S0 F_DESVAL - DISPLAY "Valuta@60" S0 - DISPLAY "Codice@10" CODTAB - COPY OUTPUT F_CODVAL - HELP "Descrizione della valuta" - CHECKTYPE REQUIRED - WARNING "Manca la descrizione" -END - - NUMBER F_CAMBIO 15 5 BEGIN - PROMPT 2 6 "Cambio " + PROMPT 2 5 "Cambio contro euro" FIELD S4 FLAGS "U" CHECKTYPE REQUIRED @@ -91,7 +58,7 @@ END SPREADSHEET F_SHEET BEGIN - PROMPT 2 8 "" + PROMPT 2 7 "" ITEM "Gruppo" ITEM "Mese" ITEM "Spessore"