2016-09-09 13:58:28 +00:00
# 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 <relapp.h>
# endif
# ifndef __PRINTER_H
# include <printer.h>
# 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 ;
2017-07-27 00:00:32 +00:00
int _ncopie ;
2016-09-09 13:58:28 +00:00
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 ) ;
static bool tdoc_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
2017-07-27 00:00:32 +00:00
TMotore_application ( ) : _ncopie ( - 1 ) { }
2016-09-09 13:58:28 +00:00
virtual ~ TMotore_application ( ) { }
2019-11-05 19:01:32 +01:00
bool TMotore_application : : get_next_key ( TToken_string & key ) ;
// virtual const char* get_next_key( );
2017-02-16 14:38:37 +00:00
2017-11-17 15:37:36 +00:00
// Test Plafond
2019-07-23 17:23:41 +02:00
int check_plafond_write ( TDocumento & d ) ;
int check_plafond_rewrite ( TDocumento & d ) ;
bool check_plafond_delete ( TDocumento & d ) ;
2016-09-09 13:58:28 +00:00
} ;
inline TMotore_application & app ( ) { return ( TMotore_application & ) main_app ( ) ; }
# endif