From 0e62628c38bdac89e7ca311a58e93c3d67478c1d Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 29 Jun 2011 15:34:03 +0000 Subject: [PATCH] Patch level :10.0 1044 Files correlati : Ricompilazione Demo : [ ] Commento : modificata la stampa per risorsa quando si hanno le commesse nello sheet git-svn-id: svn://10.65.10.50/branches/R_10_00@22353 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ci/ci1300.cpp | 65 ++++++++++++++++++++++++++++---------------------- ci/ci1300a.rep | 6 ++--- ci/ci1350.cpp | 19 ++++++++++----- ci/ci1350.h | 2 ++ ci/ci1400.cpp | 2 +- 5 files changed, 55 insertions(+), 39 deletions(-) diff --git a/ci/ci1300.cpp b/ci/ci1300.cpp index f2bf040d1..5000b387d 100755 --- a/ci/ci1300.cpp +++ b/ci/ci1300.cpp @@ -140,19 +140,23 @@ void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, const int c //crea la chiave per l'assoc_array TToken_string key; - switch(tipo_ordinamento) + if (ignore) + key = OTHER_ACTIVITIES; + else { - case 1: key.add(codcms); break; - case 2: key.add(codcms); key.add(codcosto); break; - case 3: key.add(codcms); key.add(codfase); break; - case 4: key.add(codcms); key.add(codcosto); key.add(codfase); break; - case 5: key.add(codcosto); break; - case 6: key.add(codcosto); key.add(codcms); break; - case 7: key.add(codcosto); key.add(codfase); break; - case 8: key.add(codcosto); key.add(codcms); key.add(codfase); break; - default: break; + switch(tipo_ordinamento) + { + case 1: key.add(codcms); break; + case 2: key.add(codcms); key.add(codcosto); break; + case 3: key.add(codcms); key.add(codfase); break; + case 4: key.add(codcms); key.add(codcosto); key.add(codfase); break; + case 5: key.add(codcosto); break; + case 6: key.add(codcosto); key.add(codcms); break; + case 7: key.add(codcosto); key.add(codfase); break; + case 8: key.add(codcosto); key.add(codcms); key.add(codfase); break; + default: break; + } } - //se la chiave non esiste già nell'assoc_array allora crea l'elemento TToken_string* record = (TToken_string*)righe.objptr(key); if (record == NULL) @@ -189,10 +193,8 @@ void TRil_ore_ris_mask::elabora_risorsa(const TString& curr_risorsa, const int c } //for (int i = 0; i < 2; i++)... - //setta un nuovo recset al report: se non lo facesse il recset sarebbe sempre il medesimo per ogni.. - //..risorsa (ovvero assoc_array) e quindi si incrementerebbe all'ignoranza - TRil_ore_recordset* recset = new TRil_ore_recordset; - rep.set_recordset(recset); + //prende il recordset in opera dal report per fargli le set_var + TRil_ore_recordset* recset = (TRil_ore_recordset*)rep.recordset(); //tenta la mask2report per far apparire sul report i campi di selezione della maschera rep.mask2report(*this); TString4 code; @@ -274,24 +276,29 @@ void TRil_ore_ris_mask::elabora() const //poi un successivo su tutte le cms/cdc che non apparivano nella lista const int ignore_start = 0; const int ignore_end = !lista.empty(); - for (int ignore = ignore_start; ignore <= ignore_end; ignore++) + + TProgind pi(recset_ris_att_items, msg, true, true); + //per ogni risorsa/attrezzatura dell'elenco genera un report singolo che viene riempito nella elabora_risorsa e.. + //..aggiunto al book per la stampa finale + for (bool ok = recset_ris_att.move_first(); ok; ok = recset_ris_att.move_next()) { - TProgind pi(recset_ris_att_items, msg, true, true); + if (!pi.addstatus(1)) + break; - //per ogni risorsa/attrezzatura dell'elenco genera un report singolo che viene riempito nella elabora_risorsa e.. - //..aggiunto al book per la stampa finale - for (bool ok = recset_ris_att.move_first(); ok; ok = recset_ris_att.move_next()) + const TString80 curr_risorsa = recset_ris_att.cursor()->curr().get("CODTAB"); + + //setta un nuovo recset al report: se non lo facesse il recset sarebbe sempre il medesimo per ogni.. + //..risorsa (ovvero assoc_array) e quindi si incrementerebbe all'ignoranza + TRil_ore_recordset* recset = new TRil_ore_recordset; + rep.set_recordset(recset); + + for (int ignore = ignore_start; ignore <= ignore_end; ignore++) { - if (!pi.addstatus(1)) - break; - - const TString80 curr_risorsa = recset_ris_att.cursor()->curr().get("CODTAB"); - elabora_risorsa(curr_risorsa, m, ignore!=0, rep); - - book.add(rep); - } //for (bool ok = recset_ris_att.move_first()... - } + } //for (int ignore = ignore_start.. + //stampa un report per risorsa + book.add(rep); + } ////for (bool ok = recset_ris_att.move_first()... } //for (int m = da_mese; .. //e alla fine stampa il book diff --git a/ci/ci1300a.rep b/ci/ci1300a.rep index f6fa2facc..f67ef5ef0 100755 --- a/ci/ci1300a.rep +++ b/ci/ci1300a.rep @@ -324,7 +324,7 @@
- + @@ -332,8 +332,8 @@ #SYSTEM.DATE - - + + diff --git a/ci/ci1350.cpp b/ci/ci1350.cpp index dd84fd9ea..dcfaac1c8 100755 --- a/ci/ci1350.cpp +++ b/ci/ci1350.cpp @@ -1,3 +1,4 @@ +#include #include #include "../ca/commesse.h" @@ -130,6 +131,12 @@ long ci_calcola_giorni_lavorativi_intersezione(const TDate& ini_1, const TDate& return ci_calcola_giorni_lavorativi(ini_int, fine_int); } +const TVariant describe_cms(const TString& chiave1) +{ + if (chiave1 == OTHER_ACTIVITIES) + return TR("Altre attivita'"); + return cache().get(LF_COMMESSE, chiave1, COMMESSE_DESCRIZ); +} void ci_fill_recset_from_ass(TAssoc_array& ass, TReport& rep) { @@ -204,18 +211,18 @@ void ci_fill_recset_from_ass(TAssoc_array& ass, TReport& rep) switch (ordinamento) { case 1: //cms - recset->set("Des1", cache().get(LF_COMMESSE, chiave1, COMMESSE_DESCRIZ)); + recset->set("Des1", describe_cms(chiave1)); break; case 2: //cms - cdc - recset->set("Des1", cache().get(LF_COMMESSE, chiave1, COMMESSE_DESCRIZ)); + recset->set("Des1", describe_cms(chiave1)); recset->set("Des2", cache().get(LF_CDC, chiave2, CDC_DESCRIZ)); break; case 3: //cms - fase - recset->set("Des1", cache().get(LF_COMMESSE, chiave1, COMMESSE_DESCRIZ)); + recset->set("Des1", describe_cms(chiave1)); recset->set("Des2", cache().get(LF_FASI, chiave2, FASI_DESCRIZ)); break; case 4: //cms - cdc - fase - recset->set("Des1", cache().get(LF_COMMESSE, chiave1, COMMESSE_DESCRIZ)); + recset->set("Des1", describe_cms(chiave1)); recset->set("Des2", cache().get(LF_CDC, chiave2, CDC_DESCRIZ)); recset->set("Des3", cache().get(LF_FASI, chiave3, FASI_DESCRIZ)); break; @@ -224,7 +231,7 @@ void ci_fill_recset_from_ass(TAssoc_array& ass, TReport& rep) break; case 6: //cdc - cms recset->set("Des1", cache().get(LF_CDC, chiave1, CDC_DESCRIZ)); - recset->set("Des2", cache().get(LF_COMMESSE, chiave2, COMMESSE_DESCRIZ)); + recset->set("Des2", describe_cms(chiave2)); break; case 7: //cdc - fase recset->set("Des1", cache().get(LF_CDC, chiave1, CDC_DESCRIZ)); @@ -232,7 +239,7 @@ void ci_fill_recset_from_ass(TAssoc_array& ass, TReport& rep) break; case 8: //cdc - cms - fase recset->set("Des1", cache().get(LF_CDC, chiave1, CDC_DESCRIZ)); - recset->set("Des2", cache().get(LF_COMMESSE, chiave2, COMMESSE_DESCRIZ)); + recset->set("Des2", describe_cms(chiave2)); recset->set("Des3", cache().get(LF_FASI, chiave3, FASI_DESCRIZ)); break; } diff --git a/ci/ci1350.h b/ci/ci1350.h index 222d498c7..85c8f56b2 100755 --- a/ci/ci1350.h +++ b/ci/ci1350.h @@ -29,6 +29,8 @@ public: TRil_ore_cms_recordset(const char* query) : TISAM_recordset(query) {} }; +#define OTHER_ACTIVITIES "^ALTRE^" + /////////////////////////////////////////////////////////////////////////////////////// // Metodi liberi per determinare giorni lavorativi e feriali (nati per ci1300 ci1400) // e per formattare e riempire i report corrispondenti diff --git a/ci/ci1400.cpp b/ci/ci1400.cpp index 58b43aac7..c3f157419 100755 --- a/ci/ci1400.cpp +++ b/ci/ci1400.cpp @@ -115,7 +115,7 @@ bool TRil_ore_cms_mask::elabora_commessa(const TString& curr_commessa, const int } TRil_ore_cms_recordset rilore_recset(query); - if (curr_commessa == "_ALTRE_") + if (curr_commessa == OTHER_ACTIVITIES) { rilore_recset.set_var("#CODICE", ""); const TSheet_field& lista = sfield(F_RIGHE);