campo-sirio/ve/velib07.h
guy 4378b5f698 Corretto calcolo fido cliente
git-svn-id: svn://10.65.10.50/branches/R_10_00@22889 c028cbd2-c16b-5b4b-a496-9718f37d4682
2013-07-26 15:48:01 +00:00

130 lines
3.4 KiB
C++
Executable File

#ifndef __VELIB07_H
#define __VELIB07_H
#ifndef __VELIB_H
#include "velib.h"
#endif
#ifndef __REPORT_H
#include <report.h>
#endif
///////////////////////////////////////////////////////////
// TMateriali_base_recordset
///////////////////////////////////////////////////////////
class TMateriali_base_recordset : public TRecordset
{
TString _query;
TArray _boom;
long _pos;
TArray _column;
bool _reverse;
long _lastrow;
TRectype * _rdist;
protected:
const TString& query_text() const { return _query; }
TArray& boom() { return _boom; }
const TArray& boom() const { return _boom; }
void set_reverse(bool r) { _reverse = r; }
bool reverse() const { return _reverse;}
public:
virtual TRecnotype items() const { return _boom.items(); }
virtual bool move_to(TRecnotype pos) { _pos = pos; _lastrow = -1; return pos < items();}
virtual TRecnotype current_row() const { return _pos; }
virtual void requery();
virtual unsigned int columns() const { return _column.items();}
virtual const TRecordset_column_info& column_info(unsigned int column) const { return (const TRecordset_column_info&) _column[column];}
virtual const TVariant& get(unsigned int column) const;
virtual const TVariant& get(const char* column_name) const;
TMateriali_base_recordset(const char* use);
virtual ~TMateriali_base_recordset(){ delete _rdist;}
};
///////////////////////////////////////////////////////////
// TScalare_recordset
///////////////////////////////////////////////////////////
class TScalare_recordset : public TMateriali_base_recordset
{
protected:
public:
virtual void requery();
TScalare_recordset(const char* use) : TMateriali_base_recordset(use) {}
virtual ~TScalare_recordset() { }
};
///////////////////////////////////////////////////////////
// TDocument_cache
///////////////////////////////////////////////////////////
class TDocument_cache : TCache
{
protected:
virtual TObject* key2obj(const char* key);
public:
TDocumento& doc(const TRectype& rec);
TDocument_cache();
virtual ~TDocument_cache();
};
///////////////////////////////////////////////////////////
// TDocument_recordset
///////////////////////////////////////////////////////////
class TDocument_recordset : public TISAM_recordset
{
TDocument_cache _cache;
protected:
virtual const TVariant& get_field(int num, const char* field) const;
public:
const TDocumento& doc(const TRectype& rec) { return _cache.doc(rec);}
TDocument_recordset(const char* use) : TISAM_recordset(use) { }
virtual ~TDocument_recordset() { }
};
///////////////////////////////////////////////////////////
// TDocument_report
///////////////////////////////////////////////////////////
class TDocument_report : public TReport
{
size_t _first_msg;
protected:
virtual size_t get_usr_words(TString_array& words) const;
virtual bool execute_usr_word(unsigned int opcode, TVariant_stack& stack);
virtual bool set_recordset(const TString& query);
bool msg_parent_doc(TVariant_stack& stack);
bool msg_parent_row(TVariant_stack& stack);
void output_values(const TRectype& rec, const TString& output);
void reset_values(const TString& output);
public:
bool load(const char* name);
};
///////////////////////////////////////////////
// Metodi non appartenenti a classi
///////////////////////////////////////////////
//metodo per il calcolo del fido cliente
real calcola_fido_cliente (long codcf, const TDate& datacalc, const TDoc_key& ignore);
#endif