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
This commit is contained in:
luca 2005-06-14 17:40:22 +00:00
parent cedc40849a
commit bf30ca3451
5 changed files with 602 additions and 20 deletions

View File

@ -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

286
ca/ca3100.uml Executable file
View File

@ -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

View File

@ -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

View File

@ -1,6 +1,6 @@
<report name="ca3100a" lpi="8">
<description>Stampa movimenti contabilta' analitica</description>
<report libraries="ca3100a" name="ca3100a" lpi="8">
<description>Movimenti CA per numero registrazione</description>
<font face="Courier New" size="8" />
<section type="Head">
<font italic="1" face="Courier New" size="8" />
@ -27,8 +27,8 @@
<field x="73" y="2.5" type="Testo" align="center" width="11" pattern="1" text="Descrizione" />
<field x="99.5" y="2.5" type="Testo" align="center" width="8" pattern="1" text="Cod.Cau." />
<field x="110.5" y="2.5" type="Testo" align="center" width="7" pattern="1" text="Tp.Mov." />
<field x="120" y="2.5" type="Testo" align="center" width="15" pattern="1" text="Tot. documento" />
<field x="136" y="2.5" type="Testo" align="center" width="4" pattern="1" text="Sez." />
<field x="125" y="2.5" type="Testo" align="center" width="15" pattern="1" text="Totale Dare" />
<field x="140" y="2.5" type="Testo" align="center" width="15" pattern="1" text="Totale Avere" />
<field border="2" x="1" y="4" type="Linea" width="154" height="0" pattern="1" />
</section>
<section type="Head" level="1" height="3">
@ -71,11 +71,23 @@ MESSAGE RESET,F1.102</prescript>
<field x="112" y="1" type="Stringa" width="1" pattern="1">
<source>TIPOMOV</source>
</field>
<field x="120" y="1" type="Valuta" align="right" width="15" pattern="1" text="###.###.###,@@">
<field x="125" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>TOTDOC</source>
<prescript description="B1.0 PRESCRIPT">"MOVANA.SEZIONE" @
"A" =
IF
0 #THIS !
THEN
</prescript>
</field>
<field x="137" y="1" type="Stringa" width="1" pattern="1">
<source>SEZIONE</source>
<field x="140" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>TOTDOC</source>
<prescript description="B1.0 PRESCRIPT">"MOVANA.SEZIONE" @
"D" =
IF
0 #THIS !
THEN
</prescript>
</field>
</section>
<section type="Head" level="11">
@ -88,7 +100,7 @@ MESSAGE RESET,F1.102</prescript>
<field x="99.21" type="Testo" width="25" pattern="1" text="Descrizione" />
<field x="128" type="Testo" align="center" width="15" pattern="1" text="Dare" />
<field x="143" type="Testo" align="center" width="15" pattern="1" text="Avere" />
<field border="1" x="8" y="1" type="Linea" width="154" height="0" pattern="1" />
<field border="1" x="8" y="1" type="Linea" width="147" height="0" pattern="1" />
</section>
<section type="Body" level="11">
<sql>USE RMOVANA

204
ca/ca3100b.rep Executable file
View File

@ -0,0 +1,204 @@
<report libraries="ca3100b" name="ca3100b" lpi="8">
<description>Movimenti CA per data</description>
<font face="Courier New" size="8" />
<section type="Head">
<font italic="1" face="Courier New" size="8" />
<prescript description="H0 PRESCRIPT">#ESERCIZIO @
0 &#3E;
IF
121 122 SCAMBIA_CAMPI
THEN
;</prescript>
<field x="1" type="Stringa" width="50" pattern="1">
<font italic="1" face="Courier New" bold="1" size="10" />
<source>#SYSTEM.RAGSOC</source>
</field>
<field x="100" type="Data" width="10" pattern="1">
<source>#SYSTEM.DATE</source>
</field>
<field x="152" type="Numero" align="right" width="3" pattern="1">
<source>#REPORT.PAGE</source>
</field>
<field border="2" x="1" y="2.5" type="Linea" width="154" height="0" pattern="1" />
<field x="13" y="3" type="Testo" align="center" width="7" pattern="1" text="N.Reg." />
<field x="33.5" y="3" type="Testo" align="center" width="10" pattern="1" text="Data Doc." />
<field x="45.5" y="3" type="Testo" align="center" width="8" pattern="1" text="N.Reg.CG" />
<field x="55.5" y="3" type="Testo" align="center" width="6" pattern="1" text="N.Doc." />
<field x="64" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Doc." />
<field x="73" y="3" type="Testo" align="center" width="11" pattern="1" text="Descrizione" />
<field x="99.5" y="3" type="Testo" align="center" width="8" pattern="1" text="Cod.Cau." />
<field x="110.5" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Mov." />
<field x="125" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Dare" />
<field x="140" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Avere" />
<field border="2" x="1" y="4" type="Linea" width="154" height="0" pattern="1" />
<field x="1" y="3" type="Testo" align="center" width="10" id="121" pattern="1" text="Data Reg." />
<field x="22" y="3" type="Testo" width="10" id="122" pattern="1" text="Data Comp." />
</section>
<section type="Head" level="1" height="3">
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101
MESSAGE RESET,F1.102</prescript>
<field border="1" radius="100" x="1" type="Testo" valign="center" align="center" shade_offset="25" width="154" height="2.5" text="MOVIMENTI DI CONTABILITA' ANALITICA">
<font face="Courier New" bold="1" size="16" />
</field>
</section>
<section type="Body" />
<section type="Body" level="1">
<prescript description="B1 PRESCRIPT">#ESERCIZIO @
0 &#3E;
IF
121 122 SCAMBIA_CAMPI
THEN
;</prescript>
<field x="12" y="1" type="Numero" align="right" width="7" pattern="1">
<source>NUMREG</source>
</field>
<field x="33" y="1" type="Data" width="10" pattern="1">
<source>DATADOC</source>
</field>
<field x="46" y="1" type="Numero" align="right" width="7" pattern="1" hide_zero="1">
<source>NUMREGCG</source>
</field>
<field x="55.5" y="1" type="Stringa" width="7" pattern="1">
<source>NUMDOC</source>
</field>
<field x="64" y="1" type="Stringa" width="4" pattern="1">
<source>TIPODOC</source>
</field>
<field x="73" y="1" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
<source>DESCR</source>
</field>
<field x="101" y="1" type="Stringa" width="3" pattern="1">
<source>CODCAUS</source>
</field>
<field x="112" y="1" type="Stringa" width="1" pattern="1">
<source>TIPOMOV</source>
</field>
<field x="125" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>TOTDOC</source>
<prescript description="B1.0 PRESCRIPT">"MOVANA.SEZIONE" @
"A" =
IF
0 #THIS !
THEN
</prescript>
</field>
<field x="140" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>TOTDOC</source>
<prescript description="B1.0 PRESCRIPT">"MOVANA.SEZIONE" @
"D" =
IF
0 #THIS !
THEN
</prescript>
</field>
<field x="1" y="1" type="Data" width="10" id="121" pattern="1">
<source>DATAREG</source>
</field>
<field x="21" y="1" type="Data" align="right" width="10" id="122" pattern="1">
<source>DATACOMP</source>
</field>
</section>
<section type="Head" level="11">
<font italic="1" face="Courier New" size="8" />
<field x="8.21" type="Testo" align="center" width="4" pattern="1" text="Riga" />
<field x="13.21" type="Testo" width="23" pattern="1" text="Centro di Costo" />
<field x="37.21" type="Testo" width="23" pattern="1" text="Commessa" />
<field x="61.21" type="Testo" width="13" pattern="1" text="Fase" />
<field x="75.21" type="Testo" width="23" pattern="1" text="Conto" />
<field x="99.21" type="Testo" width="25" pattern="1" text="Descrizione" />
<field x="128" type="Testo" align="center" width="15" pattern="1" text="Dare" />
<field x="143" type="Testo" align="center" width="15" pattern="1" text="Avere" />
<field border="1" x="8" y="1" type="Linea" width="147" height="0" pattern="1" />
</section>
<section type="Body" level="11">
<sql>USE RMOVANA
FROM NUMREG=#PARENT.NUMREG
TO NUMREG=#PARENT.NUMREG
</sql>
<field x="9" type="Numero" align="right" width="3" pattern="1">
<source>NUMRIG</source>
</field>
<field x="13" type="Stringa" width="23" pattern="1">
<source>CODCCOSTO</source>
<prescript description="B11.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
</field>
<field x="37" type="Stringa" width="23" pattern="1">
<source>CODCMS</source>
<prescript description="B11.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
</field>
<field x="61" type="Stringa" width="13" pattern="1">
<source>CODFASE</source>
<prescript description="B11.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
</field>
<field x="75" type="Stringa" width="23" pattern="1">
<source>CODCONTO</source>
<prescript description="B11.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
</field>
<field x="99" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
<source>DESCR</source>
</field>
<field x="125" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTO</source>
<prescript description="B11.101 PRESCRIPT">"RMOVANA.SEZIONE" @
"A" =
IF
0 #THIS !
THEN
</prescript>
<postscript description="B11.101 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
</field>
<field x="140" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTO</source>
<prescript description="B11.102 PRESCRIPT">"RMOVANA.SEZIONE" @
"D" =
IF
0 #THIS !
THEN
</prescript>
<postscript description="B11.102 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
</field>
</section>
<section type="Foot" level="11" />
<section type="Foot" height="1" />
<section type="Foot" level="1">
<field border="2" x="1" y="1" type="Linea" width="154" height="0" pattern="1" />
<field x="96" y="1.5" type="Testo" width="30" pattern="1" text="Totale generale per sezione:">
<font face="Courier New" bold="1" size="8" />
</field>
<field x="125" y="1.5" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" />
</field>
<field x="140" y="1.5" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" />
</field>
</section>
<sql>USE MOVANA
</sql>
<prescript description="PRESCRIPT">: 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
;
</prescript>
</report>