campo-sirio/ve/ve7700.h
alex 85275d0ef7 Patch level : 4.0 620
Files :  ve7.exe
Ricompilazione Demo : [ ]
Commento            :

Trasferimento Galileo


git-svn-id: svn://10.65.10.50/trunk@14908 c028cbd2-c16b-5b4b-a496-9718f37d4682
2007-02-13 12:24:33 +00:00

174 lines
4.6 KiB
C++
Executable File

#ifndef __VE7700_H
#define __VE7700_H
#ifndef __CONFIG_H
#include <config.h>
#endif
#ifndef __DICTION_H
#include <diction.h>
#endif
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __ODBCRECSET_H
#include <odbcrset.h>
#endif
#ifndef __PROGIND_H
class TProgind;
#endif
class TGalileo_log;
class TCache_tp;
class TGalileo_transfer : public TObject
{
TString _query_header;
TGalileo_log* _log;
TConfig _config;
TRecordset* _recset;
bool _write_enabled;
TODBC_recordset* _outset;
TCache_tp* _tab;
protected:
const TString& build_insert_query(const char* table, const char* f, const char* v) const;
TRecordset& create_recordset(const char* query);
long odbc_exec(const char* command);
const TString& decode_value(const char* tab, const TString& field_value);
const TString& decode_field(const char* tab, const char* recset_field);
TGalileo_transfer();
virtual bool trasferisci() pure;
public:
void init(const char* rh, const char* qh, TGalileo_log* log);
const TString& title() const;
TConfig& config() { return _config; }
const TString& query_header() const { return _query_header; }
void log(const char* msg, int sev = 0) const;
bool log_error(const char* msg);
bool log_cancelled();
const TRecordset& recordset() const;
TRecordset& recordset();
const TString& get_str(const char* campo) const; // Get string from current recordset
const TString& get_real_str(const char* campo) const; // Get eventually empty string from numeric field
long get_long(const char* campo) const;
bool write_enabled() const { return _write_enabled; }
bool test_write(TIsamfile& file, bool re = false);
bool test_rewrite(TIsamfile& file) { return test_write(file, true); }
virtual ~TGalileo_transfer();
};
// Classe candidata alla libreria
class TGalileo_iterator
{
TGalileo_transfer* _pt;
TProgind* _pi;
TRecnotype _rec;
public:
bool ok() const;
bool cancelled() const;
TGalileo_iterator& operator=(TRecnotype n);
TGalileo_iterator& operator++();
operator int() const { return ok(); }
TGalileo_iterator(TGalileo_transfer* pt);
~TGalileo_iterator();
};
///////////////////////////////////////////////////////////
// Cache generica per il trasferimento DDT di Pack
///////////////////////////////////////////////////////////
class TCache_tp : public TCache
{
TGalileo_transfer* _pt;
protected:
void log(const char* msg, int sev) const { _pt->log(msg, sev); }
bool test_write(TIsamfile& file) const { return _pt->test_write(file); }
const TRecordset& recordset() const { return _pt->recordset(); }
TConfig& config() const { return _pt->config(); }
const TString& query_header() const { return _pt->query_header(); }
public:
const TString& get_str(const char* campo) const { return _pt->get_str(campo); }
const TString& get_real_str(const char* campo) const { return _pt->get_real_str(campo); }
long get_long(const char* campo) const { return _pt->get_long(campo); }
virtual const TString& decode(const TToken_string& tokens) pure;
TCache_tp(TGalileo_transfer* pt) : _pt(pt) {}
};
///////////////////////////////////////////////////////////
// Trasferimenti veri e propri
///////////////////////////////////////////////////////////
class TGalileo_clifo : public TGalileo_transfer
{
TDate _data;
TFilename _path;
TAssoc_array _keys;
protected:
int cancella_clifo(TLocalisamfile& clifo) const;
long get_next_key(const char tipocf) const;
long get_codcf(const char tipocf, const char* ricalt) const;
bool aggiorna_record(TIsamfile& file, const TString_array& lista_campi);
public:
virtual bool trasferisci();
virtual bool dump();
void set_data_limite(const TDate& data) { _data = data; }
void set_path(const TString& path) { _path = path; }
const TAssoc_array & keys() const { return _keys;}
TGalileo_clifo();
~TGalileo_clifo();
};
class TGalileo_articoli : public TGalileo_transfer
{
TDate _data;
TFilename _path;
TAssoc_array _keys_articoli;
TAssoc_array _keys_umart;
long _ditta ;
TString _cms, _can;
protected:
int cancella_articolo(TLocalisamfile& clifo) const;
bool aggiorna_record(TIsamfile& file, const TString_array& lista_campi);
public:
virtual bool trasferisci();
virtual bool trasferisci_costi(const TString & ditta, const TString & cms, const TString & can);
virtual bool dump();
const TAssoc_array & keys_articoli() const { return _keys_articoli;}
const TAssoc_array & keys_umart() const { return _keys_umart;}
void set_data_limite(const TDate& data) { _data = data; }
void set_path(const TString& path) { _path = path; }
TGalileo_articoli();
~TGalileo_articoli();
};
class TCache_art;
class TCache_umart;
class TDocumento;
#endif