From 3f7e85cb1c2c048e28dbfe2aec11480dc58eb95f Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 29 Jul 2010 00:26:58 +0000 Subject: [PATCH] Patch level : 10.0 nopatch Files correlati : ri0.exe Ricompilazione Demo : [ ] Commento : RIlevazione Ore su commessa cdc fase git-svn-id: svn://10.65.10.50/branches/R_10_00@20717 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ci/ci0200.cpp | 91 ++++++++++++++++++++++++-------------------------- ci/ci0200a.h | 1 + ci/ci0200a.uml | 8 ++++- ci/ci0500.cpp | 8 ++++- ci/ci0500a.h | 1 + ci/ci0500a.uml | 6 ++++ ci/ci0600.cpp | 5 +-- ci/ci2100.cpp | 6 ++-- ci/ci2200.cpp | 10 +++--- ci/cilib.cpp | 89 ++++++++++++++++++++++++------------------------ ci/cirilroa.h | 18 ---------- ci/f125.dir | 2 +- ci/rilore.h | 18 ++++++++++ 13 files changed, 142 insertions(+), 121 deletions(-) delete mode 100755 ci/cirilroa.h create mode 100755 ci/rilore.h diff --git a/ci/ci0200.cpp b/ci/ci0200.cpp index 61341dd87..3f5ed6c77 100755 --- a/ci/ci0200.cpp +++ b/ci/ci0200.cpp @@ -23,6 +23,7 @@ class TRisoatt_msk : public TAutomask protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + const TString & add_field_to_tab_filter(TString & filtro, short id, int len = 0, const char * empty_value = ""); void riempi_sheet(); void nuova_riga(); void azzera_riga(TSheet_field& sheet); @@ -36,6 +37,21 @@ public: TRisoatt_msk(); }; +const TString & TRisoatt_msk::add_field_to_tab_filter(TString & filtro, short id, int len, const char * empty_value) +{ + if (len <= 0) + len = field(id).size(); + TString val = get(id); + + if (val == empty_value) + val.fill('?', len); + else + val.left_just(len); + filtro << val; + + return filtro; +} + //RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave //compilati sulla maschera void TRisoatt_msk::riempi_sheet() @@ -44,68 +60,43 @@ void TRisoatt_msk::riempi_sheet() const TString4 anno = get(F_ANNO); //guardo il tipo risorsa / attrezzatura che sto ricercando (se Tutti setto a '?') - char risoatt; - if(get(F_RISOATT)[0] == 'T') - risoatt = '?'; - else - risoatt = get(F_RISOATT)[0]; + TString filtro; + + add_field_to_tab_filter(filtro, F_RISOATT, 1, "T"); + char risoatt = get(F_RISOATT)[0]; //leggo il codice corretto a seconda del tipo selezionato (se vuoto setto a 16 caratteri '?') - TString16 codice; - switch(get(F_RISOATT)[0]) + switch(risoatt) { case 'T': - if (get(F_CODICE).empty()) - codice.fill('?', 16); - else - { - codice = get(F_CODICE); - codice.left_just(16); - } + add_field_to_tab_filter(filtro, F_CODICE); break; case 'R': - if (get(F_CODRIS).empty()) - codice.fill('?', 16); - else - { - codice = get(F_CODRIS); - codice.left_just(16); - } + add_field_to_tab_filter(filtro, F_CODRIS); break; case 'A': - if (get(F_CODATT).empty()) - codice.fill('?', 16); - else - { - codice = get(F_CODATT); - codice.left_just(16); - } + add_field_to_tab_filter(filtro, F_CODATT); break; default: break; } //leggo il mese (se vuoto setto a '??') - TString4 mese; - if (get(F_MESE).empty()) - mese.fill('?', 2); - else - mese = get(F_MESE); + add_field_to_tab_filter(filtro, F_MESE, 2); //leggo il tipo ora (se vuoto setto a '??') - TString4 tpora; - if (get(F_TPORA).empty()) - tpora.fill('?', 2); - else - tpora = get(F_TPORA); + add_field_to_tab_filter(filtro, F_TPORA); - //preparo il filtro della query - TString filtro; - filtro << risoatt << codice << anno << mese << tpora; + int i ; + for (i = filtro.len() - 1; i >= 0 && filtro[i] == '?'; i--); + filtro.cut(++i); + if (i > 0) + filtro << '*'; - TString query; - query << "USE &ROA\n" - << "SELECT CODTAB?=\"" << filtro << "\""; - if(risoatt != '?') + TString query("USE &ROA\n"); + + if (filtro.full()) + query << "SELECT CODTAB?=\"" << filtro << "\""; + if(risoatt != 'T') { query << "\n" << "FROM CODTAB=" << risoatt << "\n" @@ -459,7 +450,13 @@ bool TRisoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly { switch (f.dlg()) { - case DLG_NEWREC: + case DLG_CERCA: + if (e == fe_button) + { + riempi_sheet(); + return false; + } + case DLG_NEWREC: if (e == fe_button) { nuova_riga(); @@ -569,6 +566,6 @@ void TRisoatt_app::main_loop() int ci0200(int argc, char *argv[]) { TRisoatt_app a; - a.run (argc, argv, TR("Gestione Risorse / Attrezzature")); + a.run (argc, argv, TR("Gestione Listini")); return TRUE; } \ No newline at end of file diff --git a/ci/ci0200a.h b/ci/ci0200a.h index efdf82a2b..2578e9ee0 100755 --- a/ci/ci0200a.h +++ b/ci/ci0200a.h @@ -12,6 +12,7 @@ #define DLG_RESET 400 #define DLG_COPY 401 +#define DLG_CERCA 402 #define S_RISOATT 101 #define S_CODRIS 102 diff --git a/ci/ci0200a.uml b/ci/ci0200a.uml index 135729e1e..b49a704f2 100755 --- a/ci/ci0200a.uml +++ b/ci/ci0200a.uml @@ -2,6 +2,12 @@ TOOLBAR "topbar" 0 0 0 2 +BUTTON DLG_CERCA +BEGIN + PROMP 1 1 "Cerca" + PICTURE TOOL_FINDREC +END + BUTTON DLG_NEWREC 2 2 BEGIN PROMPT 1 1 "Nuovo" @@ -30,7 +36,7 @@ END ENDPAGE -PAGE "Risorse e Attrezzature" 0 2 0 0 +PAGE "Listino Risorse e Attrezzature" 0 2 0 0 GROUPBOX DLG_NULL 78 8 BEGIN diff --git a/ci/ci0500.cpp b/ci/ci0500.cpp index 6f73a4866..895fa5ce8 100755 --- a/ci/ci0500.cpp +++ b/ci/ci0500.cpp @@ -315,7 +315,13 @@ bool TDisp_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long { switch (f.dlg()) { - case DLG_NEWREC: + case DLG_CERCA: + if (e == fe_button) + { + riempi_sheet(); + return false; + } + case DLG_NEWREC: if (e == fe_button) { nuova_riga(); diff --git a/ci/ci0500a.h b/ci/ci0500a.h index 72bf84029..5ad0ac552 100755 --- a/ci/ci0500a.h +++ b/ci/ci0500a.h @@ -11,6 +11,7 @@ #define F_SHEET 310 #define DLG_RESET 400 +#define DLG_CERCA 401 #define S_RISOATT 101 #define S_CODRIS 102 diff --git a/ci/ci0500a.uml b/ci/ci0500a.uml index 0ba27e701..1b713f3e8 100755 --- a/ci/ci0500a.uml +++ b/ci/ci0500a.uml @@ -2,6 +2,12 @@ TOOLBAR "topbar" 0 0 0 2 +BUTTON DLG_CERCA +BEGIN + PROMP 1 1 "Cerca" + PICTURE TOOL_FINDREC +END + BUTTON DLG_NEWREC 2 2 BEGIN PROMPT 1 1 "Nuovo" diff --git a/ci/ci0600.cpp b/ci/ci0600.cpp index 588ebbec4..fe349c4e5 100755 --- a/ci/ci0600.cpp +++ b/ci/ci0600.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -56,7 +57,7 @@ void TDef_risoatt_msk::riempi_sheet() } TString query; - query << "USE CIRILROA\n" + query << "USE RILORE\n" << "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" << "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" << "(BETWEEN(ANNO,\"" << anno << "\",\"" << anno << "\"))&&" @@ -236,7 +237,7 @@ void TDef_risoatt_msk::azzera_tutto(TSheet_field& sheet) //vaoler pari a zero, e poi ricarica lo sheet void TDef_risoatt_msk::registra() { - TLocalisamfile file(LF_CIRILROA); + TLocalisamfile file(LF_RILORE); TSheet_field& sheet = sfield(F_SHEET); FOR_EACH_SHEET_ROW(sheet, r, row) diff --git a/ci/ci2100.cpp b/ci/ci2100.cpp index 94d009cb2..45b1b9780 100755 --- a/ci/ci2100.cpp +++ b/ci/ci2100.cpp @@ -144,7 +144,7 @@ void TRilevamento_prev_msk::carica_default() } TString query; - query << "USE CIRILROA\n" + query << "USE RILORE\n" << "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" << "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" << "(BETWEEN(ANNO," << anno << "," << anno << "))&&" @@ -235,7 +235,7 @@ void TRilevamento_prev_msk::riempi_sheet() } TString query; - query << "USE CIRILROA\n" + query << "USE RILORE\n" << "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" << "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" << "(BETWEEN(ANNO," << anno << "," << anno << "))&&" @@ -425,7 +425,7 @@ void TRilevamento_prev_msk::azzera_tutto(TSheet_field& sheet) //vaoler pari a zero, e poi ricarica lo sheet void TRilevamento_prev_msk::registra() { - TLocalisamfile file(LF_CIRILROA); + TLocalisamfile file(LF_RILORE); TSheet_field& sheet = sfield(F_SHEET); FOR_EACH_SHEET_ROW(sheet, r, row) diff --git a/ci/ci2200.cpp b/ci/ci2200.cpp index 3e53b3ad6..9fc47a7df 100755 --- a/ci/ci2200.cpp +++ b/ci/ci2200.cpp @@ -144,7 +144,7 @@ void TRilevamento_cons_msk::carica_default() } TString query; - query << "USE CIRILROA\n" + query << "USE RILORE\n" << "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" << "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" << "(BETWEEN(ANNO," << anno << "," << anno << "))&&" @@ -235,7 +235,7 @@ void TRilevamento_cons_msk::riempi_sheet() } TString query; - query << "USE CIRILROA\n" + query << "USE RILORE\n" << "SELECT (BETWEEN(TIPORA,\"" << risoatt << "\",\"" << risoatt << "\"))&&" << "(BETWEEN(CODICE,\"" << codice << "\",\"" << codice << "\"))&&" << "(BETWEEN(ANNO," << anno << "," << anno << "))&&" @@ -425,7 +425,7 @@ void TRilevamento_cons_msk::azzera_tutto(TSheet_field& sheet) //vaoler pari a zero, e poi ricarica lo sheet void TRilevamento_cons_msk::registra() { - /*TLocalisamfile file(LF_CIRILROA); + /*TLocalisamfile file(LF_RILORE); TSheet_field& sheet = sfield(F_SHEET); FOR_EACH_SHEET_ROW(sheet, r, row) @@ -475,10 +475,10 @@ void TRilevamento_cons_msk::registra() //ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, long jolly) { - switch (f.dlg()) +/* switch (f.dlg()) { default: break; - } + } */ return true; } diff --git a/ci/cilib.cpp b/ci/cilib.cpp index 3df18f66b..8859d38f7 100755 --- a/ci/cilib.cpp +++ b/ci/cilib.cpp @@ -3,7 +3,7 @@ #include #include "cilib.h" -#include "cirilroa.h" +#include "rilore.h" #include "cimsk.h" /////////////////////////////////////////////////////////// @@ -646,14 +646,14 @@ bool TRilevamento_ore::read(const char tipo, const char tipora, const char *codi { int err = _iskeynotfound; - TLocalisamfile rilore(LF_CIRILROA); + TLocalisamfile rilore(LF_RILORE); - put(CIRILROA_TIPO, tipo); - put(CIRILROA_TIPORA, tipora); - put(CIRILROA_CODICE, codice); - put(CIRILROA_ANNO, anno); - put(CIRILROA_MESE, mese); - put(CIRILROA_TPORA, tpora); + put(RILORE_TIPO, tipo); + put(RILORE_TIPORA, tipora); + put(RILORE_CODICE, codice); + put(RILORE_ANNO, anno); + put(RILORE_MESE, mese); + put(RILORE_TPORA, tpora); err = TRectype::read(rilore); @@ -668,12 +668,12 @@ bool TRilevamento_ore::read(const char tipo, const char* codcosto, const char* c { int err = _iskeynotfound; - TLocalisamfile rilore(LF_CIRILROA); + TLocalisamfile rilore(LF_RILORE); - put(CIRILROA_TIPO, tipo); - put(CIRILROA_CODCOSTO, codcosto); - put(CIRILROA_CODCMS, codcms); - put(CIRILROA_CODFASE, codfase); + put(RILORE_TIPO, tipo); + put(RILORE_CODCOSTO, codcosto); + put(RILORE_CODCMS, codcms); + put(RILORE_CODFASE, codfase); err = TRectype::read(rilore); @@ -686,157 +686,157 @@ bool TRilevamento_ore::read(const char tipo, const char* codcosto, const char* c //TIPO: indica se si tratta di una riga di efault,

reventivo o onsuntivo const char TRilevamento_ore::tipo() const { - return get(CIRILROA_TIPO)[0]; + return get(RILORE_TIPO)[0]; } //TIPORA: indica se si tratta din una isorsa o di una ttrezzatura const char TRilevamento_ore::tipora() const { - return get(CIRILROA_TIPORA)[0]; + return get(RILORE_TIPORA)[0]; } //CODICE: restiruisce il codice della risorsa o dell'attrezzatura const TString& TRilevamento_ore::codice() const { - return get(CIRILROA_CODICE); + return get(RILORE_CODICE); } //ANNO: restituisce l'anno a cui fa riferimento la riga const int TRilevamento_ore::anno() const { - return get_int(CIRILROA_ANNO); + return get_int(RILORE_ANNO); } //MESE: restituisce il mese a cui fa riferimento la riga const TString& TRilevamento_ore::mese() const { - return get(CIRILROA_MESE); + return get(RILORE_MESE); } //TPORA: restituisce il tipo ora const TString& TRilevamento_ore::tpora() const { - return get(CIRILROA_TPORA); + return get(RILORE_TPORA); } //CODCOSTO: restituisce il codice del centro di costo const TString& TRilevamento_ore::codcosto() const { - return get(CIRILROA_CODCOSTO); + return get(RILORE_CODCOSTO); } //CODCMS: restituisce il codice commessa const TString& TRilevamento_ore::codcms() const { - return get(CIRILROA_CODCMS); + return get(RILORE_CODCMS); } //CODFASE: restituisce il codice della fase const TString& TRilevamento_ore::codfase() const { - return get(CIRILROA_CODFASE); + return get(RILORE_CODFASE); } //DADATA: restituisce la data di inizio validità della riga const TDate TRilevamento_ore::dadata() const { - return get_date(CIRILROA_DADATA); + return get_date(RILORE_DADATA); } //ADATA: restituisce la fata di fine validità della riga const TDate TRilevamento_ore::adata()const { - return get_date(CIRILROA_ADATA); + return get_date(RILORE_ADATA); } //QTAORE: restituisce il numero di ore const int TRilevamento_ore::qtaore() const { - return get_int(CIRILROA_QTAORE); + return get_int(RILORE_QTAORE); } //COSTO: restitusce il costo unitario const real TRilevamento_ore::costo() const { - return get_real(CIRILROA_COSTO); + return get_real(RILORE_COSTO); } //SET_TIPO: setta efault,

reventivo o onsuntivo void TRilevamento_ore::set_tipo(const char tipo) { - put(CIRILROA_TIPO, tipo); + put(RILORE_TIPO, tipo); } //SET_TIPORA: setta isorsa o ttrezzatura void TRilevamento_ore::set_tipora(const char tipora) { - put(CIRILROA_TIPORA, tipora); + put(RILORE_TIPORA, tipora); } //SET_CODICE: setta il codice void TRilevamento_ore::set_codice(const char* codice) { - put(CIRILROA_CODICE, codice); + put(RILORE_CODICE, codice); } //SET_ANNO: setta l'anno di riferimento void TRilevamento_ore::set_anno(const int anno) { - put(CIRILROA_ANNO, anno); + put(RILORE_ANNO, anno); } //SET_MESE: setta il mese di riferimento void TRilevamento_ore::set_mese(const char* mese) { - put(CIRILROA_MESE, mese); + put(RILORE_MESE, mese); } //SET_TPORA: setta il tipo ora void TRilevamento_ore::set_tpora(const char* tpora) { - put(CIRILROA_TPORA, tpora); + put(RILORE_TPORA, tpora); } //SET_CODCOSTO: setta il codice del centro di costo void TRilevamento_ore::set_codcosto(const char* codcosto) { - put(CIRILROA_CODCOSTO, codcosto); + put(RILORE_CODCOSTO, codcosto); } //SET_CODCMS: setta il codice commessa void TRilevamento_ore::set_codcms(const char* codcms) { - put(CIRILROA_CODCMS, codcms); + put(RILORE_CODCMS, codcms); } //SET_CODFASE: setta il codice della fase void TRilevamento_ore::set_codfase(const char* codfase) { - put(CIRILROA_CODFASE, codfase); + put(RILORE_CODFASE, codfase); } //SET_DADATA: setta la data di inizio validità della riga void TRilevamento_ore::set_dadata(const TDate& dadata) { - put(CIRILROA_DADATA, dadata); + put(RILORE_DADATA, dadata); } //SET_ADATA: setta la data di fine validità della riga void TRilevamento_ore::set_adata(const TDate& adata) { - put(CIRILROA_ADATA, adata); + put(RILORE_ADATA, adata); } //SET_QTAORE: setta il numero di ore rilevato void TRilevamento_ore::set_qtaore(const int qtaore) { - put(CIRILROA_QTAORE, qtaore); + put(RILORE_QTAORE, qtaore); } //SET_COSTO: metodo che setta il costo unitario (da listino) void TRilevamento_ore::set_costo(const real& costo) { - put(CIRILROA_COSTO, costo); + put(RILORE_COSTO, costo); } //Metodi costruttori @@ -851,19 +851,22 @@ TRilevamento_ore::TRilevamento_ore(const TRilevamento_ore& rilore) } TRilevamento_ore::TRilevamento_ore(const char tipo, const char tipora, const char* codice, const int anno, const char* mese, const char* tpora) - : TRectype(LF_CIRILROA) + : TRectype(LF_RILORE) { read(tipo, tipora, codice, anno, mese, tpora); } TRilevamento_ore::TRilevamento_ore(const char tipo, const char* codcosto, const char* codcms, const char* codfase) - : TRectype(LF_CIRILROA) + : TRectype(LF_RILORE) { read(tipo, codcosto, codcms, codfase); } TRilevamento_ore::TRilevamento_ore() - : TRectype(LF_CIRILROA) + : TRectype(LF_RILORE) { zero(); -} \ No newline at end of file +} + + + diff --git a/ci/cirilroa.h b/ci/cirilroa.h deleted file mode 100755 index 0fe8bfffe..000000000 --- a/ci/cirilroa.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __CIRILROA_H -#define __CIRILROA_H - -#define CIRILROA_TIPO "TIPO" -#define CIRILROA_TIPORA "TIPORA" -#define CIRILROA_CODICE "CODICE" -#define CIRILROA_ANNO "ANNO" -#define CIRILROA_MESE "MESE" -#define CIRILROA_TPORA "TPORA" -#define CIRILROA_CODCOSTO "CODCOSTO" -#define CIRILROA_CODCMS "CODCMS" -#define CIRILROA_CODFASE "CODFASE" -#define CIRILROA_DADATA "DADATA" -#define CIRILROA_ADATA "ADATA" -#define CIRILROA_QTAORE "QTAORE" -#define CIRILROA_COSTO "COSTO" - -#endif \ No newline at end of file diff --git a/ci/f125.dir b/ci/f125.dir index f496ce82a..265eb4640 100755 --- a/ci/f125.dir +++ b/ci/f125.dir @@ -1,3 +1,3 @@ 125 0 -$cirilroa|0|0|102|0|Rilevamento Ore||| +$rilore|0|0|102|0|Rilevamento Ore||| diff --git a/ci/rilore.h b/ci/rilore.h new file mode 100755 index 000000000..b9daf5bb1 --- /dev/null +++ b/ci/rilore.h @@ -0,0 +1,18 @@ +#ifndef __RILORE_H +#define __RILORE_H + +#define RILORE_TIPO "TIPO" +#define RILORE_TIPORA "TIPORA" +#define RILORE_CODICE "CODICE" +#define RILORE_ANNO "ANNO" +#define RILORE_MESE "MESE" +#define RILORE_TPORA "TPORA" +#define RILORE_CODCOSTO "CODCOSTO" +#define RILORE_CODCMS "CODCMS" +#define RILORE_CODFASE "CODFASE" +#define RILORE_DADATA "DADATA" +#define RILORE_ADATA "ADATA" +#define RILORE_QTAORE "QTAORE" +#define RILORE_COSTO "COSTO" + +#endif \ No newline at end of file