From bf30ca345153b98dd5aeaaa1b8887795831b700d Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 14 Jun 2005 17:40:22 +0000 Subject: [PATCH] Patch level :2.2 nopatch Files correlati : Ricompilazione Demo : [ ] Commento :stampa movimenti in avanzamento git-svn-id: svn://10.65.10.50/trunk@13196 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca3100.cpp | 103 +++++++++++++++--- ca/ca3100.uml | 286 +++++++++++++++++++++++++++++++++++++++++++++++++ ca/ca3100a.h | 1 + ca/ca3100a.rep | 28 +++-- ca/ca3100b.rep | 204 +++++++++++++++++++++++++++++++++++ 5 files changed, 602 insertions(+), 20 deletions(-) create mode 100755 ca/ca3100.uml create mode 100755 ca/ca3100b.rep diff --git a/ca/ca3100.cpp b/ca/ca3100.cpp index 0479f0429..507034399 100755 --- a/ca/ca3100.cpp +++ b/ca/ca3100.cpp @@ -15,7 +15,9 @@ class TPrint_movimenti_ca_mask : public TAutomask { protected: - bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;} + bool on_field_event(TOperable_field& o, TField_event e, long jolly); + const TString& get_compatible_library() const; + bool test_compatible_report(); void create_page2(); int create_page2_sheet(int lf, int& y, short& dlg, bool required); public: @@ -23,6 +25,72 @@ public: virtual ~TPrint_movimenti_ca_mask() {} }; +const TString& TPrint_movimenti_ca_mask::get_compatible_library() const +{ + TString& lib = get_tmp_string(); + lib = "ca3100"; + const int stp = get_int(F_TIPOSTAMPA); + lib << (stp == 1 ? 'a' : 'b'); // tipo di report da usare + return lib; +} + +bool TPrint_movimenti_ca_mask::test_compatible_report() +{ + TFilename lib = get_compatible_library(); + const TString& name = get(F_REPORT); + bool ok = name.not_empty(); + if (ok) + { + TReport rep; + ok = rep.load(name); + if (ok) + { + TToken_string& libraries = rep.get_libraries(); + ok = libraries.get_pos(lib) >= 0; + } + } + if (!ok) + { + set(F_REPORT, lib); + lib.ext("rep"); + ok = lib.custom_path(); + } + return ok; +} + +bool TPrint_movimenti_ca_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + switch (o.dlg()) + { + case F_TIPOSTAMPA: + if (e == fe_init || e == fe_modify) + { + test_compatible_report(); //in base al tipo stampa setta i report compatibili + } + break; + case F_REPORT: + if (e == fe_button) + { + const TString8 lib = get_compatible_library(); + TFilename path = o.get(); + if (select_custom_file(path, "rep", lib)) + { + path = path.name(); + path.ext(""); + o.set(path); + } + } else + if (e == fe_close) + { + if (!test_compatible_report()) + return error_box("Impossibile trovare un report compatibile"); + } + break; + default: break; + } + return true; +} + int TPrint_movimenti_ca_mask::create_page2_sheet(int lf, int& y, short& dlg, bool required) { TSheet_field& sf = sfield(F_RIGHE); @@ -129,7 +197,7 @@ void TPrint_movimenti_ca_mask::create_page2() TPrint_movimenti_ca_mask::TPrint_movimenti_ca_mask() - :TAutomask("ca3100a") + :TAutomask("ca3100") { TConfig_anal cfg; const bool use_pdcc = cfg.get_bool("UsePdcc"); @@ -146,9 +214,25 @@ TPrint_movimenti_ca_mask::TPrint_movimenti_ca_mask() //////////////////////////////////////////////////////// class TPrint_movimenti_ca_rep : public TAnal_report { + int _anno; +protected: + virtual bool get_usr_val(const TString& name, TVariant& var) const; + +public: + void set_anno(int a) {_anno = a;} }; +bool TPrint_movimenti_ca_rep::get_usr_val(const TString& name, TVariant& var) const +{ + if (name == "#ESERCIZIO") + { + var.set(_anno); + return true; + } + return TAnal_report::get_usr_val(name, var); +} + //////////////////////////////////////////////////////// // APPLICAZIONE //////////////////////////////////////////////////////// @@ -189,21 +273,16 @@ void TPrint_movimenti_ca::main_loop() //report e book TReport_book book; //book dei report - TString path = _mask->get(F_REPORT); - if (path.empty()) - path = "ca3100a"; + TPrint_movimenti_ca_rep rep; - rep.load(path); + rep.load(_mask->get(F_REPORT)); + int anno = _mask->get_int(F_ANNO); + rep.set_anno(anno); FOR_EACH_SHEET_ROW(sheet, r, row) { - TString query; - query << "USE MOVANA\nJOIN RMOVANA INTO NUMREG==NUMREG"; - rep.set_recordset(query); - rep.mask2report(*_mask); - book.add(rep); - + book.add(rep); } book.print_or_preview(); //stampa il book dei report diff --git a/ca/ca3100.uml b/ca/ca3100.uml new file mode 100755 index 000000000..c1882293f --- /dev/null +++ b/ca/ca3100.uml @@ -0,0 +1,286 @@ +#include "ca3100a.h" + +TOOLBAR "" 0 -2 0 2 + +BUTTON DLG_PRINT 18 2 +BEGIN + PROMPT -13 -11 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 18 2 +BEGIN + PROMPT -33 -11 "" +END + +ENDPAGE + +PAGE "Parametri stampa" -1 -1 78 20 + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "FRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 15 1 "" + FLAGS "D" +END + +DATE F_DATASTAMPA +BEGIN + PROMPT 1 2 "Data di stampa " + FLAGS "A" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 49 2 "Esercizio " + USE ESC + INPUT CODTAB F_ANNO + DISPLAY "Codice Esercizio" CODTAB + DISPLAY "Data inizio esercizio" D0 + DISPLAY "Data fine esercizio " D1 + OUTPUT F_ANNO CODTAB + CHECKTYPE NORMAL + FLAGS "RZ" + ADD NONE +END + +BOOLEAN F_COMPETENZA +BEGIN + PROMPT 1 3 "Stampa i soli movimenti con competenza nell'esercizio precedente" +END + +RADIOBUTTON F_TIPOSTAMPA 12 +BEGIN + PROMPT 1 4 "Stampa per:" + ITEM "2|data" MESSAGE CLEAR,2@|ENABLE,3@ + ITEM "1|numero" MESSAGE CLEAR,3@|ENABLE,2@ +END + +DATE F_DATAINI +BEGIN + PROMPT 16 5 "Stampa mov. dalla data " + GROUP 3 +END + +DATE F_DATAFIN +BEGIN + PROMPT 52 5 "alla data " + GROUP 3 +END + +NUMBER F_NUMEROINI 7 +BEGIN + PROMPT 16 6 "Stampa mov. dal numero " + USE LF_MOV KEY 1 + INPUT NUMREG F_NUMEROINI + DISPLAY "Numero@7" NUMREG + DISPLAY "Data@10" DATAREG + DISPLAY "Causale" CODCAUS + DISPLAY "Documento" NUMDOC + DISPLAY "Descrizione@50" DESCR + OUTPUT F_NUMEROINI NUMREG + GROUP 2 +END + +NUMBER F_NUMEROFIN 7 +BEGIN + PROMPT 52 6 "al numero " + COPY USE F_NUMEROINI + INPUT NUMREG F_NUMEROFIN + COPY DISPLAY F_NUMEROINI + FLAGS "R" + NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)} + WARNING "Limite superiore errato" + GROUP 2 +END + +STRING F_CAUSALEINI 3 +BEGIN + PROMPT 1 8 "Stampa dalla causale " + USE LF_CAUSALI KEY 1 + INPUT CODCAUS F_CAUSALEINI + DISPLAY "Codice causale" CODCAUS + DISPLAY "Descrizione@50" DESCR + OUTPUT F_CAUSALEINI CODCAUS + FLAGS "U" + VALIDATE ZEROFILL_FUNC 3 +END + +STRING F_CAUSALEFIN 3 +BEGIN + PROMPT 40 8 "alla causale " + COPY USE F_CAUSALEINI + INPUT CODCAUS F_CAUSALEFIN + DISPLAY "Codice causale" CODCAUS + DISPLAY "Descrizione@50" DESCR + OUTPUT F_CAUSALEFIN CODCAUS + FLAGS "U" + VALIDATE ZEROFILL_FUNC 3 +END + +LIST F_TIPOMOV 23 +BEGIN + PROMPT 1 9 "Stampa movimenti di tipo " + ITEM " |Qualsiasi" + ITEM "N|Normale" + ITEM "P|Preventivo" + ITEM "V|Variazione preventivo" + ITEM "T|Temporaneo" +END + +STRING F_REPORT 256 62 +BEGIN + PROMPT 1 10 "Report " + FLAGS "B" + CHECKTYPE REQUIRED +END + +SPREADSHEET F_RIGHE -1 -2 +BEGIN + PROMPT 1 12 "Selezione su CdC / Commesse / Fasi" + ITEM "Cdc1" + ITEM "Cdc2" + ITEM "Cdc3" + ITEM "Cdc4" + ITEM "Cdc5" + ITEM "Cdc6" + ITEM "Cdc7" + ITEM "Cdc8" + ITEM "Cdc9" + ITEM "Cdc10" + ITEM "Cdc11" + ITEM "Cdc12" +END + +ENDPAGE + +ENDMASK + +PAGE "Riga" -1 -1 78 19 + +STRING S_CDC1 20 +BEGIN + PROMPT 1 2 "Cdc1" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC2 20 +BEGIN + PROMPT 21 2 "Cdc2" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC3 20 +BEGIN + PROMPT 41 2 "Cdc3" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC4 20 +BEGIN + PROMPT 61 2 "Cdc4" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC5 20 +BEGIN + PROMPT 1 3 "Cdc5" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC6 20 +BEGIN + PROMPT 21 3 "Cdc6" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC7 20 +BEGIN + PROMPT 41 3 "Cdc7" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC8 20 +BEGIN + PROMPT 61 3 "Cdc8" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC9 20 +BEGIN + PROMPT 1 4 "Cdc9" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC10 20 +BEGIN + PROMPT 21 4 "Cdc10" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC11 20 +BEGIN + PROMPT 41 4 "Cdc11" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +STRING S_CDC12 20 +BEGIN + PROMPT 61 4 "Cdc12" + FLAGS "B" + CHECKTYPE NORMAL + GROUP 1 +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/ca/ca3100a.h b/ca/ca3100a.h index 0740cb1ce..15a449bf3 100755 --- a/ca/ca3100a.h +++ b/ca/ca3100a.h @@ -15,6 +15,7 @@ #define F_CAUSALEINI 211 #define F_CAUSALEFIN 212 #define F_REPORT 213 +#define F_TIPOMOV 214 //campi generati dal pdc #define F_CDC1_INI 306 diff --git a/ca/ca3100a.rep b/ca/ca3100a.rep index ac29a27fd..83ed2aab9 100755 --- a/ca/ca3100a.rep +++ b/ca/ca3100a.rep @@ -1,6 +1,6 @@ - - Stampa movimenti contabilta' analitica + + Movimenti CA per numero registrazione
@@ -27,8 +27,8 @@ - - + +
@@ -71,11 +71,23 @@ MESSAGE RESET,F1.102 TIPOMOV - + TOTDOC + "MOVANA.SEZIONE" @ +"A" = +IF +0 #THIS ! +THEN + - - SEZIONE + + TOTDOC + "MOVANA.SEZIONE" @ +"D" = +IF +0 #THIS ! +THEN +
@@ -88,7 +100,7 @@ MESSAGE RESET,F1.102 - +
USE RMOVANA diff --git a/ca/ca3100b.rep b/ca/ca3100b.rep new file mode 100755 index 000000000..8aa18cf6b --- /dev/null +++ b/ca/ca3100b.rep @@ -0,0 +1,204 @@ + + + Movimenti CA per data + +
+ + #ESERCIZIO @ +0 E; +IF + 121 122 SCAMBIA_CAMPI +THEN +; + + + #SYSTEM.RAGSOC + + + #SYSTEM.DATE + + + #REPORT.PAGE + + + + + + + + + + + + + + + +
+
+ MESSAGE RESET,F1.101 +MESSAGE RESET,F1.102 + + + +
+
+
+ #ESERCIZIO @ +0 E; +IF + 121 122 SCAMBIA_CAMPI +THEN +; + + NUMREG + + + DATADOC + + + NUMREGCG + + + NUMDOC + + + TIPODOC + + + DESCR + + + CODCAUS + + + TIPOMOV + + + TOTDOC + "MOVANA.SEZIONE" @ +"A" = +IF +0 #THIS ! +THEN + + + + TOTDOC + "MOVANA.SEZIONE" @ +"D" = +IF +0 #THIS ! +THEN + + + + DATAREG + + + DATACOMP + +
+
+ + + + + + + + + + +
+
+ USE RMOVANA +FROM NUMREG=#PARENT.NUMREG +TO NUMREG=#PARENT.NUMREG + + + NUMRIG + + + CODCCOSTO + CA_FORMAT_COSTO + + + CODCMS + CA_FORMAT_COMMESSA + + + CODFASE + CA_FORMAT_FASE + + + CODCONTO + CA_FORMAT_CONTO + + + DESCR + + + IMPORTO + "RMOVANA.SEZIONE" @ +"A" = +IF +0 #THIS ! +THEN + + MESSAGE ADD,F1.101 + + + IMPORTO + "RMOVANA.SEZIONE" @ +"D" = +IF +0 #THIS ! +THEN + + MESSAGE ADD,F1.102 + +
+
+
+
+ + + + + + + + + + +
+ USE MOVANA + + : SCAMBIA_CAMPI ( F1 F2 -- ) + VARIABLE _X1 \ coordinate del campo F1 + VARIABLE _Y1 + VARIABLE _X2 \ coordinate del campo F2 + VARIABLE _Y2 + + 2DUP \ duplica i campi F1 F2 sullo stack + GET_POS \ prende le coordinate del campo F2 + _Y2 ! \ e le mette in _Y2 e _X2 + _X2 ! + GET_POS \ prende le coordinate del campo F1 + _Y1 ! \ e le mette in _Y1 e _X1 + _X1 ! + + _X1 @ \ legge le coordinate di F1 + _Y1 @ + ROT + SET_POS \ mette le coord in F2 + + _X2 @ + _Y2 @ + ROT + SET_POS +; + + + \ No newline at end of file