Patch level :2.2 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento :stampa rendiconto: terminata la compilazione del file temporaneo. Adesso ci scrive qualcosa. Vedremo domani se è giusto! git-svn-id: svn://10.65.10.50/trunk@13269 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
fa425299d9
commit
d779c85cc8
@ -247,6 +247,7 @@ protected:
|
|||||||
void crea_righe_rdoc(const TPrint_rendiconto_ca_mask& msk);
|
void crea_righe_rdoc(const TPrint_rendiconto_ca_mask& msk);
|
||||||
void crea_trr(const TFilename& trr) const;
|
void crea_trr(const TFilename& trr) const;
|
||||||
void salva_rmovana(const TRectype& rmovana, const TRectype& movana);
|
void salva_rmovana(const TRectype& rmovana, const TRectype& movana);
|
||||||
|
real somma_budget(const TString& codconto, const char* tipomovana);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -259,6 +260,8 @@ public:
|
|||||||
|
|
||||||
static const TPrint_rendiconto_ca_recordset* myself = NULL;
|
static const TPrint_rendiconto_ca_recordset* myself = NULL;
|
||||||
|
|
||||||
|
TPrint_rendiconto_ca_recordset* rendiconto_recordset() { return (TPrint_rendiconto_ca_recordset* ) myself;}
|
||||||
|
|
||||||
//metodo per riconoscere se il record corrente soddisfa i filtri della maschera...strafighissimo!
|
//metodo per riconoscere se il record corrente soddisfa i filtri della maschera...strafighissimo!
|
||||||
bool TPrint_rendiconto_ca_recordset::valid_record(const TRelation& rel) const
|
bool TPrint_rendiconto_ca_recordset::valid_record(const TRelation& rel) const
|
||||||
{
|
{
|
||||||
@ -309,7 +312,7 @@ bool TPrint_rendiconto_ca_recordset::mov_filter(const TRelation* rel)
|
|||||||
void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const
|
void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const
|
||||||
{
|
{
|
||||||
//filtro sui conti selezionati sulla maschera
|
//filtro sui conti selezionati sulla maschera
|
||||||
TRectype darec(cur.curr()), arec(cur.curr()); //record corrente (rmovana (solo movimentati))
|
TRectype darec(cur.curr()), arec(cur.curr());
|
||||||
darec.put(RMOVANA_CODCONTO, _daconto);
|
darec.put(RMOVANA_CODCONTO, _daconto);
|
||||||
darec.put(RMOVANA_DATACOMP, _dadata);
|
darec.put(RMOVANA_DATACOMP, _dadata);
|
||||||
arec.put(RMOVANA_CODCONTO, _aconto);
|
arec.put(RMOVANA_CODCONTO, _aconto);
|
||||||
@ -320,10 +323,49 @@ void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const
|
|||||||
cur.set_filterfunction(mov_filter, true);
|
cur.set_filterfunction(mov_filter, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//metodo per il calcolo del budget PREVENTIVO o VARIAZIONE (sezione di raggruppamento sul report)
|
||||||
|
real TPrint_rendiconto_ca_recordset::somma_budget(const TString& codconto, const char* tipomovana)
|
||||||
|
{
|
||||||
|
real budget = ZERO;
|
||||||
|
|
||||||
|
TRelation rel_rmovana(LF_RMOVANA);
|
||||||
|
rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG");
|
||||||
|
|
||||||
|
//..crea un cursore su movana per avere solo i conti di tipo tipomovana, con il codice conto
|
||||||
|
//selezionato e la datacomp compresa nell'intervallo date
|
||||||
|
TRectype da_rmovana(LF_RMOVANA);
|
||||||
|
da_rmovana.put(RMOVANA_CODCONTO, codconto);
|
||||||
|
da_rmovana.put(RMOVANA_DATACOMP, _dadata);
|
||||||
|
TRectype a_rmovana(LF_RMOVANA);
|
||||||
|
a_rmovana.put(RMOVANA_CODCONTO, codconto);
|
||||||
|
a_rmovana.put(RMOVANA_DATACOMP, _adata);
|
||||||
|
|
||||||
|
TString filtro;
|
||||||
|
filtro << "(MOVANA_TIPODOC==" << tipomovana << ")";
|
||||||
|
|
||||||
|
TCursor cur_rmovana(&rel_rmovana, filtro, 2, &da_rmovana, &a_rmovana);
|
||||||
|
const long rmovana_items = cur_rmovana.items();
|
||||||
|
cur_rmovana.freeze();
|
||||||
|
|
||||||
|
if (rmovana_items > 0)
|
||||||
|
{
|
||||||
|
const TRectype& movana = rel_rmovana.curr(LF_MOVANA);
|
||||||
|
for (cur_rmovana = 0; cur_rmovana.pos() < rmovana_items; ++cur_rmovana)
|
||||||
|
{
|
||||||
|
if (movana.get_char(MOVANA_SEZIONE) == 'D')
|
||||||
|
budget -= movana.get_real(MOVANA_TOTDOC);
|
||||||
|
if (movana.get_char(MOVANA_SEZIONE) == 'A')
|
||||||
|
budget += movana.get_real(MOVANA_TOTDOC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return budget;
|
||||||
|
}
|
||||||
|
|
||||||
const TVariant& TPrint_rendiconto_ca_recordset::get(const char* column_name) const
|
const TVariant& TPrint_rendiconto_ca_recordset::get(const char* column_name) const
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (*column_name == '#')
|
||||||
|
{
|
||||||
if (strcmp(column_name, "#COSTO") == 0)
|
if (strcmp(column_name, "#COSTO") == 0)
|
||||||
{
|
{
|
||||||
TVariant& var = get_tmp_var();
|
TVariant& var = get_tmp_var();
|
||||||
@ -342,6 +384,19 @@ const TVariant& TPrint_rendiconto_ca_recordset::get(const char* column_name) con
|
|||||||
var = _codfas;
|
var = _codfas;
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
|
if (strcmp(column_name, "#PREVENTIVO") == 0)
|
||||||
|
{
|
||||||
|
TVariant& var = get_tmp_var();
|
||||||
|
var = rendiconto_recordset()->somma_budget(get(RMOVANA_CODCONTO).as_string(), "P");
|
||||||
|
return var;
|
||||||
|
}
|
||||||
|
if (strcmp(column_name, "#VARIAZIONE") == 0)
|
||||||
|
{
|
||||||
|
TVariant& var = get_tmp_var();
|
||||||
|
var = rendiconto_recordset()->somma_budget(get(RMOVANA_CODCONTO).as_string(), "V");
|
||||||
|
return var;
|
||||||
|
}
|
||||||
|
}
|
||||||
return TISAM_recordset::get(column_name);
|
return TISAM_recordset::get(column_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,8 +408,8 @@ void TPrint_rendiconto_ca_recordset::salva_rmovana(const TRectype& rmovana, cons
|
|||||||
{
|
{
|
||||||
//scegli i campi da mettere
|
//scegli i campi da mettere
|
||||||
_tmp->curr().put("CONTO", rmovana.get(RMOVANA_CODCONTO)); //conto
|
_tmp->curr().put("CONTO", rmovana.get(RMOVANA_CODCONTO)); //conto
|
||||||
_tmp->curr().put("DCODNUM", movana.get(MOVANA_DCODNUM)); //codnum del documento che origina il movana
|
_tmp->curr().put("CODNUM", movana.get(MOVANA_DCODNUM)); //codnum del documento che origina il movana
|
||||||
_tmp->curr().put("DATAREG", movana.get(MOVANA_DATAREG)); //data del movana
|
_tmp->curr().put("DATA", movana.get(MOVANA_DATAREG)); //data del movana
|
||||||
_tmp->curr().put("NUMREG", movana.get(MOVANA_NUMREG));
|
_tmp->curr().put("NUMREG", movana.get(MOVANA_NUMREG));
|
||||||
_tmp->curr().put("NUMDOCRIF", movana.get(MOVANA_DNDOC));
|
_tmp->curr().put("NUMDOCRIF", movana.get(MOVANA_DNDOC));
|
||||||
_tmp->curr().put("DATADOCRIF", movana.get(MOVANA_DATADOC));
|
_tmp->curr().put("DATADOCRIF", movana.get(MOVANA_DATADOC));
|
||||||
@ -497,7 +552,7 @@ void TPrint_rendiconto_ca_recordset::crea_righe_rdoc(const TPrint_rendiconto_ca_
|
|||||||
void TPrint_rendiconto_ca_recordset::crea_trr(const TFilename& trr) const
|
void TPrint_rendiconto_ca_recordset::crea_trr(const TFilename& trr) const
|
||||||
{
|
{
|
||||||
ofstream of(trr);
|
ofstream of(trr);
|
||||||
of << 1005 << endl;
|
of << 1000 << endl;
|
||||||
of << 13 << endl;
|
of << 13 << endl;
|
||||||
of << "CONTO|1|20|0|Conto analitico" << endl;
|
of << "CONTO|1|20|0|Conto analitico" << endl;
|
||||||
of << "CODNUM|1|4|0|Numerazione documento" << endl;
|
of << "CODNUM|1|4|0|Numerazione documento" << endl;
|
||||||
@ -519,8 +574,12 @@ void TPrint_rendiconto_ca_recordset::crea_trr(const TFilename& trr) const
|
|||||||
void TPrint_rendiconto_ca_recordset::set_filter(const TPrint_rendiconto_ca_mask& msk, int cms_row)
|
void TPrint_rendiconto_ca_recordset::set_filter(const TPrint_rendiconto_ca_mask& msk, int cms_row)
|
||||||
{
|
{
|
||||||
//se esiste il file temporano con tracciato persomalizzato lo cancella e lo ricrea vuoto
|
//se esiste il file temporano con tracciato persomalizzato lo cancella e lo ricrea vuoto
|
||||||
TFilename trr; trr.temp(); trr.add("rendiconto.trr");
|
TFilename trr;
|
||||||
TFilename dbf(trr); dbf.ext("dbf");
|
trr.temp("rendy");
|
||||||
|
TFilename dbf(trr);
|
||||||
|
|
||||||
|
trr.ext("trr");
|
||||||
|
dbf.ext("dbf");
|
||||||
|
|
||||||
//crea il file .trr in base ai parametri del metodo
|
//crea il file .trr in base ai parametri del metodo
|
||||||
crea_trr(trr);
|
crea_trr(trr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user