Patch level :2.2 140

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :stampa mastrini in corso d'opera...adesso stampa un primo tentativo di saldo.
Corretta gestione movimenti (RMOVANA_DATACOMP sostituisce RMOVANA_DATAREG)


git-svn-id: svn://10.65.10.50/trunk@13219 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2005-06-24 13:09:46 +00:00
parent 39302b50e0
commit d4aefd10a0
6 changed files with 129 additions and 82 deletions

View File

@ -373,7 +373,7 @@ bool TMovanal_msk::row2rec(int r, TRectype& rec) const
TToken_string& row = sheet.row(r); TToken_string& row = sheet.row(r);
rec.put(RMOVANA_ANNOES, get(F_ANNOES)); rec.put(RMOVANA_ANNOES, get(F_ANNOES));
rec.put(RMOVANA_DATAREG, get(F_DATAREG)); rec.put(RMOVANA_DATACOMP, get(F_DATACOMP));
const real dare = row.get(sheet.cid2index(S_DARE)), avere = row.get(); const real dare = row.get(sheet.cid2index(S_DARE)), avere = row.get();
if (dare.is_zero()) if (dare.is_zero())

View File

@ -78,6 +78,7 @@ DATE F_DATACOMP
BEGIN BEGIN
PROMPT 2 7 "Data di competenza " PROMPT 2 7 "Data di competenza "
FIELD DATACOMP FIELD DATACOMP
CHECKTYPE REQUIRED
WARNING "La data di competenza non appartiene ad un esercizio valido" WARNING "La data di competenza non appartiene ad un esercizio valido"
END END

View File

@ -229,15 +229,19 @@ class TPrint_mastrini_ca_recordset : public TISAM_recordset
{ {
int _anno; int _anno;
int _tipoconti; int _tipoconti;
int _tipimov;
TDate _dadata, _adata; TDate _dadata, _adata;
long _danumreg, _anumreg; long _danumreg, _anumreg;
TString _daconto, _aconto, _codcosto, _codcms, _codfas; TString _daconto, _aconto, _codcosto, _codcms, _codfas;
protected: //da libreria
virtual const TVariant& get(const char* column_name) const;
protected: protected:
static bool mov_filter(const TRelation* rel); static bool mov_filter(const TRelation* rel);
bool valid_record(const TRelation& rel) const; bool valid_record(const TRelation& rel) const;
virtual void set_custom_filter(TCursor& cur) const; virtual void set_custom_filter(TCursor& cur) const;
const TImporto& saldo_iniziale(const char* conto) const;
public: public:
void set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row); void set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row);
@ -256,12 +260,16 @@ bool TPrint_mastrini_ca_recordset::valid_record(const TRelation& rel) const
if (data < _dadata || (_adata.ok() && data > _adata)) if (data < _dadata || (_adata.ok() && data > _adata))
return false; return false;
/* if (_tipoconti > ' ') const char tipomov = mov.get_char(MOVANA_TIPOMOV);
int tipomov_int = 0;
switch (tipomov)
{ {
const int tipoconti = mov.get_int(); case 'P': tipomov_int = 2; break;
if (tipoconti != _tipoconti) case 'V': tipomov_int = 4; break;
return false; default: tipomov_int = 1; break;
}*/ }
if ((_tipimov & tipomov_int) == 0)
return false;
//..poi le righe (devono comparire solo le righe con cdc/cms/fsc che appaiono nello sheet) //..poi le righe (devono comparire solo le righe con cdc/cms/fsc che appaiono nello sheet)
const TRectype& rmov = rel.curr(LF_RMOVANA); const TRectype& rmov = rel.curr(LF_RMOVANA);
@ -305,6 +313,50 @@ void TPrint_mastrini_ca_recordset::set_custom_filter(TCursor& cur) const
cur.set_filterfunction(mov_filter, true); cur.set_filterfunction(mov_filter, true);
} }
const TImporto& TPrint_mastrini_ca_recordset::saldo_iniziale(const char* conto) const
{
const TSaldanal& saldo = ca_saldo(conto, _codcosto, _codcms, _codfas, _dadata, _adata, _tipimov);
return saldo._ini;
}
const TVariant& TPrint_mastrini_ca_recordset::get(const char* column_name) const
{
if (strncmp(column_name, "SALDOINI:", 9) == 0)
{
const TString16 sub_field = column_name+9;
const TString& conto = get(RMOVANA_CODCONTO).as_string();
const TImporto& saldo_ini = saldo_iniziale(conto);
TVariant& var = get_tmp_var();
if (sub_field == "DARE")
var = saldo_ini.sezione() == 'D' ? saldo_ini.valore() : ZERO;
else
var = saldo_ini.sezione() == 'A' ? saldo_ini.valore() : ZERO;
return var;
}
if (strcmp(column_name, "#COSTO") == 0)
{
TVariant& var = get_tmp_var();
var = _codcosto;
return var;
}
if (strcmp(column_name, "#COMMESSA") == 0)
{
TVariant& var = get_tmp_var();
var = _codcms;
return var;
}
if (strcmp(column_name, "#FASE") == 0)
{
TVariant& var = get_tmp_var();
var = _codfas;
return var;
}
return TISAM_recordset::get(column_name);
}
//metodo per caricare i valori nel recordset dalla maschera...fighissimo!! //metodo per caricare i valori nel recordset dalla maschera...fighissimo!!
void TPrint_mastrini_ca_recordset::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row) void TPrint_mastrini_ca_recordset::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row)
{ {
@ -330,6 +382,13 @@ void TPrint_mastrini_ca_recordset::set_filter(const TPrint_mastrini_ca_mask& msk
_dadata = msk.get_date(F_DATAINI); _dadata = msk.get_date(F_DATAINI);
_adata = msk.get_date(F_DATAFIN); _adata = msk.get_date(F_DATAFIN);
_tipimov = 0;
switch (msk.get(F_TIPIMOV)[0])
{
case 'N': _tipimov = 1; break;
case 'P': _tipimov = 6; break;
default: _tipimov = 7; break;
}
_tipoconti = msk.get(F_TIPOCONTI)[0]; _tipoconti = msk.get(F_TIPOCONTI)[0];
} }
@ -352,11 +411,6 @@ public:
bool TPrint_mastrini_ca_rep::get_usr_val(const TString& name, TVariant& var) const bool TPrint_mastrini_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); return TAnal_report::get_usr_val(name, var);
} }
@ -368,7 +422,6 @@ bool TPrint_mastrini_ca_rep::set_recordset(const TString& sql)
void TPrint_mastrini_ca_rep::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row) void TPrint_mastrini_ca_rep::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row)
{ {
_anno = msk.get_int(F_ANNO);
TPrint_mastrini_ca_recordset* rs = (TPrint_mastrini_ca_recordset*)recordset(); TPrint_mastrini_ca_recordset* rs = (TPrint_mastrini_ca_recordset*)recordset();
rs->set_filter(msk, cms_row); rs->set_filter(msk, cms_row);
} }

View File

@ -25,8 +25,7 @@
#define F_STAMPA_SALDI_PROG 293 #define F_STAMPA_SALDI_PROG 293
#define F_STAMPA_SALDI_SCAL 294 #define F_STAMPA_SALDI_SCAL 294
#define F_TIPOCONTI 295 #define F_TIPOCONTI 295
#define F_TIPIMOV 296
#define F_MEMORIZZA 296
//sheet di pagina 2 //sheet di pagina 2
#define F_RIGHE 300 #define F_RIGHE 300

View File

@ -127,12 +127,20 @@ END
LIST F_TIPOCONTI 24 LIST F_TIPOCONTI 24
BEGIN BEGIN
PROMPT 2 19 "Selezione conti " PROMPT 2 19 "Selezione conti "
ITEM "1|Movimentati nel periodo" ITEM "1|Movimentati nel periodo"
ITEM "2|Con saldo diverso da 0" ITEM "2|Con saldo diverso da 0"
ITEM "3|Tutti" ITEM "3|Tutti"
END END
LIST F_TIPIMOV 24
BEGIN
PROMPT 2 20 "Selezione movimenti "
ITEM " |Qualsiasi"
ITEM "N|Normale"
ITEM "P|Preventivo e variazione"
END
STRING F_REPORT 256 64 STRING F_REPORT 256 64
BEGIN BEGIN
PROMPT 2 21 "Report " PROMPT 2 21 "Report "

View File

@ -47,9 +47,14 @@ MESSAGE RESET,F1.102</prescript>
<font face="Courier New" bold="1" size="16" /> <font face="Courier New" bold="1" size="16" />
</field> </field>
</section> </section>
<section repeat="1" type="Head" level="2" height="3"> <section repeat="1" type="Head" level="2" height="4.5">
<groupby>CODCONTO</groupby> <groupby>CODCONTO</groupby>
<font italic="1" face="Courier New" size="8" /> <font italic="1" face="Courier New" size="8" />
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.101
MESSAGE RESET,F2.102
MESSAGE RESET,F2.103
MESSAGE RESET,F2.104
MESSAGE RESET,F2.105</prescript>
<field type="Testo" width="6" pattern="1" text="Conto:"> <field type="Testo" width="6" pattern="1" text="Conto:">
<font italic="1" face="Courier New" bold="1" size="8" /> <font italic="1" face="Courier New" bold="1" size="8" />
</field> </field>
@ -62,47 +67,51 @@ MESSAGE RESET,F1.102</prescript>
<font italic="1" face="Courier New" bold="1" size="8" /> <font italic="1" face="Courier New" bold="1" size="8" />
<prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,PCONANA,CODCONTO=CODCONTO,DESCR</prescript> <prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,PCONANA,CODCONTO=CODCONTO,DESCR</prescript>
</field> </field>
<field x="12" y="1.5" type="Testo" align="center" width="11" pattern="1" text="N.Reg.&#2F;Riga" /> <field x="13" y="1.5" type="Testo" align="center" width="11" pattern="1" text="N.Reg.&#2F;Riga" />
<field x="24" y="1.5" type="Testo" width="11" pattern="1" text="Descrizione" /> <field x="25" y="1.5" type="Testo" width="11" pattern="1" text="Descrizione" />
<field x="43" y="1.5" type="Testo" width="10" pattern="1" text="Data Doc." /> <field x="52" y="1.5" type="Testo" width="10" pattern="1" text="Data Doc." />
<field x="54" y="1.5" type="Testo" width="6" pattern="1" text="N.Doc." /> <field x="64" y="1.5" type="Testo" width="6" pattern="1" text="N.Doc." />
<field x="63" y="1.5" type="Testo" width="7" pattern="1" text="Causale" /> <field x="73" y="1.5" type="Testo" width="7" pattern="1" text="Causale" />
<field x="97" y="1.5" type="Testo" align="right" width="4" pattern="1" text="Dare" /> <field x="115" y="1.5" type="Testo" align="right" width="4" pattern="1" text="Dare" />
<field x="112" y="1.5" type="Testo" align="right" width="5" pattern="1" text="Avere" /> <field x="130" y="1.5" type="Testo" align="right" width="5" pattern="1" text="Avere" />
<field x="121" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Saldo progr." /> <field x="139" y="1.5" type="Testo" align="right" width="14" pattern="1" text="Saldo scalare" />
<field x="136" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Saldo movim." />
<field x="152" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Altro saldo" />
<field border="1" x="1" y="2.5" type="Linea" width="168" height="0" pattern="1" /> <field border="1" x="1" y="2.5" type="Linea" width="168" height="0" pattern="1" />
<field x="95" y="3" type="Testo" width="25" pattern="1" text="Progressivo precedente" />
<field x="132" y="3" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="1" y="1.5" type="Testo" align="center" width="10" id="121" pattern="1" text="Data" /> <field x="1" y="1.5" type="Testo" align="center" width="10" id="121" pattern="1" text="Data" />
</section> </section>
<section type="Head" level="3">
<groupby>DATACOMP</groupby>
</section>
<section type="Body" /> <section type="Body" />
<section type="Body" level="1"> <section type="Body" level="1">
<field x="1" type="Data" width="10" pattern="1"> <field x="1" type="Data" width="11" pattern="1">
<source>MOVANA.DATACOMP</source> <source>DATACOMP</source>
<postscript description="B1.0 POSTSCRIPT">MESSAGE COPY,F3.131</postscript>
</field> </field>
<field x="12" type="Numero" align="right" width="7" pattern="1"> <field x="13" type="Numero" align="right" width="7" pattern="1">
<source>NUMREG</source> <source>NUMREG</source>
</field> </field>
<field x="19" type="Testo" width="1" pattern="1" text="&#2F;" /> <field x="20" type="Testo" width="1" pattern="1" text="&#2F;" />
<field x="20" type="Numero" align="right" width="3" pattern="1"> <field x="21" type="Numero" align="right" width="3" pattern="1">
<source>NUMRIG</source> <source>NUMRIG</source>
</field> </field>
<field x="24" type="Stringa" dynamic_height="1" width="17" height="3" pattern="1"> <field x="25" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
<source>DESCR</source> <source>DESCR</source>
</field> </field>
<field x="43" type="Data" width="10" pattern="1"> <field x="52" type="Data" width="11" pattern="1">
<source>MOVANA.DATADOC</source> <source>MOVANA.DATADOC</source>
</field> </field>
<field x="54" type="Stringa" width="7" pattern="1"> <field x="64" type="Stringa" width="7" pattern="1">
<source>MOVANA.NUMDOC</source> <source>MOVANA.NUMDOC</source>
</field> </field>
<field x="63" type="Stringa" width="3" pattern="1"> <field x="73" type="Stringa" width="3" pattern="1">
<source>MOVANA.CODCAUS</source> <source>MOVANA.CODCAUS</source>
</field> </field>
<field x="67" type="Stringa" dynamic_height="1" width="17" height="3" pattern="1"> <field x="77" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
<prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript> <prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
</field> </field>
<field x="86" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@"> <field x="104" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTO</source> <source>IMPORTO</source>
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @ <prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
"A" = "A" =
@ -110,10 +119,9 @@ IF
0 #THIS ! 0 #THIS !
THEN THEN
</prescript> </prescript>
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F1.101 <postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F2.101</postscript>
MESSAGE ADD,F2.131</postscript>
</field> </field>
<field x="102" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@"> <field x="120" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTO</source> <source>IMPORTO</source>
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @ <prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
"D" = "D" =
@ -121,65 +129,43 @@ IF
0 #THIS ! 0 #THIS !
THEN THEN
</prescript> </prescript>
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F1.102 <postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F2.102
MESSAGE ADD,F2.132</postscript> </postscript>
</field> </field>
<field x="118" type="Valuta" align="right" width="15" id="103" pattern="1" hide_zero="1" text="###.###.###,@@"> <field x="136" type="Valuta" align="right" width="15" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
<prescript description="B1.103 PRESCRIPT">"RMOVANA.SEZIONE" @ <prescript description="B1.103 PRESCRIPT">"RMOVANA.SEZIONE" @
"D" = "D" =
IF IF
0 #THIS ! 0 #THIS !
THEN THEN
</prescript> </prescript>
<postscript description="B1.103 POSTSCRIPT">MESSAGE ADD,F1.102 <postscript description="B1.103 POSTSCRIPT">MESSAGE ADD,F2.103</postscript>
MESSAGE ADD,F2.132</postscript>
</field>
<field x="134" type="Valuta" align="right" width="15" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
<prescript description="B1.104 PRESCRIPT">"RMOVANA.SEZIONE" @
"D" =
IF
0 #THIS !
THEN
</prescript>
<postscript description="B1.104 POSTSCRIPT">MESSAGE ADD,F1.102
MESSAGE ADD,F2.132</postscript>
</field>
<field x="150" type="Valuta" align="right" width="15" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
<prescript description="B1.105 PRESCRIPT">"RMOVANA.SEZIONE" @
"D" =
IF
0 #THIS !
THEN
</prescript>
<postscript description="B1.105 POSTSCRIPT">MESSAGE ADD,F1.102
MESSAGE ADD,F2.132</postscript>
</field> </field>
</section> </section>
<section type="Foot" height="1" /> <section type="Foot" />
<section type="Foot" level="1"> <section type="Foot" level="1" />
<field border="2" x="1" y="1" type="Linea" width="168" height="0" pattern="1" /> <section type="Foot" level="2" height="3">
<field x="85" y="2" type="Testo" width="17" pattern="1" text="Totali periodo:"> <field border="1" x="1" y="0.5" type="Linea" width="168" height="0" pattern="1" />
<field x="84" y="1" type="Testo" width="17" pattern="1" text="Totali periodo:">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="8" />
</field> </field>
<field x="85" y="3.25" type="Testo" width="20" pattern="1" text="Totali progressivi:"> <field x="104" y="1" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="8" />
</field> </field>
<field x="105" y="2" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@"> <field x="120" y="1" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="8" />
</field> </field>
<field x="121" y="2" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@"> <field x="138" y="1" type="Valuta" align="right" width="15" id="103" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" />
</field>
<field x="137" y="2" type="Valuta" align="right" width="15" id="103" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" />
</field>
<field x="153" y="2" type="Valuta" align="right" width="15" id="104" pattern="1" text="###.###.###,@@">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="8" />
</field> </field>
</section> </section>
<section type="Foot" level="2" height="1" /> <section type="Foot" level="3" height="2">
<sql>USE RMOVANA <font italic="1" face="Courier New" size="8" />
BY CODCONTO NUMREG NUMRIG <field x="110" y="0.5" type="Testo" width="9" pattern="1" text="Saldo al" />
<field x="132" y="0.5" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="120" y="0.5" type="Data" width="11" id="131" pattern="1" />
</section>
<sql>USE RMOVANA KEY 2
JOIN MOVANA INTO NUMREG==NUMREG</sql> JOIN MOVANA INTO NUMREG==NUMREG</sql>
<prescript description="PRESCRIPT">: SCAMBIA_CAMPI ( F1 F2 -- ) <prescript description="PRESCRIPT">: SCAMBIA_CAMPI ( F1 F2 -- )
VARIABLE _X1 \ coordinate del campo F1 VARIABLE _X1 \ coordinate del campo F1