Lavoro di matteo

git-svn-id: svn://10.65.10.50/trunk@1770 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
matteo 1995-08-31 17:32:05 +00:00
parent f8b0972f7d
commit 3359cbd129
9 changed files with 1528 additions and 1002 deletions

View File

@ -1,28 +1,32 @@
#define F_CODTAB 101
#define F_DESNUM 102
#define F_ULTNUM 103
#define F_ULTNUMPROV 104
#define F_PREFISSO 105
#define F_SUFFISSO 106
#define F_ULTDATA 107
#define F_ANNO 108
#define F_TIPODOC1 110
#define F_DESDOC1 111
#define F_TIPODOC2 112
#define F_DESDOC2 113
#define F_TIPODOC3 114
#define F_DESDOC3 115
#define F_TIPODOC4 116
#define F_DESDOC4 117
#define F_TIPODOC5 118
#define F_DESDOC5 119
#define F_TIPODOC6 120
#define F_DESDOC6 121
#define F_TIPODOC7 122
#define F_DESDOC7 123
#define F_TIPODOC8 124
#define F_DESDOC8 125
#define F_TIPODOC9 126
#define F_DESDOC9 127
#define F_TIPODOC10 128
#define F_DESDOC10 129
#define F_CODTAB 101
#define F_DESNUM 102
#define F_ULTNUM 103
#define F_ULTNUMPROV 104
#define F_PREFISSO 105
#define F_SUFFISSO 106
#define F_ULTDATA 107
#define F_ANNO 108
#define F_TIPODOC1 110
#define F_DESDOC1 111
#define F_TIPODOC2 112
#define F_DESDOC2 113
#define F_TIPODOC3 114
#define F_DESDOC3 115
#define F_TIPODOC4 116
#define F_DESDOC4 117
#define F_TIPODOC5 118
#define F_DESDOC5 119
#define F_TIPODOC6 120
#define F_DESDOC6 121
#define F_TIPODOC7 122
#define F_DESDOC7 123
#define F_TIPODOC8 124
#define F_DESDOC8 125
#define F_TIPODOC9 126
#define F_DESDOC9 127
#define F_TIPODOC10 128
#define F_DESDOC10 129
#define F_NUMPROVV 130
#define F_NUMAUTO 131
#define F_ULTDATAPROV 132


View File

@ -2,11 +2,11 @@
TOOLBAR "" 0 20 60 2
#include "toolbar.h"
#include "toolbar.h"
ENDPAGE
PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
PAGE "Numerazione documenti" -1 -1 60 14
GROUPBOX DLG_NULL 75 7
BEGIN
@ -14,12 +14,18 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
FLAG "R"
END
// GROUPBOX DLG_NULL 84 13
// BEGIN
// PROMPT 1 5 ""
// FLAG "R"
// END
STRING F_CODTAB 4
BEGIN
PROMPT 2 2 "Cod. numerazione "
PROMPT 2 2 "Cod. numerazione "
FIELD CODTAB
HELP "Codice numerazione"
USE NUM
HELP "Codice numerazione"
USE NUM
CHECKTYPE REQUIRED
INPUT CODTAB F_CODTAB
DISPLAY "Codice" CODTAB
@ -32,10 +38,10 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
STRING F_DESNUM 50
BEGIN
PROMPT 2 4 "Descrizione "
PROMPT 2 4 "Descrizione "
FIELD S0
HELP "Descrizione numerazione"
USE NUM
HELP "Descrizione numerazione"
USE NUM KEY 2
CHECKTYPE REQUIRED
INPUT S0 F_DESNUM
DISPLAY "Codice" CODTAB
@ -45,251 +51,243 @@ PAGE "Tabella numerazioni Pagina 1/2" -1 -1 60 14
KEY 2
END
NUMBER F_ULTNUM 7 0
BEGIN
PROMPT 2 7 "Numero ultimo documento emesso "
FIELD I0
FLAG "R"
END
NUMBER F_ULTNUMPROV 7 0
BEGIN
PROMPT 2 8 "Numero ultimo documento creato "
FIELD I1
FLAG "R"
END
DATE F_ULTDATA
BEGIN
PROMPT 2 10 "Data emissione ultimo documento "
FIELD D0
END
STRING F_PREFISSO 7
BEGIN
PROMPT 2 12 "Prefisso numerazione "
PROMPT 2 8 "Prefisso per la numerazione "
FIELD S6
END
STRING F_SUFFISSO 7
BEGIN
PROMPT 2 13 "Suffisso numerazione "
PROMPT 2 10 "Suffisso per la numerazione "
FIELD S7
END
STRING F_ANNO 4
BOOLEAN F_NUMPROVV
BEGIN
PROMPT 2 15 "Anno d'esercizio "
FIELD S8
PROMPT 2 12 "Utilizzo della numerazione provvisoria"
FIELD B0
END
BOOLEAN F_NUMAUTO
BEGIN
PROMPT 2 14 "Utilizzo della numerazione automatica"
FIELD B1
END
ENDPAGE
PAGE "Tabella numerazioni Pagina 2/2" -1 -1 60 14
TEXT DLG_NULL
BEGIN
PROMPT 2 2 "Tipi di documento validi per la numerazione"
END
PAGE "Numerazioni documenti pag.2" -1 -1 60 14
GROUPBOX DLG_NULL 64 15
BEGIN
PROMPT 1 1 ""
// FLAG "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 2 "Tipi di documento validi per la numerazione"
END
STRING F_TIPODOC1 4
BEGIN
PROMPT 2 4 ""
USE TIP
INPUT CODTAB F_TIPODOC1
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC1 TIP->CODTAB
OUTPUT F_DESDOC1 TIP->S0
HELP "Tipo di documento 1"
OUTPUT F_TIPODOC1 CODTAB
OUTPUT F_DESDOC1 S0
HELP "Tipo di documento 1"
FIELD S2[1,4]
CHECKTYPE NORMAL
END
STRING F_DESDOC1 50
BEGIN
PROMPT 10 4 ""
FLAG "D"
END
STRING F_DESDOC1 40
BEGIN
PROMPT 12 4 ""
FLAG "D"
END
STRING F_TIPODOC2 4
BEGIN
PROMPT 2 5 ""
USE TIP
INPUT CODTAB F_TIPODOC2
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC2
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC2 TIP->CODTAB
OUTPUT F_DESDOC2 TIP->S0
HELP "Tipo di documento 2"
OUTPUT F_TIPODOC2 CODTAB
OUTPUT F_DESDOC2 S0
HELP "Tipo di documento 2"
FIELD S2[5,8]
CHECKTYPE NORMAL
END
STRING F_DESDOC2 50
BEGIN
PROMPT 10 5 ""
FLAG "D"
END
STRING F_DESDOC2 40
BEGIN
PROMPT 12 5 ""
FLAG "D"
END
STRING F_TIPODOC3 4
BEGIN
PROMPT 2 6 ""
USE TIP
INPUT CODTAB F_TIPODOC3
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC3
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC3 TIP->CODTAB
OUTPUT F_DESDOC3 TIP->S0
HELP "Tipo di documento 3"
OUTPUT F_TIPODOC3 CODTAB
OUTPUT F_DESDOC3 S0
HELP "Tipo di documento 3"
FIELD S2[9,12]
CHECKTYPE NORMAL
END
STRING F_DESDOC3 50
BEGIN
PROMPT 10 6 ""
FLAG "D"
END
STRING F_DESDOC3 40
BEGIN
PROMPT 12 6 ""
FLAG "D"
END
STRING F_TIPODOC4 4
BEGIN
PROMPT 2 7 ""
USE TIP
INPUT CODTAB F_TIPODOC4
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC4
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC4 TIP->CODTAB
OUTPUT F_DESDOC4 TIP->S0
HELP "Tipo di documento 4"
OUTPUT F_TIPODOC4 CODTAB
OUTPUT F_DESDOC4 S0
HELP "Tipo di documento 4"
FIELD S2[13,16]
CHECKTYPE NORMAL
END
STRING F_DESDOC4 50
BEGIN
PROMPT 10 7 ""
FLAG "D"
END
STRING F_DESDOC4 40
BEGIN
PROMPT 12 7 ""
FLAG "D"
END
STRING F_TIPODOC5 4
BEGIN
PROMPT 2 8 ""
USE TIP
INPUT CODTAB F_TIPODOC5
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC5
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC5 TIP->CODTAB
OUTPUT F_DESDOC5 TIP->S0
HELP "Tipo di documento 5"
OUTPUT F_TIPODOC5 CODTAB
OUTPUT F_DESDOC5 S0
HELP "Tipo di documento 5"
FIELD S2[17,20]
CHECKTYPE NORMAL
END
STRING F_DESDOC5 50
BEGIN
PROMPT 10 8 ""
FLAG "D"
END
STRING F_DESDOC5 40
BEGIN
PROMPT 12 8 ""
FLAG "D"
END
STRING F_TIPODOC6 4
BEGIN
PROMPT 2 9 ""
USE TIP
INPUT CODTAB F_TIPODOC6
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC6
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC6 TIP->CODTAB
OUTPUT F_DESDOC6 TIP->S0
HELP "Tipo di documento 6"
OUTPUT F_TIPODOC6 CODTAB
OUTPUT F_DESDOC6 S0
HELP "Tipo di documento 6"
FIELD S2[21,24]
CHECKTYPE NORMAL
END
STRING F_DESDOC6 50
BEGIN
PROMPT 10 9 ""
FLAG "D"
END
STRING F_DESDOC6 40
BEGIN
PROMPT 12 9 ""
FLAG "D"
END
STRING F_TIPODOC7 4
BEGIN
PROMPT 2 10 ""
USE TIP
INPUT CODTAB F_TIPODOC7
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC7
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC7 TIP->CODTAB
OUTPUT F_DESDOC7 TIP->S0
HELP "Tipo di documento 7"
OUTPUT F_TIPODOC7 CODTAB
OUTPUT F_DESDOC7 S0
HELP "Tipo di documento 7"
FIELD S2[25,28]
CHECKTYPE NORMAL
END
STRING F_DESDOC7 50
BEGIN
PROMPT 10 10 ""
FLAG "D"
END
STRING F_DESDOC7 40
BEGIN
PROMPT 12 10 ""
FLAG "D"
END
STRING F_TIPODOC8 4
BEGIN
PROMPT 2 11 ""
USE TIP
INPUT CODTAB F_TIPODOC8
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC8
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC8 TIP->CODTAB
OUTPUT F_DESDOC8 TIP->S0
HELP "Tipo di documento 8"
OUTPUT F_TIPODOC8 CODTAB
OUTPUT F_DESDOC8 S0
HELP "Tipo di documento 8"
FIELD S2[29,32]
CHECKTYPE NORMAL
END
STRING F_DESDOC8 50
BEGIN
PROMPT 10 11 ""
FLAG "D"
END
STRING F_DESDOC8 40
BEGIN
PROMPT 12 11 ""
FLAG "D"
END
STRING F_TIPODOC9 4
BEGIN
PROMPT 2 12 ""
USE TIP
INPUT CODTAB F_TIPODOC9
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC9
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC9 TIP->CODTAB
OUTPUT F_DESDOC9 TIP->S0
HELP "Tipo di documento 9"
OUTPUT F_TIPODOC9 CODTAB
OUTPUT F_DESDOC9 S0
HELP "Tipo di documento 9"
FIELD S2[32,36]
CHECKTYPE NORMAL
END
STRING F_DESDOC9 50
BEGIN
PROMPT 10 12 ""
FLAG "D"
END
STRING F_DESDOC9 40
BEGIN
PROMPT 12 12 ""
FLAG "D"
END
STRING F_TIPODOC10 4
BEGIN
PROMPT 2 13 ""
USE TIP
INPUT CODTAB F_TIPODOC10
DISPLAY "Codice" CODTAB
USE %TIP
INPUT CODTAB F_TIPODOC10
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC10 TIP->CODTAB
OUTPUT F_DESDOC10 TIP->S0
HELP "Tipo di documento 10"
OUTPUT F_TIPODOC10 CODTAB
OUTPUT F_DESDOC10 S0
HELP "Tipo di documento 10"
FIELD S2[37,40]
CHECKTYPE NORMAL
END
STRING F_DESDOC10 50
BEGIN
PROMPT 10 13 ""
FLAG "D"
END
STRING F_DESDOC10 40
BEGIN
PROMPT 12 13 ""
FLAG "D"
END
ENDMASK

View File

@ -1,65 +1,65 @@
#include "ve4.h"
TOOLBAR "" 0 20 60 2
#include "toolbar.h"
ENDPAGE
PAGE "Tabella tipi di documento" -1 -1 60 14
GROUPBOX DLG_NULL 75 7
BEGIN
PROMPT 1 0 ""
FLAG "R"
END
STRING F_CODTAB 4
BEGIN
PROMPT 2 2 "Cod. tipo docum. "
FIELD CODTAB
HELP "Codice tipo documento"
USE %TIP
CHECKTYPE REQUIRED
INPUT CODTAB F_CODTAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESNUM S0
KEY 1
FLAG "UZ"
END
STRING F_DESNUM 50
BEGIN
PROMPT 2 4 "Descrizione "
FIELD S0
HELP "Descrizione tipo documento"
USE %TIP KEY 2
CHECKTYPE REQUIRED
INPUT S0 F_DESNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESNUM S0
KEY 2
END
STRING F_PROFILO 8
BEGIN
PROMPT 2 8 "Profilo documento "
FIELD S4
FLAG "U"
END
STRING F_PSTAMPA 8
BEGIN
PROMPT 2 10 "Profilo stampa documento "
FIELD S5
FLAG "U"
END
ENDPAGE
ENDMASK
#include "ve4.h"
TOOLBAR "" 0 20 60 2
#include "toolbar.h"
ENDPAGE
PAGE "Tabella tipi di documento" -1 -1 60 14
GROUPBOX DLG_NULL 75 7
BEGIN
PROMPT 1 0 ""
FLAG "R"
END
STRING F_CODTAB 4
BEGIN
PROMPT 2 2 "Cod. tipo docum. "
FIELD CODTAB
HELP "Codice tipo documento"
USE %TIP
CHECKTYPE REQUIRED
INPUT CODTAB F_CODTAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESNUM S0
KEY 1
FLAG "UZ"
END
STRING F_DESNUM 50
BEGIN
PROMPT 2 4 "Descrizione "
FIELD S0
HELP "Descrizione tipo documento"
USE %TIP KEY 2
CHECKTYPE REQUIRED
INPUT S0 F_DESNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESNUM S0
KEY 2
END
STRING F_PROFILO 8
BEGIN
PROMPT 2 8 "Profilo documento "
FIELD S4
FLAG "U"
END
STRING F_PSTAMPA 8
BEGIN
PROMPT 2 10 "Profilo stampa documento "
FIELD S5
FLAG "U"
END
ENDPAGE
ENDMASK

View File

@ -1,54 +1,54 @@
TOOLBAR "" 0 20 60 2
#include "toolbar.h"
ENDPAGE
#define F_CODICE 101
#define F_DESCR 102
#define F_PROFILO 103
PAGE "Tipo di riga" -1 -1 60 14
GROUPBOX DLG_NULL 75 7
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING F_CODICE 4
BEGIN
PROMPT 2 2 "Codice "
FIELD CODTAB
FLAGS "U"
USE %TRI
INPUT CODTAB F_CODICE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODICE CODTAB
OUTPUT F_DESCR S0
CHECKTYPE REQUIRED
KEY 1
END
STRING F_DESCR 50
BEGIN
PROMPT 2 4 "Descrizione "
FIELD S0
USE %TRI KEY 2
INPUT S0 F_DESCR
COPY DISPLAY F_CODICE
COPY OUTPUT F_CODICE
CHECKTYPE REQUIRED
KEY 2
END
STRING f_PROFILO 8
BEGIN
PROMPT 2 8 "Profilo "
CHECKTYPE REQUIRED
FIELD S4
END
END
ENDMASK
TOOLBAR "" 0 20 60 2
#include "toolbar.h"
ENDPAGE
#define F_CODICE 101
#define F_DESCR 102
#define F_PROFILO 103
PAGE "Tipo di riga" -1 -1 60 14
GROUPBOX DLG_NULL 75 7
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING F_CODICE 4
BEGIN
PROMPT 2 2 "Codice "
FIELD CODTAB
FLAGS "U"
USE %TRI
INPUT CODTAB F_CODICE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODICE CODTAB
OUTPUT F_DESCR S0
CHECKTYPE REQUIRED
KEY 1
END
STRING F_DESCR 50
BEGIN
PROMPT 2 4 "Descrizione "
FIELD S0
USE %TRI KEY 2
INPUT S0 F_DESCR
COPY DISPLAY F_CODICE
COPY OUTPUT F_CODICE
CHECKTYPE REQUIRED
KEY 2
END
STRING f_PROFILO 8
BEGIN
PROMPT 2 8 "Profilo "
CHECKTYPE REQUIRED
FIELD S4
END
END
ENDMASK

View File

@ -29,7 +29,7 @@
#endif
#ifndef __VEUML_H
#include "f:\u\alex\p.due\ve\VEUML.H"
#include "VEUML.H"
#endif
#ifndef __SHEET_H
@ -56,17 +56,10 @@
#include "VE0100D.H"
#endif
// Handlers per i campi delle bolle
extern bool ora_hndl(TMask_field& field, KEY key);
extern bool codcli_hndl(TMask_field& field, KEY key);
extern bool dummy_hndl(TMask_field& field, KEY key);
// Numero di colonne presenti sullo sheet totale
#define MAX_COLUMNS 22
#define F_LBTIPORIGA 175
#define F_TIPIDOCS 172
// Definizione della classe dell'applicazione motore
class TMotore_application : public TRelation_application
@ -95,9 +88,13 @@ class TMotore_application : public TRelation_application
// Puntatore allo sheet delle righe documento
TSheet_field* _sheet;
// Posizione delle colonne nello sheet
int _pos_cols[ MAX_COLUMNS ];
// Numero di colonne realmente presenti sullo sheet
int _realcols;
// Ridefinizione dei metodi virtuali
// Ridefinizione dei metodi virtuali
virtual bool user_create( );
virtual bool user_destroy( );
virtual TMask* get_mask(int mode);
@ -108,7 +105,6 @@ class TMotore_application : public TRelation_application
virtual bool remove( void );
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual void init_query_mode(TMask&);
// Punti di ingresso per le funzioni utente
@ -157,7 +153,7 @@ protected:
static TMask * ss_getmask( int numriga, TMask& fullmask, bool destroy );
// Handler che gestisce la richiesta del tipo riga in inserimento
static bool ss_handler( int r, KEY key );
static bool ss_handler( TSheet_field& ss, int r, KEY key );
// Handler per la maschera di ricerca
static bool ndoc_handler(TMask_field& f, KEY key);
@ -187,6 +183,9 @@ public:
TMotore_application( ) { _pro = NULL; }
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
virtual const char* get_next_key( );
int numero_colonne( ){ return _realcols; }
int posizione_colonna( int index ){ return _pos_cols[ index ]; }
};
HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( ); }
@ -195,7 +194,8 @@ HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( );
int TMotore_application::user_function( int index )
{
switch( index )
{ case 1:
{
case 1:
break;
default:
yesnofatal_box( "Chiamata ad una procedura utente non definita: %d", index );
@ -210,34 +210,50 @@ int TMotore_application::user_function( int index )
// Da migliorare, mettendo una cache
TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destroy )
{ static TMask* m;
if ( destroy )
{ delete m;
return( NULL ); }
else
{ TFilename nome_proriga( fullmask.get( 103 ) );
nome_proriga.ext( "ini" );
TConfig proriga( nome_proriga );
m = new TMask( proriga.get( "MSK", "MAIN" ) );
return( m ); }
}
{
static TMask* m;
if ( destroy )
{
delete m;
return( NULL );
}
else
{
TFilename nome_proriga( fullmask.get( 103 ) );
nome_proriga.ext( "ini" );
TConfig proriga( nome_proriga );
m = new TMask( proriga.get( "MSK", "MAIN" ) );
int numhandler = proriga.get_int( "NHANDLER", "HANDLERS" );
for( int i = 1; i <= numhandler; i ++ )
{
TString chiave;
chiave.format( "%d", i );
TToken_string riga = proriga.get( chiave, "HANDLERS" );
app().user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
};
return( m );
}
}
real TMotore_application::user_row_calculate( TRectype& r, int index )
{ switch( index )
{ case 100 :
return ( f100( r ) );
break;
default:
CHECK( FALSE, "Tentativo di chiamare una funzione di calcolo riga inesistente!" );
return 0.0;
}
};
{
switch( index )
{
case 100 :
return ( f100( r ) );
break;
default:
CHECK( FALSE, "Tentativo di chiamare una funzione di calcolo riga inesistente!" );
return 0.0;
}
};
void TMotore_application::user_set_handler( int fieldid, int index )
{
switch( index )
{ case 1:
{
case 1:
edit_mask( ).set_handler( fieldid, ora_hndl );
break;
case 2:
@ -247,56 +263,125 @@ void TMotore_application::user_set_handler( int fieldid, int index )
edit_mask( ).set_handler( fieldid, dummy_hndl );
break;
default:
CHECK( FALSE, "tentativo di installare un handler non definito" );
CHECK( FALSE, "Tentativo di installare un handler non definito" );
break;
}
};
bool TMotore_application::ss_handler( int r, KEY key )
bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key )
{
if ( key == K_INS )
{
TMask m( "ve1000b" );
TList_field& listbox = ( TList_field& ) m.field( F_LBTIPORIGA );
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" );
TTable tabtr( "TRI" );
TToken_string keys( "" ), descrs( "" );
for ( int i = 1; i <= numtr; i ++ )
{ TString chiave;
TToken_string item;
chiave.format( "%d", i );
tabtr.zero( );
tabtr.put( "CODTAB", app( ).pro( ).get( chiave, "RIGHE" ) );
tabtr.read( );
keys.add( tabtr.get( "CODTAB" ) );
descrs.add( tabtr.get( "S0" ) );
}
listbox.replace_items( keys, descrs );
if( m.run( ) == K_ESC ) return FALSE;
TMask& m = *app( )._msk1;
TTable tabtr( "%TRI" );
tabtr.zero( );
tabtr.put( "CODTAB", m.get( F_LBTIPORIGA ) );
tabtr.read( );
TToken_string& riga = app( ).sheet( ).row( r );
TToken_string& riga = ss.row( r );
riga.add( 1, 0 );
riga.add( m.get( F_LBTIPORIGA ), 1 );
riga.add( tabtr.get( "S4" ), 2 );
app( ).sheet( ).force_update( );
return TRUE;
}
TFilename nome_proriga( tabtr.get( "S4" ) );
riga.add( nome_proriga, 2 );
nome_proriga.ext( "ini" );
TConfig pro( nome_proriga );
int ncols = pro.get_int( "NCOLS", "COLUMNS" );
// Disabilita tutte le colonne
for( int i = 1; i < app( ).numero_colonne( ); i ++ )
ss.disable_cell ( ss.items( ) - 1, i );
for( i = 1; i < ncols; i ++ )
{
TString16 chiave;
chiave.format( "%d", i );
int coltoenable = pro.get_int( chiave, "COLUMNS" );
ss.enable_cell ( ss.items( ) - 1, app().posizione_colonna( coltoenable ) );
};
ss.force_update( );
app( ).curr_mask( ).send_key( K_ROWEDIT, F_SHEET );
// ss.on_key( K_SPACE );
// ss.edit( ss.items( ) );
/*
nome_proriga.ext( "ini" );
TConfig proriga( nome_proriga );
TMask *sm = new TMask( proriga.get( "MSK", "MAIN" ) );
// int numhandler = proriga.get_int( "NHANDLER", "HANDLERS" );
// for( int i = 1; i <= numhandler; i ++ )
// {
// TString chiave;
// chiave.format( "%d", i );
// TToken_string riga = proriga.get( chiave, "HANDLERS" );
// app().user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
// };
sm->disable( DLG_DELREC );
if ( sm->run( ) == K_ENTER )
{
// Riga inserita, vai col disabilitare le colonne
delete sm;
ss.force_update( ); */
return TRUE;
};
return TRUE;
};
bool TMotore_application::num_handler( TMask_field& f, KEY key )
{
// Ottengo la maschera
TMask& m = f.mask( );
if (key == K_TAB && m.is_running( ) )
{
// Se la numerazione non è specificata,
const TString16 value( m.get( F_CODNUM ) );
if ( value.blank( ) )
{
// Pulisce la descrizione
m.set(F_DESNUM, "" );
// Pulisce i tipi di documento consentiti
m.set(F_TIPIDOCS, "" );
// Pulisce il tipo di documento
m.set(F_TIPODOC, "" );
return TRUE;
}
// Apro la tabella numerazioni
TTable tabnum( "NUM" );
tabnum.read( );
m.set(F_DESNUM, tabnum.get("S0") );
m.set(F_TIPIDOCS, tabnum.get("S2") );
}
tabnum.zero( );
tabnum.put( "CODTAB", value );
if( tabnum.read( ) == NOERR )
{
// Copio la descriozione della numerazione
m.set(F_DESNUM, tabnum.get("S0") );
// Copio i tipi di documento validi per la numerazione
m.set(F_TIPIDOCS, tabnum.get("S2") );
// Se per questa numerazione è abilitata le numerazione provvisoria
if ( tabnum.get_bool ( "B0" ) )
{
// Setta di default la numerazione provvisoria
m.set( F_PROVV, "P" );
// Abilita il campo per la selezione della numerazione
m.enable( F_PROVV );
}
else // Altrimenti ...
{
// Setta la numerazione a definitiva
m.set( F_PROVV, "D" );
// Disabilita il campo per la selezione della numerazione
m.disable( F_PROVV );
};
return TRUE;
}
message_box( "Numerazione non valida!" );
return FALSE;
}
if (key == K_ENTER && m.is_running( ) )
{ // Se la numerazione non è specificata,
const TString16 value( m.get( F_CODNUM ) );
if ( value.blank( ) )
{
message_box( "Occorre una numerazione per inserire un documento!" );
m.first_focus( F_NDOC );
return FALSE;
}
}
return TRUE;
}
@ -305,27 +390,36 @@ bool TMotore_application::tip_handler(TMask_field& f, KEY key)
TMask& m = f.mask( );
if (key == K_TAB && m.is_running( ) )
{
const TString16 value( m.get( F_TIPODOC ) );
if ( value.blank( ) )
{
// Pulisce il profilo
m.set(F_PROFILO, "" );
return TRUE;
}
TString tipi_consentiti( m.get( F_TIPIDOCS ) );
TString tipo( f.get( ) );
if( tipi_consentiti.find( tipo ) % 4 )
{ message_box( "Tipo non valido per la numerazione selezionata!" );
f.set( "" );
return FALSE; }
TTable tabtip( "TIP" );
TTable tabtip( "%TIP" );
tabtip.read( );
m.set(F_DESTIPODOC, tabtip.get("S0") );
m.set(F_PROFILO, tabtip.get("S4") );
};
if (key == K_ENTER && m.is_running( ) )
{ TString tipo( f.get( ) );
if ( ! tipo.blank( ) )
{ TTable tabtip( "TIP" );
{ TTable tabtip( "%TIP" );
tabtip.read( );
m.set(F_PROFILO, tabtip.get("S4") );
}
else
{ message_box( "Occorre un tipo documento per inserire un documento!" );
m.first_focus( F_TIPODOC );
return FALSE; }
return FALSE;
}
}
return TRUE;
}
@ -341,28 +435,14 @@ bool TMotore_application::ndoc_handler(TMask_field& f, KEY key)
doc.put("ANNO", m.get( F_ANNO ) );
doc.put("NDOC", f.get( ) );
if ( doc.read( ) == NOERR )
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
TTable tabtip( "TIP" );
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
tabtip.read( );
m.set(F_PROFILO, tabtip.get("S4") );
m.stop_run( K_AUTO_ENTER );
}
{ m.set(F_TIPODOC, doc.get( "TIPODOC" ) );
TTable tabtip( "%TIP" );
tabtip.put( "CODTAB", doc.get( "TIPODOC" ) );
tabtip.read( );
m.set(F_PROFILO, tabtip.get("S4") );
m.stop_run( K_AUTO_ENTER );
}
}
/* m.set( F_TIPODOC, doc.get( "TIPODOC" );
TTable tabtip( "TIP" );
tabtip.read( );
m.set(F_PROFILO, tabtip.get("S4") );
}
else
{ TString tipodoc = m.get( F_TIPODOC );
if ( ! f.blank( ) )
{ message_box( "Per inserire un nuovo documento occorre\nspecificare il tipo documento!" );
m.first_focus( F_TIPODOC );
return FALSE;
}
}
} */
return TRUE;
}
@ -383,34 +463,39 @@ bool TMotore_application::changing_mask(int mode)
}
void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config )
{ int i;
const int ncols = config.get_int( "NCOLS", "SHEET" );
for( i = 1; i <= ncols; i ++ )
{ TString col;
col.format( "%d", i );
TToken_string sheet_col( config.get( col, "SHEET" ) );
TString descr( sheet_col.get( 1 ) );
if ( ! descr.blank( ) )
sheet.set_column_header( i, descr );
TString size( sheet_col.get( 2 ) );
if ( ! size.blank( ) )
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
sheet.move_column( sheet_col.get_int( 0 ) - 1, i );
}
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
sheet.delete_column( j );
{
_realcols = config.get_int( "NCOLS", "SHEET" );
for( int i = 1; i <= _realcols; i ++ )
{
TString col;
col.format( "%d", i );
TToken_string sheet_col( config.get( col, "SHEET" ) );
const TString descr( sheet_col.get( 1 ) );
if ( ! descr.blank( ) )
sheet.set_column_header( i, descr );
TString size( sheet_col.get( 2 ) );
if ( ! size.blank( ) )
sheet.set_column_width( i, sheet_col.get_int( 2 ) );
int coltomove = sheet_col.get_int( 0 ) - 1;
sheet.move_column( coltomove, i );
_pos_cols[ coltomove ] = i;
};
for ( int j = MAX_COLUMNS; j >= i - 1; j -- )
sheet.delete_column( j );
};
void TMotore_application::get_edit_mask( void )
{
TFilename fn;
fn = query_mask( ).get( F_PROFILO );
query_mask( ).enable(DLG_NEWREC);
// query_mask( ).enable(DLG_NEWREC);
fn.ext( "ini" );
fn.upper( );
if ( _pro )
{ if( (*_proname) == fn ) return;
{
if( (*_proname) == fn )
return;
delete _pro;
};
_pro = new TConfig( fn );
@ -418,15 +503,39 @@ void TMotore_application::get_edit_mask( void )
_proname->upper( );
if ( _msk1 ) delete _msk1;
_msk1 = new TMask( pro( ).get( "MSKFILE", "MAIN" ) );
edit_mask( ).set( F_PROFILO, query_mask( ).get( F_PROFILO ) );
// edit_mask( ).set( F_PROFILO, query_mask( ).get( F_PROFILO ) );
edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) );
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
sheet( ).set_notify( ss_handler );
configura_sheet( *_sheet, *_pro );
TList_field& listbox = ( TList_field& ) _msk1->field( F_LBTIPORIGA );
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" );
TTable tabtr( "%TRI" );
TToken_string keys( "" ), descrs( "" );
for ( int i = 1; i <= numtr; i ++ )
{
TString chiave;
TToken_string item;
chiave.format( "%d", i );
tabtr.zero( );
TString tiporiga( app( ).pro( ).get( chiave, "RIGHE" ) );
tabtr.put( "CODTAB", tiporiga );
if ( tabtr.read( ) == NOERR )
{
keys.add( tabtr.get( "CODTAB" ) );
descrs.add( tabtr.get( "S0" ) );
}
else
{
yesnofatal_box( "Inserito un tipo di riga non valido (%s)", (const char *)tiporiga );
}
}
listbox.replace_items( keys, descrs );
sheet( ).set_getmask( ss_getmask );
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
for( int i = 1; i <= numhandler; i ++ )
{ TString chiave;
for( i = 1; i <= numhandler; i ++ )
{
TString chiave;
chiave.format( "%d", i );
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
@ -460,28 +569,50 @@ void TMotore_application::carica_righe_libere(int from)
{
if (from < 0) from = ss( ).items( );
for (int i = from; i < 20; i++)
set_descr(i, "");
set_descr( i, "" );
ss( ).force_update( );
}
void TMotore_application::init_query_mode(TMask& _mask)
{
_mask.disable( DLG_NEWREC );
}
const char* TMotore_application::get_next_key( )
{
TToken_string _t;
{
TToken_string key;
TMask& m = curr_mask( );
_t.add( F_CODNUM );
_t.add( query_mask( ).get( F_CODNUM ) );
_t.add( F_ANNO );
_t.add( query_mask( ).get( F_ANNO ) );
_t.add( F_PROVV );
_t.add( query_mask( ).get( F_PROVV ) );
_t.add( F_NDOC );
_t.add( prossimo_numero( query_mask( ).get( F_PROVV ) == "P" ) );
return( _t );
TString value = m.get( F_CODNUM );
if ( value.blank( ) )
return NULL;
TTable tabnum( "NUM" );
tabnum.zero( );
tabnum.put( "CODTAB", value );
if( tabnum.read( ) == NOERR )
{
// Se per questa numerazione è abilitata le numerazione automatica
if( tabnum.get_bool ( "B1" ) )
{
TLocalisamfile doc( LF_DOC );
doc.zero( );
doc.put( "CODNUM", value );
doc.put( "ANNO", m.get( F_ANNO ) );
doc.put( "NDOC", 9999999L );
// Se per questa numerazione è abilitata le numerazione provvisoria
if( tabnum.get_bool ( "B0" ) )
{
doc.put( "PROVV", "P" );
}
else // Altrimenti ...
{
doc.put( "PROVV", "D" );
};
if( doc.read( _isgteq ) == NOERR )
{
doc.prev( );
}
long num = ( value == doc.get( "CODNUM" ) ) ? doc.get_long( "NDOC" ) : 0;
key.format( "%d|%d", F_NDOC, num + 1 );
return key;
}
};
return NULL;
}
int TMotore_application::read(TMask& m)
@ -489,7 +620,8 @@ int TMotore_application::read(TMask& m)
azzera_piedi( );
int err = TRelation_application::read( m );
if ( err == NOERR )
{ TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
{
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
TRectype r = rdoc.curr( );
r.zero( );
r.put( "CODNUM", m.get( F_CODNUM ) );
@ -502,19 +634,21 @@ int TMotore_application::read(TMask& m)
f.destroy( );
int last = _righe_rec->last_row( );
for( int i = 1; i <= last; i ++ )
{ TRectype &rec = _righe_rec->row( i, TRUE );
load_riga( f, i - 1, rec );
calcola_riga( rec );
}
{
TRectype &rec = _righe_rec->row( i, TRUE );
load_riga( f, i - 1, rec );
calcola_riga( rec );
}
TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) );
i = s.get_int( );
int j = 0;
while( i != 0 )
{ real strpiede( _piedi[ i ] );
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
i = s.get_int( );
}
{
real strpiede( _piedi[ i ] );
m.set( BASE_PIEDE + ( ++j ), strpiede.stringa( 15 ) );
i = s.get_int( );
}
}
return err;
}
@ -527,79 +661,52 @@ bool TMotore_application::check_key( TLocalisamfile& rdoc, TString16 codnum, boo
( rdoc.get_bool( "PROVV" ) == provv ) );
}
/*
void TMotore_application::read_rdoc(TMask& m)
{
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
TString16 _cod_num = rel( ).lfile( ).get( "CODNUM" );
bool _provv(query_mask( ).get_bool(F_PROVV));
TString16 _anno(query_mask( ).get(F_ANNO));
TString16 _ndoc(query_mask( ).get(F_NDOC));
rdoc.zero( );
rdoc.put("CODNUM", _cod_num);
rdoc.put("PROVV", _provv);
rdoc.put("ANNO", _anno);
rdoc.put("NDOC", _ndoc);
// loop per il caricamento delle righe
for ( int err = rdoc.read(_isgteq); err == NOERR && check_key(rdoc,_cod_num,_provv, _anno, _ndoc ); err = rdoc.next( ) )
{ const numrig = rdoc.get_int( "NRIGA" );
CHECK(numrig > 0, "Documento con numero di riga nullo!!");
const int TipoRiga = rdoc.get_int( "TIPORIGA" );
const TString16 Codart = rdoc.get( "CODART" );
const TString Descr = rdoc.get( "DESCR" );
const TString16 UmQta = rdoc.get( "UMQTA" );
const real Qta = rdoc.get_real( "QTA" );
// add_riga(numrig-1, TipoRiga, (TString &)Codart, (TString &)Descr, (TString &)UmQta, Qta);
// calcola_riga( rdoc );
}
}
*/
int TMotore_application::write(const TMask& m)
{ int err;
if ( esegui_procedura( OP_NUOVO ) != NOERR )
return FALSE;
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
if ( err == NOERR )
{ err = TRelation_application::write( m );
if ( err == NOERR )
{ TSheet_field& f = ss( );
_righe_rec->destroy_rows( );
if ( m.insert_mode( ) )
_righe_rec->renum_key( "NRIGA", 1 );
for ( int i = 0; i < f.items( ); i ++ )
{
TToken_string& t = f.row( i );
TRectype& rec = _righe_rec->row(i + 1, TRUE);
store_riga( f, i, rec );
}
err = _righe_rec->write( );
}
{
int err;
if ( esegui_procedura( OP_NUOVO ) != NOERR )
return FALSE;
err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) );
if ( err == NOERR )
{
err = TRelation_application::write( m );
if ( err == NOERR )
{
TSheet_field& f = ss( );
_righe_rec->destroy_rows( );
if ( m.insert_mode( ) )
_righe_rec->renum_key( "NRIGA", 1 );
for ( int i = 0; i < f.items( ); i ++ )
{
TToken_string& t = f.row( i );
TRectype& rec = _righe_rec->row(i + 1, TRUE);
store_riga( f, i, rec );
}
err = _righe_rec->write( );
}
return err;
};
}
return err;
};
int TMotore_application::rewrite(const TMask& m)
{
if ( ! valida_operazione( OP_MODIFICA ) )
return FALSE;
int err = TRelation_application::rewrite( m );
if ( err == NOERR )
{ TSheet_field& f = ss( );
_righe_rec->destroy_rows( );
if ( m.insert_mode( ) )
_righe_rec->renum_key( "NRIGA", 1 );
for ( int i = 0; i < f.items( ); i ++ )
{
TToken_string& t = f.row( i );
TRectype& rec = _righe_rec->row(i + 1, TRUE);
store_riga( f, i, rec );
}
err = _righe_rec->rewrite( );
}
{
TSheet_field& f = ss( );
_righe_rec->destroy_rows( );
if ( m.insert_mode( ) )
_righe_rec->renum_key( "NRIGA", 1 );
for ( int i = 0; i < f.items( ); i ++ )
{
TToken_string& t = f.row( i );
TRectype& rec = _righe_rec->row(i + 1, TRUE);
store_riga( f, i, rec );
}
err = _righe_rec->rewrite( );
}
return err;
};
@ -625,37 +732,16 @@ int TMotore_application::avanza_numero( bool provv )
int err = tabnum.read( );
if ( err == NOERR )
{ if ( provv )
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
else
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
err = tabnum.rewrite( );
}
{
if ( provv )
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
else
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
err = tabnum.rewrite( );
}
return err;
};
// int TMotore_application::nuovo_documento( )
// {
//
// };
/*int TMotore_application::modifica_documento( )
{
KEY k;
edit_mask( ).autoload( _rel );
k = edit_mask( ).run( );
if ( k == K_SAVE )
{
if ( esegui_procedura( pro( ).indice_procedura( OP_MODIFICA ) ) != NOERR )
return FALSE;
edit_mask( ).autosave( _rel );
rel( ).rewrite( );
};
modify_mode( );
return NOERR;
};*/
bool TMotore_application::remove( void )
{
if ( ! valida_operazione( OP_CANCELLA ) )
@ -666,21 +752,8 @@ bool TMotore_application::remove( void )
void TMotore_application::load_riga( TSheet_field& f, int numrig, TRectype& r )
{
TToken_string& riga = f.row(numrig);
// riga= "";
// riga.add( r.get( "NRIGA" ) );
riga = r.get( "STATORIGA" );
riga.add( r.get( "TIPORIGA" ) );
/*
switch(r.get_int( "TIPORIGA" ) )
{ case 1: riga.add("Merce"); break;
case 2: riga.add("Articolo Merce"); break;
case 3: riga.add("Spese"); break;
case 4: riga.add("Commento"); break;
case 5: riga.add("Omaggio"); break;
default: riga.add("Tipo Errato"); break;
}*/
riga.add( r.get( "PROFRIGA" ) );
riga.add( r.get( "CODMAG" ) );
riga.add( r.get( "CODART" ) );
@ -702,7 +775,6 @@ void TMotore_application::store_riga( TSheet_field& f, int numrig, TRectype& r )
r.put( "ANNO", edit_mask( ).get( F_ANNO ) );
r.put( "PROVV", edit_mask( ).get( F_PROVV ) );
r.put( "NDOC", edit_mask( ).get_long( F_NDOC ) );
// r.put( "NRIGA", riga.get( 0 ) );
r.put( "STATORIGA", riga.get( 0 ) );
r.put( "TIPORIGA", riga.get( 1 ) );
r.put( "PROFRIGA", riga.get( 2 ) );
@ -727,32 +799,36 @@ void TMotore_application::calcola_riga( TRectype& r )
TToken_string s(proriga.get("PROGPIEDE", "MAIN"));
int func = s.get_int( );
while( func )
{ _piedi[ s.get_int( ) ] += user_row_calculate( r, func );
func = s.get_int( );
}
{
_piedi[ s.get_int( ) ] += user_row_calculate( r, func );
func = s.get_int( );
}
}
bool TMotore_application::user_create( )
{ azzera_piedi( );
// Carico la maschera di ricerca dei documenti
_msk = new TMask("VE1000A");
query_mask( ).set_handler( F_NDOC, ndoc_handler );
query_mask( ).set_handler( F_CODNUM, num_handler );
query_mask( ).set_handler( F_TIPODOC, tip_handler );
// La maschera di inserimento/modifica per ora non la so!
// Viene letta dal profilo non appena trovato il record
_msk1 = NULL;
{
azzera_piedi( );
_msk = new TMask("VE1000A");
query_mask( ).set_handler( F_NDOC, ndoc_handler );
query_mask( ).set_handler( F_CODNUM, num_handler );
query_mask( ).set_handler( F_TIPODOC, tip_handler );
// La maschera di inserimento/modifica per ora non la so!
// Viene letta dal profilo non appena trovato il record
_msk1 = NULL;
// Metto in relazione testata e righe
_rel = new TRelation(LF_DOC);
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
// Metto in relazione testata e righe
_rel = new TRelation(LF_DOC);
rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM;ANNO=ANNO;PROVV=PROVV;NDOC=NDOC" );
// Inizializzo il Record_array
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
return TRUE;
}
// Inizializzo il Record_array
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
// Inizializzo l'array con la posizione delle colonne
for( int i = 0; i <= MAX_COLUMNS; i ++ )
_pos_cols[ i ] = -1;
return TRUE;
}
bool TMotore_application::user_destroy( )
{
@ -784,43 +860,47 @@ int TMotore_application::esegui_procedura( int operazione )
bool TMotore_application::valida_operazione( int operazione )
{
if ( operazione != OP_NUOVO )
{ if ( !stato_valido( stato_corrente( ), operazione ) )
{ segnala_stato_non_valido( operazione );
return FALSE;
};
};
{
if ( !stato_valido( stato_corrente( ), operazione ) )
{
segnala_stato_non_valido( operazione );
return FALSE;
}
};
if ( esegui_procedura( operazione ) == NOERR )
return FALSE;
return TRUE;
}
const char * TMotore_application::nome_sezione( int op )
{ switch( op )
{ case OP_NUOVO:
return "INSERIMENTO";
break;
case OP_MODIFICA:
return "MODIFICA";
break;
case OP_CANCELLA:
return "CANCELLAZIONE";
break;
case OP_STAMPA:
return "STAMPA";
break;
case OP_RAGGRUPPA:
return "RAGGRUPPA";
break;
case OP_USER:
return "SPECIALE";
break;
default:
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
// Per evitare la warning
return "";
break;
};
}
{
switch( op )
{
case OP_NUOVO:
return "INSERIMENTO";
break;
case OP_MODIFICA:
return "MODIFICA";
break;
case OP_CANCELLA:
return "CANCELLAZIONE";
break;
case OP_STAMPA:
return "STAMPA";
break;
case OP_RAGGRUPPA:
return "RAGGRUPPA";
break;
case OP_USER:
return "SPECIALE";
break;
default:
CHECK( FALSE, "tentativo di ottenere il nome di una operazione inesistente!" );
// Per evitare la warning
return "";
break;
}
}
int TMotore_application::stato_finale( int operazione )
{

View File

@ -1,16 +1,4 @@
// Handler di marco sui campi delle maschere
#ifndef __VE0100C_H
#include "ve0100c.h"
#endif
#ifndef __VEUML_H
#include "f:\u\alex\p.due\ve\VeUML.h"
#endif
#ifndef __VEUML1_H
#include "f:\u\alex\p.due\ve\VeUML1.h"
#endif
#ifndef __CHECKS_H
#include <checks.h>
#endif
@ -31,9 +19,17 @@
#include <strings.h>
#endif
extern bool ora_hndl(TMask_field& field, KEY key);
extern bool codcli_hndl(TMask_field& field, KEY key);
extern bool dummy_hndl(TMask_field& field, KEY key);
#ifndef __VEUML_H
#include "VeUML.h"
#endif
#ifndef __VEUML1_H
#include "VeUML1.h"
#endif
#ifndef __VE0100C_H
#include "ve0100c.h"
#endif
bool ora_hndl(TMask_field& field, KEY key)
{
@ -94,6 +90,6 @@ bool codcli_hndl(TMask_field& field, KEY key)
bool dummy_hndl(TMask_field& field, KEY key)
{
warning_box("Al campo %d + arrivato un KEY %d",field.dlg(),key);
warning_box("Al campo %d è arrivato un KEY %d",field.dlg(),key);
return TRUE;
}

View File

@ -1 +1,7 @@
#define __VE0100C_H
#define __VE0100C_H
// Handlers per i campi delle bolle
extern bool ora_hndl(TMask_field& field, KEY key);
extern bool codcli_hndl(TMask_field& field, KEY key);
extern bool dummy_hndl(TMask_field& field, KEY key);

File diff suppressed because it is too large Load Diff

View File

@ -74,6 +74,10 @@
#define F_PROFILO 171 // GESTITO DAL MOTORE
#define F_TIPODOC 172 // GESTITO DAL MOTORE
#define F_DESNUM 173 // GESTITO DAL MOTORE
#define F_TIPIDOCS 174
#define F_TIPIDOCS 174 // GESTITO DAL MOTORE
#define F_LBTIPORIGA 175 // GESTITO DAL MOTORE
#define F_DESTIPODOC 176 // GESTITO DAL MOTORE
#define F_DESCF 177 // GESTITO DAL MOTORE
#define DLG_ELABORA 178 // GESTITO DAL MOTORE: bottone Elabora
#define F_ATTIVAANNO 179 // GESTITO DAL MOTORE
#endif // veuml.h