Patch level : 2.2
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunto riferimento al documento originale sui movimenti provenenienti da documento git-svn-id: svn://10.65.10.50/trunk@13237 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d76774f0bd
commit
7d60fb41e5
226
ca/ca3300.cpp
226
ca/ca3300.cpp
@ -229,188 +229,6 @@ TPrint_bilancio_ca_mask::TPrint_bilancio_ca_mask()
|
|||||||
create_sheet();
|
create_sheet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////
|
|
||||||
// Recordset
|
|
||||||
////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TPiano_conti_recordset : public TISAM_recordset
|
|
||||||
{
|
|
||||||
word _tipimov;
|
|
||||||
TString _da_conto, _a_conto;
|
|
||||||
int _contolen;
|
|
||||||
TAnal_bill _bill;
|
|
||||||
TDate _dal, _al;
|
|
||||||
bool _movimentati, _nonnulli;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
bool valid_record(const TRelation& rel) const;
|
|
||||||
static bool pianoconti_filter(const TRelation* rel);
|
|
||||||
|
|
||||||
virtual void set_custom_filter(TCursor& cursor) const;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual const TVariant& get(const char* column_name) const;
|
|
||||||
|
|
||||||
void set_filter(const TMask& m, int r);
|
|
||||||
TPiano_conti_recordset(const char* sql);
|
|
||||||
};
|
|
||||||
|
|
||||||
const TVariant& TPiano_conti_recordset::get(const char* column_name) const
|
|
||||||
{
|
|
||||||
if (strncmp(column_name, "SALDO:", 6) == 0)
|
|
||||||
{
|
|
||||||
TString16 sub_field = column_name+6;
|
|
||||||
const char last = sub_field.right(1)[0];
|
|
||||||
int tipimov = 0;
|
|
||||||
switch (last)
|
|
||||||
{
|
|
||||||
case 'C': tipimov = 1; sub_field.rtrim(1); break; // Consuntivo
|
|
||||||
case 'P':
|
|
||||||
case 'V': tipimov = 6; sub_field.rtrim(1); break; // Preventivo o variazaione preventivo
|
|
||||||
default : tipimov = _tipimov; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
((TAnal_bill&)_bill).set_conto(get(PCONANA_CODCONTO).as_string());
|
|
||||||
const TSaldanal& s = ca_saldo(_bill, _dal, _al, tipimov);
|
|
||||||
|
|
||||||
TVariant& var = get_tmp_var();
|
|
||||||
if (strcmp(sub_field, "INI_DARE") == 0)
|
|
||||||
{
|
|
||||||
var = s._ini.sezione() == 'D' ? s._ini.valore() : ZERO;
|
|
||||||
} else
|
|
||||||
if (strcmp(sub_field, "INI_AVERE") == 0)
|
|
||||||
{
|
|
||||||
var = s._ini.sezione() == 'A' ? s._ini.valore() : ZERO;
|
|
||||||
} else
|
|
||||||
if (strcmp(sub_field, "MOV_DARE") == 0)
|
|
||||||
{
|
|
||||||
var = s._dare.valore();
|
|
||||||
} else
|
|
||||||
if (strcmp(sub_field, "MOV_AVERE") == 0)
|
|
||||||
{
|
|
||||||
var = s._avere.valore();
|
|
||||||
} else
|
|
||||||
if (strcmp(sub_field, "FIN_DARE") == 0)
|
|
||||||
{
|
|
||||||
var = s._fin.sezione() == 'D' ? s._fin.valore() : ZERO;
|
|
||||||
} else
|
|
||||||
if (strcmp(sub_field, "FIN_AVERE") == 0)
|
|
||||||
{
|
|
||||||
var = s._fin.sezione() == 'A' ? s._fin.valore() : ZERO;
|
|
||||||
}
|
|
||||||
return var;
|
|
||||||
}
|
|
||||||
if (strcmp(column_name, "#CMSCDC") == 0)
|
|
||||||
{
|
|
||||||
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_FASI);
|
|
||||||
switch (info.parent())
|
|
||||||
{
|
|
||||||
case LF_CDC : column_name = "#COSTO"; break;
|
|
||||||
case LF_COMMESSE: column_name = "#COMMESSA"; break;
|
|
||||||
default : return NULL_VARIANT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (strcmp(column_name, "#COSTO") == 0)
|
|
||||||
{
|
|
||||||
TVariant& var = get_tmp_var();
|
|
||||||
var = _bill.costo();
|
|
||||||
return var;
|
|
||||||
}
|
|
||||||
if (strcmp(column_name, "#COMMESSA") == 0)
|
|
||||||
{
|
|
||||||
TVariant& var = get_tmp_var();
|
|
||||||
var = _bill.commessa();
|
|
||||||
return var;
|
|
||||||
}
|
|
||||||
if (strcmp(column_name, "#FASE") == 0)
|
|
||||||
{
|
|
||||||
TVariant& var = get_tmp_var();
|
|
||||||
var = _bill.fase();
|
|
||||||
return var;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TISAM_recordset::get(column_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TPiano_conti_recordset::valid_record(const TRelation& rel) const
|
|
||||||
{
|
|
||||||
const TString& conto = rel.curr().get(PCONANA_CODCONTO);
|
|
||||||
if (conto.len() < _contolen)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (_movimentati || _nonnulli)
|
|
||||||
{
|
|
||||||
((TAnal_bill&)_bill).set_conto(conto);
|
|
||||||
const TSaldanal& s = ca_saldo(_bill, _dal, _al, _tipimov);
|
|
||||||
if (_movimentati && !s._movimentato)
|
|
||||||
return false;
|
|
||||||
if (_nonnulli && s._ini.is_zero() && s._dare.is_zero() && s._avere.is_zero())
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const TPiano_conti_recordset* _current_recset = NULL;
|
|
||||||
|
|
||||||
bool TPiano_conti_recordset::pianoconti_filter(const TRelation* rel)
|
|
||||||
{ return _current_recset->valid_record(*rel); }
|
|
||||||
|
|
||||||
void TPiano_conti_recordset::set_custom_filter(TCursor& cursor) const
|
|
||||||
{
|
|
||||||
TRectype darec = cursor.curr();
|
|
||||||
TRectype arec = darec;
|
|
||||||
|
|
||||||
darec.zero(); darec.put(PCONANA_CODCONTO, _da_conto);
|
|
||||||
arec.zero(); arec.put(PCONANA_CODCONTO, _a_conto);
|
|
||||||
cursor.setregion(darec, arec);
|
|
||||||
|
|
||||||
_current_recset = this;
|
|
||||||
cursor.set_filterfunction(pianoconti_filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TPiano_conti_recordset::set_filter(const TMask& m, int r)
|
|
||||||
{
|
|
||||||
_contolen = 0;
|
|
||||||
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_PCONANA);
|
|
||||||
for (int l = info.levels()-1; l >= 0; l--)
|
|
||||||
_contolen += info.len(l);
|
|
||||||
|
|
||||||
for (int i = 0; m.id2pos(F_PDC1_INI+i) > 0; i++)
|
|
||||||
{
|
|
||||||
_da_conto << m.get(F_PDC1_INI+i);
|
|
||||||
_a_conto << m.get(F_PDC1_FIN+i);
|
|
||||||
}
|
|
||||||
|
|
||||||
_dal = m.get(F_DATADA);
|
|
||||||
_al = m.get(F_DATAA);
|
|
||||||
|
|
||||||
switch (m.get(F_TIPOSTAMPA)[0])
|
|
||||||
{
|
|
||||||
case 'C': _tipimov = 1; break; // Consuntivo
|
|
||||||
case 'P': _tipimov = 6; break; // Preventivo e variazioni
|
|
||||||
default : _tipimov = 7; break; // Raffronto
|
|
||||||
}
|
|
||||||
|
|
||||||
_movimentati = m.get_int(F_STAMPAV) == 1;
|
|
||||||
_nonnulli = m.get_int(F_STAMPAV) == 2;
|
|
||||||
|
|
||||||
if (r >= 0)
|
|
||||||
{
|
|
||||||
TSheet_field& sf = m.sfield(F_RIGHE);
|
|
||||||
TMask& sm = sf.sheet_mask();
|
|
||||||
sf.update_mask(r);
|
|
||||||
TRelation rel(LF_RMOVANA);
|
|
||||||
sm.autosave(rel);
|
|
||||||
_bill.get(rel.curr());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_bill.reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
TPiano_conti_recordset::TPiano_conti_recordset(const char* sql) : TISAM_recordset(sql)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
// Report
|
// Report
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
@ -421,20 +239,50 @@ protected:
|
|||||||
virtual bool set_recordset(const TString& sql);
|
virtual bool set_recordset(const TString& sql);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void set_recordset(const TMask& msk, int row);
|
void set_filter(const TMask& msk, int row);
|
||||||
TReport_bilancio_ca(const char* name);
|
TReport_bilancio_ca(const char* name);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TReport_bilancio_ca::set_recordset(const TString& sql)
|
bool TReport_bilancio_ca::set_recordset(const TString& /* sql */)
|
||||||
{
|
{
|
||||||
TPiano_conti_recordset* rset = new TPiano_conti_recordset(sql);
|
TPconana_recordset* rset = new TPconana_recordset();
|
||||||
return TReport::set_recordset(rset);
|
return TReport::set_recordset(rset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TReport_bilancio_ca::set_recordset(const TMask& msk, int row)
|
void TReport_bilancio_ca::set_filter(const TMask& m, int row)
|
||||||
{
|
{
|
||||||
TPiano_conti_recordset* rset = (TPiano_conti_recordset*)recordset();
|
TString da_conto, a_conto, costo, commessa, fase;
|
||||||
rset->set_filter(msk, row);
|
for (int i = 0; m.id2pos(F_PDC1_INI+i) > 0; i++)
|
||||||
|
{
|
||||||
|
da_conto << m.get(F_PDC1_INI+i);
|
||||||
|
a_conto << m.get(F_PDC1_FIN+i);
|
||||||
|
}
|
||||||
|
|
||||||
|
const TDate dal = m.get(F_DATADA);
|
||||||
|
const TDate al = m.get(F_DATAA);
|
||||||
|
|
||||||
|
int tipimov = 0;
|
||||||
|
switch (m.get(F_TIPOSTAMPA)[0])
|
||||||
|
{
|
||||||
|
case 'C': tipimov = 1; break; // Consuntivo
|
||||||
|
case 'P': tipimov = 6; break; // Preventivo e variazioni
|
||||||
|
default : tipimov = 7; break; // Raffronto
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool movimentati = m.get_int(F_STAMPAV) == 1;
|
||||||
|
const bool nonnulli = m.get_int(F_STAMPAV) == 2;
|
||||||
|
|
||||||
|
TSheet_field& sf = m.sfield(F_RIGHE);
|
||||||
|
TMask& sm = sf.sheet_mask();
|
||||||
|
sf.update_mask(row);
|
||||||
|
TRelation rel(LF_RMOVANA);
|
||||||
|
sm.autosave(rel);
|
||||||
|
costo = rel.curr().get(RMOVANA_CODCCOSTO);
|
||||||
|
commessa = rel.curr().get(RMOVANA_CODCMS);
|
||||||
|
fase = rel.curr().get(RMOVANA_CODFASE);
|
||||||
|
|
||||||
|
TPconana_recordset* rset = (TPconana_recordset*)recordset();
|
||||||
|
rset->set_filter(da_conto, a_conto, costo, commessa, fase, dal, al, tipimov, movimentati, nonnulli);
|
||||||
}
|
}
|
||||||
|
|
||||||
TReport_bilancio_ca::TReport_bilancio_ca(const char* name)
|
TReport_bilancio_ca::TReport_bilancio_ca(const char* name)
|
||||||
@ -465,7 +313,7 @@ void TPrint_bilancio_ca::main_loop()
|
|||||||
const int rows = sf.items();
|
const int rows = sf.items();
|
||||||
for (int i = 0; i < rows; i++)
|
for (int i = 0; i < rows; i++)
|
||||||
{
|
{
|
||||||
rep.set_recordset(mask, i);
|
rep.set_filter(mask, i);
|
||||||
book.add(rep);
|
book.add(rep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
140
ca/calib02.cpp
140
ca/calib02.cpp
@ -7,9 +7,149 @@
|
|||||||
#include "../include/rdoc.h"
|
#include "../include/rdoc.h"
|
||||||
|
|
||||||
#include "movana.h"
|
#include "movana.h"
|
||||||
|
#include "pconana.h"
|
||||||
#include "rmovana.h"
|
#include "rmovana.h"
|
||||||
#include "saldana.h"
|
#include "saldana.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TPconana_recordset
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
const TVariant& TPconana_recordset::get(const char* column_name) const
|
||||||
|
{
|
||||||
|
if (strncmp(column_name, "SALDO:", 6) == 0)
|
||||||
|
{
|
||||||
|
TString16 sub_field = column_name+6;
|
||||||
|
const char last = sub_field.right(1)[0];
|
||||||
|
int tipimov = 0;
|
||||||
|
switch (last)
|
||||||
|
{
|
||||||
|
case 'C': tipimov = 1; sub_field.rtrim(1); break; // Consuntivo
|
||||||
|
case 'P':
|
||||||
|
case 'V': tipimov = 6; sub_field.rtrim(1); break; // Preventivo o variazaione preventivo
|
||||||
|
default : tipimov = _tipimov; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
((TAnal_bill&)_bill).set_conto(relation()->curr().get(PCONANA_CODCONTO));
|
||||||
|
const TSaldanal& s = ca_saldo(_bill, _dal, _al, tipimov);
|
||||||
|
|
||||||
|
TVariant& var = get_tmp_var();
|
||||||
|
if (strcmp(sub_field, "INI_DARE") == 0)
|
||||||
|
{
|
||||||
|
var = s._ini.sezione() == 'D' ? s._ini.valore() : ZERO;
|
||||||
|
} else
|
||||||
|
if (strcmp(sub_field, "INI_AVERE") == 0)
|
||||||
|
{
|
||||||
|
var = s._ini.sezione() == 'A' ? s._ini.valore() : ZERO;
|
||||||
|
} else
|
||||||
|
if (strcmp(sub_field, "MOV_DARE") == 0)
|
||||||
|
{
|
||||||
|
var = s._dare.valore();
|
||||||
|
} else
|
||||||
|
if (strcmp(sub_field, "MOV_AVERE") == 0)
|
||||||
|
{
|
||||||
|
var = s._avere.valore();
|
||||||
|
} else
|
||||||
|
if (strcmp(sub_field, "FIN_DARE") == 0)
|
||||||
|
{
|
||||||
|
var = s._fin.sezione() == 'D' ? s._fin.valore() : ZERO;
|
||||||
|
} else
|
||||||
|
if (strcmp(sub_field, "FIN_AVERE") == 0)
|
||||||
|
{
|
||||||
|
var = s._fin.sezione() == 'A' ? s._fin.valore() : ZERO;
|
||||||
|
}
|
||||||
|
return var;
|
||||||
|
}
|
||||||
|
if (strcmp(column_name, "#CMSCDC") == 0)
|
||||||
|
{
|
||||||
|
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_FASI);
|
||||||
|
switch (info.parent())
|
||||||
|
{
|
||||||
|
case LF_CDC : column_name = "#COSTO"; break;
|
||||||
|
case LF_COMMESSE: column_name = "#COMMESSA"; break;
|
||||||
|
default : return NULL_VARIANT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strcmp(column_name, "#COSTO") == 0)
|
||||||
|
return get_tmp_var() = _bill.costo();
|
||||||
|
if (strcmp(column_name, "#COMMESSA") == 0)
|
||||||
|
return get_tmp_var() = _bill.commessa();
|
||||||
|
if (strcmp(column_name, "#FASE") == 0)
|
||||||
|
return get_tmp_var() = _bill.fase();
|
||||||
|
|
||||||
|
return TISAM_recordset::get(column_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPconana_recordset::valid_record(const TRelation& rel) const
|
||||||
|
{
|
||||||
|
if (_movimentati || _nonnulli)
|
||||||
|
{
|
||||||
|
const TString& conto = rel.curr().get(PCONANA_CODCONTO);
|
||||||
|
((TAnal_bill&)_bill).set_conto(conto);
|
||||||
|
const TSaldanal& s = ca_saldo(_bill, _dal, _al, _tipimov);
|
||||||
|
if (_movimentati && !s._movimentato)
|
||||||
|
return false;
|
||||||
|
if (_nonnulli && s._ini.is_zero() && s._dare.is_zero() && s._avere.is_zero())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const TPconana_recordset* _current_recset = NULL;
|
||||||
|
|
||||||
|
bool TPconana_recordset::pianoconti_filter(const TRelation* rel)
|
||||||
|
{ return _current_recset->valid_record(*rel); }
|
||||||
|
|
||||||
|
void TPconana_recordset::set_custom_filter(TCursor& cursor) const
|
||||||
|
{
|
||||||
|
TString filter;
|
||||||
|
filter << "LEN(" << PCONANA_CODCONTO << ")==" << _contolen;
|
||||||
|
cursor.setfilter(filter);
|
||||||
|
|
||||||
|
TRectype darec(LF_PCONANA), arec(LF_PCONANA);
|
||||||
|
darec.put(PCONANA_CODCONTO, _da_conto);
|
||||||
|
arec.put(PCONANA_CODCONTO, _a_conto);
|
||||||
|
cursor.setregion(darec, arec);
|
||||||
|
|
||||||
|
if (_movimentati || _nonnulli)
|
||||||
|
{
|
||||||
|
_current_recset = this;
|
||||||
|
cursor.set_filterfunction(pianoconti_filter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cursor.set_filterfunction(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPconana_recordset::set_filter(const char* da_conto, const char* a_conto,
|
||||||
|
const char* costo, const char* commessa, const char* fase,
|
||||||
|
const TDate& dal, const TDate& al,
|
||||||
|
word tipimov, bool movimentati, bool nonnulli)
|
||||||
|
{
|
||||||
|
_contolen = 0;
|
||||||
|
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_PCONANA);
|
||||||
|
for (int l = info.levels()-1; l >= 0; l--)
|
||||||
|
_contolen += info.len(l);
|
||||||
|
|
||||||
|
_da_conto = da_conto;
|
||||||
|
_a_conto = a_conto;
|
||||||
|
|
||||||
|
_dal = dal;
|
||||||
|
_al = al;
|
||||||
|
|
||||||
|
_tipimov= tipimov;
|
||||||
|
_movimentati = movimentati;
|
||||||
|
_nonnulli = nonnulli;
|
||||||
|
|
||||||
|
_bill.reset();
|
||||||
|
_bill.set_costo(costo);
|
||||||
|
_bill.set_commessa(commessa);
|
||||||
|
_bill.set_fase(fase);
|
||||||
|
}
|
||||||
|
|
||||||
|
TPconana_recordset::TPconana_recordset() : TISAM_recordset("USE PCONANA")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TAnal_report
|
// TAnal_report
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
78
ca/calib02.h
78
ca/calib02.h
@ -5,30 +5,6 @@
|
|||||||
#include <report.h>
|
#include <report.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TAnal_rapport
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TAnal_report : public TReport
|
|
||||||
{
|
|
||||||
unsigned int _first_msg;
|
|
||||||
|
|
||||||
protected: // protected is safer
|
|
||||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
|
||||||
virtual size_t get_usr_words(TString_array& words) const;
|
|
||||||
virtual bool execute_usr_word(unsigned int opcode, TVariant_stack& stack);
|
|
||||||
virtual bool use_mask() { return false;}
|
|
||||||
|
|
||||||
void msg_format(int logicnum, TVariant_stack& stack);
|
|
||||||
void msg_format_costo (TVariant_stack& stack);
|
|
||||||
void msg_format_commessa (TVariant_stack& stack);
|
|
||||||
void msg_format_fase (TVariant_stack& stack);
|
|
||||||
void msg_format_conto (TVariant_stack& stack);
|
|
||||||
void msg_format_commessa_costo(TVariant_stack& stack);
|
|
||||||
|
|
||||||
public: // meglio pubic?
|
|
||||||
};
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TAnal_bill
|
// TAnal_bill
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -76,4 +52,58 @@ struct TSaldanal : public TObject
|
|||||||
|
|
||||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi = 1);
|
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi = 1);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////
|
||||||
|
// TPconana_recordset
|
||||||
|
////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TPconana_recordset : public TISAM_recordset
|
||||||
|
{
|
||||||
|
word _tipimov;
|
||||||
|
TString _da_conto, _a_conto;
|
||||||
|
int _contolen;
|
||||||
|
TAnal_bill _bill;
|
||||||
|
TDate _dal, _al;
|
||||||
|
bool _movimentati, _nonnulli;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool valid_record(const TRelation& rel) const;
|
||||||
|
static bool pianoconti_filter(const TRelation* rel);
|
||||||
|
|
||||||
|
virtual void set_custom_filter(TCursor& cursor) const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual const TVariant& get(const char* column_name) const;
|
||||||
|
|
||||||
|
void set_filter(const char* da_conto, const char* a_conto,
|
||||||
|
const char* costo, const char* commessa, const char* fase,
|
||||||
|
const TDate& dal, const TDate& al,
|
||||||
|
word tipimov, bool movimentati, bool nonnulli);
|
||||||
|
|
||||||
|
TPconana_recordset();
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_rapport
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TAnal_report : public TReport
|
||||||
|
{
|
||||||
|
unsigned int _first_msg;
|
||||||
|
|
||||||
|
protected: // protected is safer
|
||||||
|
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||||
|
virtual size_t get_usr_words(TString_array& words) const;
|
||||||
|
virtual bool execute_usr_word(unsigned int opcode, TVariant_stack& stack);
|
||||||
|
virtual bool use_mask() { return false;}
|
||||||
|
|
||||||
|
void msg_format(int logicnum, TVariant_stack& stack);
|
||||||
|
void msg_format_costo (TVariant_stack& stack);
|
||||||
|
void msg_format_commessa (TVariant_stack& stack);
|
||||||
|
void msg_format_fase (TVariant_stack& stack);
|
||||||
|
void msg_format_conto (TVariant_stack& stack);
|
||||||
|
void msg_format_commessa_costo(TVariant_stack& stack);
|
||||||
|
|
||||||
|
public: // meglio pubic?
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
107
|
107
|
||||||
0
|
0
|
||||||
$movana|0|0|152|0|Movimenti di Analitica|||
|
$movana|0|0|168|0|Movimenti di Analitica|||
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
107
|
107
|
||||||
17
|
21
|
||||||
ANNOES|9|4|0|Codice esercizio
|
ANNOES|9|4|0|Codice esercizio
|
||||||
NUMREG|3|7|0|Numero di operazione
|
NUMREG|3|7|0|Numero di operazione
|
||||||
DATAREG|5|8|0|Data operazione
|
DATAREG|5|8|0|Data operazione
|
||||||
@ -17,6 +17,10 @@ CAMBIO|4|15|6|Cambio della valuta
|
|||||||
TOTDOC|4|18|3|Totale documento
|
TOTDOC|4|18|3|Totale documento
|
||||||
SEZIONE|1|1|0|Sezione del totale documento
|
SEZIONE|1|1|0|Sezione del totale documento
|
||||||
BLOCCATO|8|1|0|Movimento bloccato
|
BLOCCATO|8|1|0|Movimento bloccato
|
||||||
|
DPROVV|1|1|0|Documento originale PROVV
|
||||||
|
DANNO|2|4|0|Documento originale ANNO
|
||||||
|
DCODNUM|1|4|0|Documento originale CODNUM
|
||||||
|
DNDOC|3|7|0|Documento originale NDOC
|
||||||
3
|
3
|
||||||
NUMREG|
|
NUMREG|
|
||||||
DATACOMP+NUMREG|X
|
DATACOMP+NUMREG|X
|
||||||
|
@ -15,5 +15,9 @@
|
|||||||
#define MOVANA_SEZIONE "SEZIONE"
|
#define MOVANA_SEZIONE "SEZIONE"
|
||||||
#define MOVANA_TOTDOC "TOTDOC"
|
#define MOVANA_TOTDOC "TOTDOC"
|
||||||
#define MOVANA_BLOCCATO "BLOCCATO"
|
#define MOVANA_BLOCCATO "BLOCCATO"
|
||||||
|
#define MOVANA_DPROVV "DPROVV"
|
||||||
|
#define MOVANA_DANNO "DANNO"
|
||||||
|
#define MOVANA_DCODNUM "DCODNUM"
|
||||||
|
#define MOVANA_DNDOC "DNDOC"
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user