#ifndef __VE0100_H #define __VE0100_H //#define CHANGE_MESSAGE "Sono state effettuate modifiche alla configurazione.\nPrima di eseguire la gestione documenti occorre rigenerare le maschere.\nDesideri farlo ora ?" #ifndef __RELAPP_H #include #endif #ifndef __PRINTER_H #include #endif #ifndef __VELIB_H #include "velib.h" #endif // Definizione della classe dell'applicazione motore class TMotore_application : public TRelation_application { TArray _file; // Tutti i file da usare // Puntatore al profilo del documento caricato TConfig * _config_ditta; // Puntatore alla maschera di ricerca TMask * _msk; TDocumento_mask * _docmsk; // puntatore alla relazione TRelation* _rel; TString4 _codnum; TString4 _tipodoc; TString80 __last_key; protected: // Array di maschere documento TAssoc_array _doc_masks; // Ridefinizione dei metodi virtuali virtual bool user_create(); virtual bool user_destroy(); virtual bool menu(MENU_TAG mt); virtual TMask* get_mask(int mode); virtual bool changing_mask(int mode); virtual void init_query_mode(TMask& m); virtual void init_insert_mode(TMask& m); virtual void init_modify_mode(TMask& m); void load_auto_reopen_data(); virtual int read(TMask& m); virtual int write(const TMask& m); virtual int rewrite(const TMask& m); virtual bool remove(); virtual bool has_filtered_cursor() const { return true; } virtual TCursor& get_filtered_cursor() const; virtual bool save_and_new() const; virtual bool can_I_write(const TRelation* rel) const; // Funzioni da associare ad ogni procedura int user_function( int index ); void user_set_handler( int fieldid, int index, TMask* m = NULL ); virtual const char* extra_modules() const { return "dt"; } virtual void on_firm_change(); // Procedure e funzioni per la gestione degli stati int stato_corrente( ); // Handler per la maschera di ricerca static bool ndoc_handler( TMask_field& f, KEY key ); // caricamento Inifile virtual void sheet2ini(TSheet_field& s, TConfig& ini); virtual void ini2mask(TConfig& ini, TMask& m, bool query); virtual bool last_doc(char provv, int anno, const char* codnum, long& ndoc, TDate& datadoc) const; bool save_and_print(bool savedoc, TPrtype mode); virtual const char* record_description(const TRelation& rel) const; public: virtual void do_elab(TDocumento& doc, int w = 0); // w 0=Save; 1=Print; 2=Definitive virtual void print(); virtual void preview(); virtual void mailto(); virtual TRelation* get_relation( ) const { return _rel; } // Funzioni di accesso alle variabili private virtual const char * query_mask_name() { return "ve0100a"; } virtual TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; } virtual TDocumento_mask & edit_mask() const { CHECK( _docmsk, "Maschera di edit nulla!" ); return *_docmsk; } TRelation & rel() { CHECK( _rel, "Relazione nulla!" ); return *_rel; } TSheet_field & sheet() { return edit_mask().sheet(); } TConfig & config_ditta() {return *_config_ditta; } TDocumento & doc() {return edit_mask().doc(); } // Operazione TMotore_application( ) { } virtual ~TMotore_application( ) { } virtual const char* get_next_key( ); }; inline TMotore_application& app() { return (TMotore_application &) main_app(); } #endif