From 78f81c4d99870903ed19543afea7657a5145e34b Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@c028cbd2-c16b-5b4b-a496-9718f37d4682> Date: Wed, 12 Jan 2011 16:05:40 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'R_10_00'. git-svn-id: svn://10.65.10.50/branches/R_10_00@21423 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ct/ct0.cpp | 23 +++++++ ct/ct0.h | 1 + ct/ct0100.cpp | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ ct/ct0100M1.rep | 157 ++++++++++++++++++++++++++++++++++++++++++++ ct/ct0100a.h | 11 ++++ ct/ct0100a.uml | 152 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 513 insertions(+) create mode 100755 ct/ct0.cpp create mode 100755 ct/ct0.h create mode 100755 ct/ct0100.cpp create mode 100755 ct/ct0100M1.rep create mode 100755 ct/ct0100a.h create mode 100755 ct/ct0100a.uml diff --git a/ct/ct0.cpp b/ct/ct0.cpp new file mode 100755 index 000000000..acaf44cdb --- /dev/null +++ b/ct/ct0.cpp @@ -0,0 +1,23 @@ +#include +#include + +#include "ct0.h" + +#define usage "Error - usage : %s -{0}" + +int main(int argc,char** argv) + +{ + int rt = -1 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = ct0100(argc, argv) ; break; //gestore stampe + break; + default: + error_box(usage, argv[0]) ; break; + } + return rt; +} \ No newline at end of file diff --git a/ct/ct0.h b/ct/ct0.h new file mode 100755 index 000000000..2c3e4f066 --- /dev/null +++ b/ct/ct0.h @@ -0,0 +1 @@ +int ct0100(int argc, char* argv[]); \ No newline at end of file diff --git a/ct/ct0100.cpp b/ct/ct0100.cpp new file mode 100755 index 000000000..04ac6c9b2 --- /dev/null +++ b/ct/ct0100.cpp @@ -0,0 +1,169 @@ +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "ct0100a.h" + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TPrint_CUP_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TPrint_CUP_mask(); +}; + +TPrint_CUP_mask::TPrint_CUP_mask() : TAutomask("ct0100a") +{ +} + +bool TPrint_CUP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + switch(o.dlg()) + { + case DLG_PRINT: + if (e == fe_button) + { + main_app().print(); + return false; + } + break; + case DLG_PREVIEW: + if (e == fe_button) + { + main_app().preview(); + return false; + } + break; + default: + break; + } + return true; +} + + +//////////////////////////////////////////////////////// +// REPORT +//////////////////////////////////////////////////////// +//i report in questione (sono 8) hanno la query inside.. +//..e non necessitano di altro che i FIELD #... dei campi della maschera per avere i valori.. +//..delle set_var interne +class TPrint_CUP_report : public TReport +{ +protected: + virtual bool use_mask() { return false; } //questo ci vuole perchè la maschera ha un nome != dai report +public: + TPrint_CUP_report() {} +}; + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// +class TPrint_CUP : public TSkeleton_application +{ + TPrint_CUP_mask* _mask; + +protected: + virtual bool create(); + virtual void print(); + virtual void preview(); + virtual void print_or_preview(const bool stampa); + +public: + virtual void main_loop(); + +}; + +//fantastico metodo per gestire stampa o anteprima +void TPrint_CUP::print_or_preview(const bool stampa) +{ + if (_mask->check_fields()) + { + //crea il nome del report da usare in base alle scelte di stampa (radiobuttons) + //schema dei reports classe ct0100xx: + //M1 = movimenti per cup-cig M2 = movimenti per clifo + //D1 = documenti // D2 = documenti // + //E1 = effetti // E2 = effetti // + //R1 = rilevazione // R2 = rilevazione // + const TString& tipo_archivio = _mask->get(F_ARCHIVI); + const TString& tipo_ordinamento = _mask->get(F_ORDINAMENTO); + TString rep_name = "ct0100"; + rep_name << tipo_archivio << tipo_ordinamento; + + TPrint_CUP_report rep; + rep.load(rep_name); + + rep.mask2report(*_mask); //setta i valori della maschera sul report + + //solo per la ricerca in RMOV + if (tipo_archivio == "M") + { + long from_nreg = 0L; + long to_nreg = 0L; + TLocalisamfile mov(LF_MOV); + mov.setkey(2); + //se viene settata una data -> la usa per restringere il campo di ricerca dei numreg, visto che non esiste una.. + //..chiave per data su RMOV + const TDate dataini = _mask->get_date(F_DADATA); + if (dataini.ok()) + { + mov.put(MOV_DATAREG, dataini); + if (mov.read(_isgteq) == NOERR) + from_nreg = mov.get_long(MOV_NUMREG); + } + const TDate datafine = _mask->get_date(F_ADATA); + if (datafine.ok()) + { + mov.put(MOV_DATAREG, datafine); + if (mov.read(_isgreat) == NOERR) + to_nreg = mov.get_long(MOV_NUMREG); + } + rep.recordset()->set_var("#DANUMREG", from_nreg); + rep.recordset()->set_var("#ANUMREG", to_nreg); + } + + + TReport_book book; + book.add(rep); + book.print_or_preview(); + } +} + +void TPrint_CUP::print() +{ + print_or_preview(true); +} + +void TPrint_CUP::preview() +{ + print_or_preview(false); +} + +void TPrint_CUP::main_loop() +{ + _mask = new TPrint_CUP_mask; + _mask->run(); + delete _mask; + _mask = NULL; +} + +bool TPrint_CUP::create() +{ + return TSkeleton_application::create(); +} + +int ct0100(int argc, char* argv[]) +{ + TPrint_CUP a; + a.run(argc, argv, TR("Stampa tracciabilita' CUP")); + return 0; +} \ No newline at end of file diff --git a/ct/ct0100M1.rep b/ct/ct0100M1.rep new file mode 100755 index 000000000..6daabb213 --- /dev/null +++ b/ct/ct0100M1.rep @@ -0,0 +1,157 @@ + + + Movimenti per CUP-CIG + +
+ + + + + + + + + + + + + + TIPOC + +
  • +
  • + + +
  • +
    + MESSAGE RESET,F1 + + + + + + + + + TIPOC + MESSAGE COPY,F1.101 + +
  • +
  • + + +
  • +
    + CUP+CIG + + MESSAGE RESET,F2 + + + + CUP + MESSAGE COPY,F2.103 + + + CIG + MESSAGE COPY,F2.104 + +
    +
    + TIPOCF+CODCF + + MESSAGE RESET,F3 + + SOTTOCONTO + + + MESSAGE ISAMREAD,20,TIPOCF=#H1.101!CODCF=#102,RAGSOC + MESSAGE COPY,F3.103 + +
    +
    +
    + + NUMREG + + + NUMRIG + + + DATAREG + + + + IMPORTO + MESSAGE ADD,F3.105 + + + IMPORTO + MESSAGE ADD,F3.106 + +
    +
    + + + + #REPORT.PAGE + +
    +
    + + + + + +
  • +
  • + + + + MESSAGE ADD,F1.105 + + + MESSAGE ADD,F1.106 + +
  • +
    + + + + + + + + + + + MESSAGE ADD,F1.105 + + + MESSAGE ADD,F1.106 + +
    +
    + + + + + + + + MESSAGE ADD,F2.105 + + + MESSAGE ADD,F2.106 + +
    + USE RMOV +SELECT ((CUP!="")(BETWEEN(CUP,#CUP,#CUP)))((CIG!="")(BETWEEN(CIG,#CIG,#CIG)))(TIPOC=#TIPOCF)(BETWEEN(SOTTOCONTO,#CODCF,#CODCF))(BETWEEN(DATAREG,#DADATA,#ADATA)) +FROM NUMREG=#DANUMREG +TO NUMREG=#ANUMREG + \ No newline at end of file diff --git a/ct/ct0100a.h b/ct/ct0100a.h new file mode 100755 index 000000000..e81dba541 --- /dev/null +++ b/ct/ct0100a.h @@ -0,0 +1,11 @@ +#define F_ARCHIVI 201 +#define F_ORDINAMENTO 202 +#define F_CUP 203 +#define F_CUP_DESCR 204 +#define F_CIG 205 +#define F_CIG_DESCR 206 +#define F_TIPOCF 207 +#define F_CODCF 208 +#define F_RAGSOC 209 +#define F_DADATA 210 +#define F_ADATA 211 diff --git a/ct/ct0100a.uml b/ct/ct0100a.uml new file mode 100755 index 000000000..16dc250c2 --- /dev/null +++ b/ct/ct0100a.uml @@ -0,0 +1,152 @@ +#include "ct0100a.h" + +TOOLBAR "Topbar" 0 0 0 2 + +BUTTON DLG_PREVIEW 2 2 +BEGIN + PROMPT 1 1 "~Anteprima" + PICTURE TOOL_PREVIEW +END + +#include + +ENDPAGE + +PAGE "Tracciabilita'" 0 0 0 2 + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 0 1 "@bSelezione stampa" +END + +RADIOBUTTON F_ARCHIVI 32 +BEGIN + PROMPT 1 2 "Tipo di archivi " + ITEM "M|Movimenti contabili" + ITEM "D|Documenti" + ITEM "E|Effetti" + ITEM "R|Rilevazione ore" +END + +RADIOBUTTON F_ORDINAMENTO 32 +BEGIN + PROMPT 36 2 "Ordinamento per:" + ITEM "1|CUP - CIG" + ITEM "2|Cliente/Fornitore" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 8 "@bFiltri CUP-CIG" +END + +STRING F_CUP 15 +BEGIN + PROMPT 1 9 "CUP " + USE %CUP + INPUT CODTAB F_CUP + DISPLAY "Codice@15" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CUP CODTAB + OUTPUT F_CUP_DESCR S0 + FIELD #CUP + CHECKTYPE NORMAL +END + +STRING F_CUP_DESCR 50 +BEGIN + PROMPT 25 9 "" + USE %CUP KEY 2 + INPUT S0 F_CUP_DESCR + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice@15" CODTAB + COPY OUTPUT F_CUP + CHECKTYPE NORMAL +END + +STRING F_CIG 10 +BEGIN + PROMPT 1 10 "CIG " + USE %CIG + INPUT CODTAB F_CIG + DISPLAY "Codice@10" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CIG CODTAB + OUTPUT F_CIG_DESCR S0 + FIELD #CIG + CHECKTYPE NORMAL +END + +STRING F_CIG_DESCR 50 +BEGIN + PROMPT 25 10 "" + USE %CIG KEY 2 + INPUT S0 F_CIG_DESCR + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice@10" CODTAB + COPY OUTPUT F_CIG + CHECKTYPE NORMAL +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 12 "@bFiltri Cliente/Fornitore" +END + +LIST F_TIPOCF 1 11 +BEGIN + PROMPT 1 13 "Tipo " + ITEM "C|Clienti" + ITEM "F|Fornitori" + FIELD #TIPOCF +END + +NUMBER F_CODCF 6 +BEGIN + PROMPT 20 13 "Codice " + USE LF_CLIFO + INPUT TIPOCF F_TIPOCF SELECT + INPUT CODCF F_CODCF + DISPLAY "Codice@6R" CODCF + DISPLAY "Sospeso@C" SOSPESO + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Codice fiscale@16" COFI + DISPLAY "Partita IVA@11" PAIV + OUTPUT F_TIPOCF TIPOCF + OUTPUT F_CODCF CODCF + OUTPUT F_RAGSOC RAGSOC + FLAGS "GR" + FIELD #CODCF + CHECKTYPE NORMAL +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 14 "Cognome/Rag. Soc. " + USE LF_CLIFO KEY 2 + INPUT TIPOCF F_TIPOCF SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Sospeso" SOSPESO + DISPLAY "Codice@R" CODCF + DISPLAY "Codice fiscale@16" COFI + DISPLAY "Partita IVA@11" PAIV + COPY OUTPUT F_CODCF + CHECKTYPE NORMAL +END + +DATE F_DADATA +BEGIN + PROMPT 1 17 "Dalla data " + FIELD #DADATA +END + +DATE F_ADATA +BEGIN + PROMPT 25 17 "Alla data " + FIELD #ADATA +END + +ENDPAGE + +ENDMASK \ No newline at end of file