1995-12-04 17:41:06 +00:00
# ifndef __VE0100_H
# define __VE0100_H
1995-08-07 07:59:09 +00:00
1996-08-08 15:57:44 +00:00
# define CHANGE_MESSAGE "Sono state effettuate modifiche alla configurazione.\nPrima di eseguire la gestione documenti occorre rigenerare le maschere.\nDesideri farlo ora ?"
1995-12-04 17:41:06 +00:00
# ifndef __CHECKS_H
# include <checks.h>
# endif
# ifndef __RELAPP_H
# include <relapp.h>
# endif
1997-06-03 15:56:27 +00:00
# ifndef __VELIB_H
# include "velib.h"
1996-08-08 15:57:44 +00:00
# endif
1995-12-04 17:41:06 +00:00
// Definizione della classe dell'applicazione motore
class TMotore_application : public TRelation_application
1996-09-26 15:37:19 +00:00
{
1996-08-12 08:32:28 +00:00
TArray _file ; // Tutti i fiels da usare
1996-09-26 15:37:19 +00:00
1996-08-12 08:32:28 +00:00
TDocumento * _doc ;
1997-06-27 09:21:13 +00:00
TCodice_numerazione * _cod_num ;
1996-08-12 08:32:28 +00:00
1995-12-04 17:41:06 +00:00
// Puntatore al profilo del documento caricato
1996-08-12 08:32:28 +00:00
TConfig * _pro ;
1997-06-03 10:29:42 +00:00
TConfig * _config_ditta ;
1996-08-12 08:32:28 +00:00
1995-12-04 17:41:06 +00:00
// Puntatore alla maschera di ricerca
1997-06-12 16:26:22 +00:00
TMask * _msk ;
TMask * _occas_mask ;
1995-12-04 17:41:06 +00:00
// puntatore alla relazione
1996-08-12 08:32:28 +00:00
TRelation * _rel ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Puntatore allo sheet delle righe documento
1996-03-20 16:15:18 +00:00
TSheet_field * _sheet ;
1996-08-12 08:32:28 +00:00
TCond_vendita * _condv ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Indica se il documento ha come soggetto un <C>liente o un <F>ornitore
char _tipocf ;
1996-11-18 16:12:12 +00:00
TString16 _codnum ;
TString16 _tipodoc ;
1997-09-02 09:55:40 +00:00
bool _ges_mag ;
bool _ges_dep ;
TString16 _std_mag ;
TString16 _std_dep ;
1996-09-26 15:37:19 +00:00
1996-05-03 17:11:39 +00:00
// Array di maschere documento
1996-09-26 15:37:19 +00:00
TAssoc_array _doc_masks ;
1997-06-03 10:29:42 +00:00
TLista_elaborazioni _elab ;
1996-05-03 17:11:39 +00:00
1996-09-26 15:37:19 +00:00
// Ridefinizione dei metodi virtuali
1995-12-04 17:41:06 +00:00
virtual bool user_create ( ) ;
1996-09-26 15:37:19 +00:00
virtual bool user_destroy ( ) ;
1995-12-04 17:41:06 +00:00
virtual TMask * get_mask ( int mode ) ;
virtual bool changing_mask ( int mode ) ;
1996-05-03 17:11:39 +00:00
virtual void init_query_mode ( TMask & m ) ;
1995-12-04 17:41:06 +00:00
virtual void init_insert_mode ( TMask & m ) ;
1997-02-03 15:28:53 +00:00
virtual void init_modify_mode ( TMask & m ) ;
1995-12-04 17:41:06 +00:00
virtual int read ( TMask & m ) ;
virtual int write ( const TMask & m ) ;
virtual int rewrite ( const TMask & m ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Funzioni da associare ad ogni procedura
int user_function ( int index ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
void user_set_handler ( int fieldid , int index , TMask * m = NULL ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
protected :
1996-09-26 15:37:19 +00:00
1996-08-12 08:32:28 +00:00
void open_files ( int logicnum , . . . ) ;
void close_files ( ) { _file . destroy ( ) ; }
virtual void on_firm_change ( ) ;
1995-12-04 17:41:06 +00:00
// Procedure e funzioni per la gestione della maschera e dei files
1996-08-12 08:32:28 +00:00
void update_profile ( ) ;
1996-09-26 15:37:19 +00:00
// Procedure e funzioni per la gestione degli stati
1995-12-04 17:41:06 +00:00
int stato_corrente ( ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Handle che ritorna la maschera per le righe
1996-09-26 15:37:19 +00:00
static TMask * ss_getmask ( int numriga , TMask & fullmask ) ;
1995-12-04 17:41:06 +00:00
// Handler che gestisce la richiesta del tipo riga in inserimento
static bool ss_handler ( TSheet_field & ss , int r , KEY key ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Handler per la maschera di ricerca
static bool ndoc_handler ( TMask_field & f , KEY key ) ;
static bool num_handler ( TMask_field & f , KEY key ) ;
static bool tip_handler ( TMask_field & f , KEY key ) ;
1997-06-12 16:26:22 +00:00
static bool occas_code_handler ( TMask_field & f , KEY key ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Handler per la maschera di modifica
static bool clifo_handler ( TMask_field & f , KEY key ) ;
static bool occas_handler ( TMask_field & f , KEY key ) ;
1996-03-05 16:48:04 +00:00
static bool elabora_handler ( TMask_field & f , KEY key ) ;
1997-02-03 15:28:53 +00:00
static bool print_handler ( TMask_field & f , KEY key ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
// Configurazione dello sheet dato il profilo
void configura_sheet ( TSheet_field & sheet , TConfig & config ) ;
1996-09-26 15:37:19 +00:00
1995-12-04 17:41:06 +00:00
public :
1996-09-26 15:37:19 +00:00
virtual TRelation * get_relation ( ) const { return _rel ; }
1995-12-04 17:41:06 +00:00
// Funzioni di accesso alle variabili private
1996-09-26 15:37:19 +00:00
1996-08-12 08:32:28 +00:00
TConfig & pro ( ) { CHECK ( _pro , " Profilo del documento nullo! " ) ; return * _pro ; }
const TFilename & proname ( ) { return _pro - > name ( ) ; }
TMask & query_mask ( ) { CHECK ( _msk , " Maschera di ricerca nulla! " ) ; return * _msk ; }
1996-08-14 16:51:18 +00:00
TMask & edit_mask ( ) { return ( TMask & ) _doc_masks [ _doc - > tipo ( ) . codice ( ) ] ; }
1996-08-12 08:32:28 +00:00
TRelation & rel ( ) { CHECK ( _rel , " Relazione nulla! " ) ; return * _rel ; }
TSheet_field & sheet ( ) { CHECK ( _sheet , " Sheet nullo! " ) ; return * _sheet ; }
1996-09-26 15:37:19 +00:00
TCond_vendita & condv ( ) { return * _condv ; }
1996-08-13 09:42:35 +00:00
TConfig & config_ditta ( ) { return * _config_ditta ; }
1997-06-03 10:29:42 +00:00
TLista_elaborazioni & elab ( ) { return _elab ; }
1996-09-26 15:37:19 +00:00
TDocumento & doc ( ) { return * _doc ; }
1995-12-04 17:41:06 +00:00
// Operazione
1996-09-26 15:37:19 +00:00
1996-03-20 16:15:18 +00:00
const char tipocf ( ) { return _tipocf ; }
void tipocf ( const char tcf ) { _tipocf = tcf ; }
1996-09-26 15:37:19 +00:00
1996-03-20 16:15:18 +00:00
TSheet_field & ss ( ) const { return * _sheet ; }
1995-12-04 17:41:06 +00:00
TMotore_application ( ) { _pro = NULL ; }
virtual ~ TMotore_application ( ) { if ( _pro ) delete _pro ; }
virtual const char * get_next_key ( ) ;
} ;
1996-09-26 15:37:19 +00:00
inline TMotore_application & app ( ) { return ( TMotore_application & ) main_app ( ) ; }
1995-12-04 17:41:06 +00:00
# endif