b8d4da1014
Files correlati : Ricompilazione Demo : [ ] Commento :riporti dalla 5.0 git-svn-id: svn://10.65.10.50/trunk@16667 c028cbd2-c16b-5b4b-a496-9718f37d4682
112 lines
4.1 KiB
C++
Executable File
112 lines
4.1 KiB
C++
Executable File
#ifndef __CA3883_H
|
|
#define __CA3883_H
|
|
|
|
#include <assoc.h>
|
|
#include <reprint.h>
|
|
|
|
#include "../cg/cglib01.h"
|
|
|
|
#include "ca3883a.h"
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// CACHE INDICATORI BILANCIO
|
|
///////////////////////////////////////////////////////////////
|
|
//simpatica classe utile per smanettare con piani dei conti contabili ed analitici, riclassificazioni,..
|
|
//..indicatori di bilancio e roba simile!
|
|
//ACHTUNG! potrebbe fallire se uno ha conti analitici puri lunghi 12 caratteri e solo numerici
|
|
class TIndbil_cache : public TCache
|
|
{
|
|
bool _usepdcc;
|
|
TString80 _prefix;
|
|
|
|
protected:
|
|
virtual TObject* key2obj(const char* key);
|
|
|
|
public:
|
|
int get_indbil(const TString& conto, TString& conto_anale);
|
|
void set_prefix(const char* prefix);
|
|
int get_prefix_length() const { return _prefix.len(); }
|
|
TIndbil_cache();
|
|
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// REPORT A COLONNE VARIABILI
|
|
///////////////////////////////////////////////////////////////
|
|
class TCRPA_report : public TReport
|
|
{
|
|
protected:
|
|
void merge_array(TString_array& c, TString_array& t,
|
|
TString_array& codici, TString_array& testate) const;
|
|
void analize_pconana_structure (const TString& prefix, const int depth,
|
|
TString_array& codici, TString_array& testate) const;
|
|
bool generate_columns (TString_array& codici, TString_array& testate, const int model_id,
|
|
const bool show_fasi, const bool show_cdc);
|
|
void offset_and_fill_columns(TReport_section& rep_sect, const TString_array& str_arr,
|
|
const int model_id, const bool show_fasi, const bool show_cdc);
|
|
void offset_and_fill_sectionf4(TReport_section& rep_sect, const int model_id);
|
|
public:
|
|
TCRPA_report (const char* rep_name, const TString& prefix, const int depth,
|
|
const bool show_fasi, const bool show_cdc);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// RECORDSET PER STAMPE DI SALDANA CA3800, CA3900
|
|
///////////////////////////////////////////////////////////////
|
|
class TPrint_saldana_recordset : public TRecordset
|
|
{
|
|
TRecnotype _curr;
|
|
TArray _righe;
|
|
TArray _colonne;
|
|
TAssoc_array _totali[4];
|
|
TIndbil_cache _indicatori;
|
|
TEsercizi_contabili _esc;
|
|
|
|
int _tipo;
|
|
int _anno;
|
|
int _depth;
|
|
int _tipostampa;
|
|
bool _vitaintera;
|
|
bool _tipodetr;
|
|
char _tipostima;
|
|
TString16 _fase;
|
|
TString80 _cdc;
|
|
|
|
protected:
|
|
virtual int tipo() const { return _tipo; }
|
|
virtual TRecnotype items() const { return _righe.items(); }
|
|
virtual bool move_to(TRecnotype pos);
|
|
virtual TRecnotype current_row() const { return _curr; }
|
|
virtual void requery();
|
|
virtual const TString& query_text() const { return EMPTY_STRING; }
|
|
virtual unsigned int columns() const { return _colonne.items(); }
|
|
virtual const TRecordset_column_info& column_info(unsigned int column) const { return (TRecordset_column_info&) _colonne[column]; }
|
|
virtual const TVariant& get(unsigned int column) const;
|
|
virtual const TVariant& get(const char* column_name) const;
|
|
|
|
void parse_bill(const TString& bill, TString& conto) const;
|
|
int estrai_saldi(const TRecordset& saldana, const int indbil,
|
|
TImporto& saldo, TImporto& saldop, const bool cms_detraz) const;
|
|
//per il solo ca3800
|
|
void aggiorna_importo(TAssoc_array& riga_array, const TString& livello, const int indbil,
|
|
const TRecordset& saldana, const bool inverti = false, const bool cms_detraz = false) const;
|
|
real calcola_avanzamento_tempo() const;
|
|
void create_lines_to_print(const TString& query);
|
|
//per il solo ca3900
|
|
void aggiorna_importi(TAssoc_array& riga_array, const int indbil, const TRecordset& saldana,
|
|
const bool inverti = false) const;
|
|
void incrementa_importo(TAssoc_array& riga_array, const TString& livello, const int indbil,
|
|
const TImporto& saldo, const bool inverti) const;
|
|
|
|
TAssoc_array& get_row(TAssoc_array& cms, const char* chiave,
|
|
const int indice, const TString& codcms, const TString& fase,
|
|
const TString& cdc, const TString& descrizione) const;
|
|
|
|
public:
|
|
virtual void set_filter(const TMask& msk, const TString& curr_sublevel);
|
|
TPrint_saldana_recordset(int tipo) : _tipo(tipo) { }
|
|
};
|
|
|
|
#endif
|