From f5774eac9709c66003d68deaefb970408cef6eb0 Mon Sep 17 00:00:00 2001 From: matteo Date: Fri, 8 Sep 1995 14:18:45 +0000 Subject: [PATCH] oggetto cliente quasi funzionante git-svn-id: svn://10.65.10.50/trunk@1800 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/tclifor.cpp | 157 ++++++++++++++++++----- ve/tclifor.h | 35 +++-- ve/ve0100.cpp | 134 +++++++++++++++---- ve/ve0300.cpp | 182 +++++++++++++++----------- ve/ve0300a.src | 340 ++----------------------------------------------- ve/veini.h | 1 + ve/veuml.h | 2 + 7 files changed, 385 insertions(+), 466 deletions(-) diff --git a/ve/tclifor.cpp b/ve/tclifor.cpp index 1bb1796b6..e3d933ca4 100755 --- a/ve/tclifor.cpp +++ b/ve/tclifor.cpp @@ -6,8 +6,14 @@ #include "veuml1.h" #endif -TCliFor::TCliFor( ) : TRelation( LF_CLIFO ) +#ifndef __VE1000O_H +#include "ve1000o.h" +#endif + + +TCliFor::TCliFor( ) : TRelation( LF_CLIFO ), _occas_mask( "ve1000o" ) { + _occas_mask.set_handler( O_CODICE, occas_code_handler ); add( LF_CFVEN, "TIPOCF=TIPOCF|CODCF=CODCF" ); } @@ -21,6 +27,15 @@ void TCliFor::load( const char tipocf, const long codcf ) read( ); } +void TCliFor::set( TMask& m, const int mskfield, const TString& value ) +{ + if( present( m, mskfield ) ) + { + m.set( mskfield, value, TRUE ); + m.field( mskfield ).check( ); + } +}; + const TString& TCliFor::get( const int file, const TString& fieldname ) { return lfile( file ).get( fieldname ); @@ -39,41 +54,125 @@ long TCliFor::get_long( const int file, const TString& fieldname ) bool TCliFor::get_bool( const int file, const TString& fieldname ) { return lfile( file ).get_bool( fieldname ); +} + +int TCliFor::write_occas( ) +{ + if( !occasionale( ) ) + return NOERR; + TLocalisamfile occas( LF_OCCAS ); + occas.zero( ); + occas.put( "CFPI", occas_mask( ).get( O_CODICE ) ); + occas.put( "RAGSOC", occas_mask( ).get( O_RAGSOC ) ); + occas.put( "INDIR", occas_mask( ).get( O_INDIRIZZO ) ); + occas.put( "CIV", occas_mask( ).get( O_NUMERO ) ); + occas.put( "STATO", occas_mask( ).get( O_STATO ) ); + occas.put( "COM", occas_mask( ).get( O_COMUNE ) ); + occas.put( "CAP", occas_mask( ).get( O_CAP ) ); + occas.put( "DNASC", occas_mask( ).get( O_DATANAS ) ); + occas.put( "STATONASC", occas_mask( ).get( O_STATONAS ) ); + occas.put( "COMNASC", occas_mask( ).get( O_COMUNENAS ) ); + return occas.write( ); } -void TCliForVendite::set_mask( TMask* mask ) +const TString& TCliFor::get( const TString& table, const TString& codtab, const TString& field ) { - _mask = mask; + if( table != _tablename ) + { + delete _table; + _table = new TTable( table ); + _tablename = table; + } + if( codtab != _table->curr( ).get( "CODTAB" ) ) + { + _table->zero( ); + _table->put( "CODTAB", codtab ); + _table->read( ); + } + return _table->get( field ); }; -void TCliForVendite::update_mask( ) -{ - TMask& m = *_mask; - - // Setta i campi che appartengono al file LF_CLIFO - +void TCliForVendite::update_mask( TMask& m ) +{ + // Setta i campi che appartengono al file LF_CLIFO + bool occas = occasionale( ); + show( m, F_OCFPI, occas ); + show( m, F_OCCASEDIT, occas ); + // In forse per l'Occasionale, sicuri per il Normale + // m.show( F_COFI, !occas ); + // m.show( F_STATOPAIV, !occas ); + // m.show( F_PAIVA, !occas ); + set( m, F_RAGSOC, LF_CLIFO, "RAGSOC" ); + set( m, F_CODVAL, LF_CLIFO, "CODVAL" ); + set( m, F_CODLIN, LF_CLIFO, "CODLIN" ); + set( m, F_CODPAG, LF_CLIFO, "CODPAG" ); + set( m, F_DATAINSC, m.get( F_DATADOC ) ); + set( m, F_CODABIA, LF_CLIFO, "CODABI" ); + set( m, F_CODCABA, LF_CLIFO, "CODCAB" ); + // Setta i campi che appartengono al file LF_CFVEN + set( m, F_CODABIP, LF_CFVEN, "CODABIPR" ); + set( m, F_CODCABP, LF_CFVEN, "CODCABPR" ); + set( m, F_RAGGR, LF_CFVEN, "RAGGDOC" ); + set( m, F_CODINDSP, LF_CFVEN, "CODINDSP" ); + set( m, F_CODAG, LF_CFVEN, "CODAG" ); + set( m, F_CODSPMEZZO, LF_CFVEN, "CODSPMEZZO" ); + set( m, F_CODPORTO, LF_CFVEN, "CODPORTO" ); + set( m, F_CODNOTESP1, LF_CFVEN, "CODNOTESP1" ); + set( m, F_CODNOTESP2, LF_CFVEN, "CODNOTESP2" ); + set( m, F_CODVETT1, LF_CFVEN, "CODVETT1" ); + set( m, F_CODVETT2, LF_CFVEN, "CODVETT2" ); + set( m, F_CODVETT3, LF_CFVEN, "CODVETT3" ); + set( m, F_SPESEINC, LF_CFVEN, "ADDSPINC" ); + set( m, F_ADDBRB, LF_CFVEN, "ADDBOLLIRB" ); + set( m, F_ADDBTR, LF_CFVEN, "ADDBOLLITR" ); if ( occasionale ( ) ) - { + { + set( m, F_COFI, "" ); + set( m, F_PAIVA, "" ); + set( m, F_OCFPI, occas_mask( ).get( O_CODICE ) ); + set( m, F_RAGSOC, occas_mask( ).get( O_RAGSOC ) ); + set( m, F_INDCF, occas_mask( ).get( O_INDIRIZZO ) ); + set( m, F_CIVCF, occas_mask( ).get( O_NUMERO ) ); + set( m, F_CAPCF, occas_mask( ).get( O_CAP ) ); + set( m, F_COMCF, occas_mask( ).get( O_COMUNE ) ); + set( m, F_STATOCF, occas_mask( ).get( O_STATO ) ); } else { - if( m.id2pos( F_RAGSOC ) >= 0 ) - m.set( F_RAGSOC, get( LF_CLIFO, "RAGSOC" ) ); - if( m.id2pos( F_INDCF ) >= 0 ) - m.set( F_INDCF, get( LF_CLIFO, "INDCF" ) ); - if( m.id2pos( F_CIVCF ) >= 0 ) - m.set( F_CIVCF, get( LF_CLIFO, "CIVCF" ) ); - if( m.id2pos( F_STATOPAIVA ) >= 0 ) - m.set( F_STATOPAIVA, get( LF_CLIFO, "STATOPAIVA" ) ); - if( m.id2pos( F_LOCALITACF ) >= 0 ) - m.set( F_LOCALITACF, get( LF_CLIFO, "LOCALITACF" ) ); - if( m.id2pos( F_CAPCF ) >= 0 ) - m.set( F_CAPCF, get( LF_CLIFO, "CAPCF" ) ); - if( m.id2pos( F_COMCF ) >= 0 ) - m.set( F_COMCF, get( LF_CLIFO, "COMCF" ) ); - if( m.id2pos( F_PROVCOM ) >= 0 ) - m.set( F_PROVCOM, get( LF_CLIFO, "PROVCOM" ) ); - if( m.id2pos( F_STATOCF ) >= 0 ) - m.set( F_STATOCF, get( LF_CLIFO, "STATOCF" ) ); + set( m, F_COFI, LF_CLIFO, "COMCF" ); + set( m, F_INDCF, LF_CLIFO, "INDCF" ); + set( m, F_CIVCF, LF_CLIFO, "CIVCF" ); + set( m, F_STATOPAIVA, LF_CLIFO, "STATOPAIV" ); + set( m, F_PAIVA, LF_CLIFO, "PAIV" ); + set( m, F_LOCALITACF, LF_CLIFO, "LOCALITACF" ); + set( m, F_CAPCF, LF_CLIFO, "CAPCF" ); + set( m, F_COMCF, LF_CLIFO, "COMCF" ); + set( m, F_STATOCF, LF_CLIFO, "STATOCF" ); } -} \ No newline at end of file +} + +void TCliFor::edita_occasionale( ) +{ + CHECK( occasionale( ), "Impossibile editare come occasionale un cliente non occasionale!" ); + _occas_mask.run( ); +}; + +bool TCliFor::occas_code_handler(TMask_field& f, KEY key) +{ + if (key == K_TAB) + { + const char* code = f.get(); + if (*code) + { + TRelation occas(LF_OCCAS); + occas.lfile().put("CFPI", code); + if (occas.read(_isequal) == NOERR) + { + f.mask().autoload(&occas); + f.mask().send_key(K_TAB, O_COMUNE); // Forza decodifica comuni + f.mask().send_key(K_TAB, O_COMUNENAS); + } + } + } + return TRUE; +} diff --git a/ve/tclifor.h b/ve/tclifor.h index 34b7efaf3..207b2c0ec 100755 --- a/ve/tclifor.h +++ b/ve/tclifor.h @@ -9,6 +9,11 @@ #include #endif +#ifndef __TABUTIL_H +#include +#endif + + #ifndef __MASK_H #include #endif @@ -18,29 +23,39 @@ class TCliFor : public TRelation private: char _tipocf; - long _codcf; + long _codcf; + TTable* _table; + TString16 _tablename; + + TMask _occas_mask; public: TCliFor( ); void load( const char tipocf, const long codcf ); + const TString& get( const TString& table, const TString& codtab, const TString& field ); const TString& get( const int file, const TString& fieldname ); int get_int( const int file, const TString& fieldname ); long get_long( const int file, const TString& fieldname ); bool get_bool( const int file, const TString& fieldname ); - bool occasionale( ){ return TRUE; }; + bool occasionale( ){ return get_bool( LF_CLIFO, "OCCAS" ); }; + TMask& occas_mask( ){ return _occas_mask; }; + static bool occas_code_handler(TMask_field& f, KEY key); + bool present( TMask& m, const int mskfield ){ return ( m.id2pos( mskfield ) >= 0 ); } + void set( TMask& m, const int mskfield, const int file, const TString& filefield ){ set( m, mskfield, get( file, filefield ) ); }; + void set( TMask& m, const int mskfield, const TString& value ); + void show( TMask& m, const int mskfield, const bool show = TRUE ){ if( present( m, mskfield ) ) m.show( mskfield, show ); }; + void hide( TMask& m, const int mskfield ){ show( m, mskfield, FALSE ); }; + int write_occas( ); + void edita_occasionale( ); + }; class TCliForVendite : public TCliFor -{ - private: - - TMask * _mask; - +{ public: - - void set_mask( TMask* mask ); - void update_mask( ); + + void update_mask( TMask& m ); }; #endif diff --git a/ve/ve0100.cpp b/ve/ve0100.cpp index 15a6735ff..8a97ea50c 100755 --- a/ve/ve0100.cpp +++ b/ve/ve0100.cpp @@ -49,17 +49,21 @@ #endif #ifndef __VE0100C_H -#include "ve0100C.h" +#include "ve0100c.h" #endif #ifndef __VE0100D_H -#include "ve0100D.h" +#include "ve0100d.h" #endif #ifndef __TCLIFOR_H #include "tclifor.h" #endif +#ifndef __VE1000O_H +#include "ve1000o.h" +#endif + // Numero di colonne presenti sullo sheet totale #define MAX_COLUMNS 22 @@ -91,7 +95,13 @@ class TMotore_application : public TRelation_application // Puntatore allo sheet delle righe documento TSheet_field* _sheet; - + + // Oggetto cliente per il motore + TCliForVendite* _clifor; + + // Indica se il documento ha come soggetto un liente o un ornitore + char _tipocf; + // Ridefinizione dei metodi virtuali virtual bool user_create( ); virtual bool user_destroy( ); @@ -112,7 +122,7 @@ class TMotore_application : public TRelation_application // Funzioni per il calcolo delle righe real user_row_calculate( TRectype& row, int index ); - void user_set_handler( int fieldid, int index ); + void user_set_handler( int fieldid, int index, TMask* m = NULL ); long prossimo_numero( bool provv ); int avanza_numero( bool provv ); @@ -156,7 +166,11 @@ protected: // 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); + static bool tip_handler(TMask_field& f, KEY key); + + // Handler per la maschera di modifica + static bool clifo_handler(TMask_field& f, KEY key); + static bool occas_handler(TMask_field& f, KEY key); // Configurazione dello sheet dato il profilo void configura_sheet( TSheet_field& sheet, TConfig& config ); @@ -171,10 +185,13 @@ public: TMask& query_mask( ) { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }; TMask& edit_mask( ) { CHECK( _msk1, "Maschera di modifica nulla!" ); return *_msk1; }; TRelation& rel( ) { CHECK( _rel, "Relazione nulla!" ); return *_rel; }; - TSheet_field& sheet( ) { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; }; + TSheet_field& sheet( ) { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; }; + TCliForVendite& clifo( ) { CHECK( _clifor, "Oggetto cliente nullo!" ); return *_clifor; }; // Operazione + const char tipocf( ){ return _tipocf; } + void tipocf( const char tcf ){ _tipocf = tcf; } bool valida_operazione( int operazione ); TSheet_field& ss( ) const { return *_sheet; } @@ -225,7 +242,7 @@ TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destr 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 ) ); + app().user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ), m ); }; return( m ); } @@ -259,24 +276,25 @@ real TMotore_application::user_row_calculate( TRectype& r, int index ) } }; -void TMotore_application::user_set_handler( int fieldid, int index ) +void TMotore_application::user_set_handler( int fieldid, int index, TMask* m ) { + if( !m ) + m = &edit_mask( ); switch( index ) { case 1: - edit_mask( ).set_handler( fieldid, ora_hndl ); + m->set_handler( fieldid, ora_hndl ); break; case 2: - edit_mask( ).set_handler( fieldid, codcli_hndl ); + m->set_handler( fieldid, codcli_hndl ); break; case 3: - edit_mask( ).set_handler( fieldid, dummy_hndl ); + m->set_handler( fieldid, dummy_hndl ); break; default: CHECK( FALSE, "Tentativo di installare un handler non definito" ); break; } - }; bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key ) @@ -390,6 +408,18 @@ bool TMotore_application::num_handler( TMask_field& f, KEY key ) return TRUE; } +bool TMotore_application::occas_handler(TMask_field& f, KEY key) +{ + if (key == K_SPACE && f.mask( ).is_running( ) ) + { + TMask& om = app( ).clifo( ). occas_mask( ); + om.run( ); + f.set_focus( ); + } + return TRUE; +} + + bool TMotore_application::tip_handler(TMask_field& f, KEY key) { TMask& m = f.mask( ); @@ -455,16 +485,68 @@ bool TMotore_application::ndoc_handler(TMask_field& f, KEY key) doc.put("NDOC", f.get( ) ); if ( doc.read( ) == NOERR ) { m.set(F_TIPODOC, doc.get( "TIPODOC" ) ); + m.set(F_STATO, doc.get( "STATO" ) ); TTable tabtip( "%TIP" ); tabtip.put( "CODTAB", doc.get( "TIPODOC" ) ); tabtip.read( ); - m.set(F_PROFILO, tabtip.get("S4") ); + m.set(F_PROFILO, tabtip.get("S4") ); m.stop_run( K_AUTO_ENTER ); } } return TRUE; } +bool TMotore_application::clifo_handler(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.active()) + { + TMask& m = f.mask(); + + const char cf = app().tipocf(); + TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file(); + + if (clifo.get_char("TIPOCF") != cf || clifo.get("CODCF") != f.get()) + { + clifo.setkey(1); + clifo.put("TIPOCF", cf); + clifo.put("CODCF", f.get()); + clifo.read(); + CHECK(clifo.good(), "Impossibile ritrovare il clifo" ); + } + CHECKD(f.is_edit(), "Can't check suspension of a non edit-field ", f.dlg()); + const TEdit_field& c = (const TEdit_field&)f; + const TBrowse* b = c.browse(); + CHECKD(b, "Can't check suspension of a edit-field without a USE ", f.dlg()); + const TLocalisamfile& i = b->cursor()->file(); + // Tabella File + const char* sf = i.tab() ? "B2" : "SOSPESO"; + const bool suspended = i.get_bool(sf); + if (suspended) + { + sf = f.get(); + return f.error_box("Il codice '%s' e' sospeso e non puo' essere utilizzato", sf); + } + /* + if (!m.is_running() || f.dirty()) + { + // Equichecazzociva? + + } + */ + + app().clifo( ).load( cf, atol( f.get( ) ) ); + // Disabilitazioni varie, ma le demando all'oggetto cliente + if (f.focusdirty()) + { + app().clifo( ).update_mask( m ); + if ( app( ).clifo( ).occasionale( ) && app( ).clifo( ).occas_mask( ).get(O_CODICE).empty( ) ) + m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali + } + } + return TRUE; +} + + void TMotore_application::azzera_piedi( ) { @@ -525,6 +607,8 @@ void TMotore_application::get_edit_mask( void ) edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) ); _sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET); sheet( ).set_notify( ss_handler ); + TString tipocf( app( ).pro( ).get( "TIPOCF", "MAIN" ) ); + app( ).tipocf( tipocf[ 0 ] ); configura_sheet( *_sheet, *_pro ); TList_field& listbox = ( TList_field& ) _msk1->field( F_LBTIPORIGA ); const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" ); @@ -568,7 +652,8 @@ TMask* TMotore_application::get_mask( int mode ) case MODE_MOD: get_edit_mask( ); edit_mask( ).enable( DLG_PRINT, ( mode == MODE_MOD ) ); - edit_mask( ).enable( 99, ( mode == MODE_MOD ) ); + edit_mask( ).set_handler( F_OCCASEDIT, occas_handler ); + edit_mask( ).set_handler( F_CODCF, clifo_handler ); return ( _msk1 ); break; default: @@ -636,6 +721,7 @@ const char* TMotore_application::get_next_key( ) int TMotore_application::read(TMask& m) { azzera_piedi( ); + clifo( ).occas_mask( ).reset( ); int err = TRelation_application::read( m ); if ( err == NOERR ) { @@ -646,8 +732,7 @@ int TMotore_application::read(TMask& m) r.put( "PROVV", m.get( F_PROVV ) ); r.put( "ANNO", m.get( F_ANNO ) ); r.put( "NDOC", m.get_long( F_NDOC ) ); - _righe_rec->read( r ); - + _righe_rec->read( r ); TSheet_field& f = (TSheet_field&) m.field( F_SHEET ); f.destroy( ); int last = _righe_rec->last_row( ); @@ -656,8 +741,7 @@ int TMotore_application::read(TMask& m) 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; @@ -685,6 +769,11 @@ int TMotore_application::write(const TMask& m) if ( esegui_procedura( OP_NUOVO ) != NOERR ) return FALSE; err = NOERR; // avanza_numero( m.get_bool( F_PROVV ) ); + if ( err == NOERR ) + { + err = app( ).clifo( ).write_occas( ); + } + if ( err == NOERR ) { err = TRelation_application::write( m ); @@ -826,14 +915,7 @@ void TMotore_application::calcola_riga( TRectype& r ) bool TMotore_application::user_create( ) { - TCliFor C; - C.load( 'C', 1 ); - TString s; - TString s1( C.get( LF_CLIFO, "RAGSOC" ) ); - TString s2( C.get( LF_CFVEN, "CODINDDOC" ) ); - s.format( "%s:%d", ( const char * )s1, atoi( s2 ) ); - message_box( ( const char * ) s ); - + _clifor = new TCliForVendite( ); azzera_piedi( ); _msk = new TMask("VE1000A"); query_mask( ).set_handler( F_NDOC, ndoc_handler ); diff --git a/ve/ve0300.cpp b/ve/ve0300.cpp index 2fbb3b777..06c105ec7 100755 --- a/ve/ve0300.cpp +++ b/ve/ve0300.cpp @@ -47,22 +47,13 @@ #include "veuml.h" #endif -// Costanti simboliche per i tipi di campo +#ifndef __LFFILES_H +#include "lffiles.h" +#endif -#define T_DATE 1 -#define T_STRING 2 -#define T_NUMBER 3 -#define T_BOOLEAN 4 -#define T_LISTBOX 5 -#define T_MEMO 6 -#define T_GROUPBOX 7 - -// Costanti simboliche per flags del campo - -#define FS_HIDDEN 0 -#define FS_DISABLED 1 -#define FS_NORMAL 2 -#define FS_REQUIRED 3 +#ifndef __VEINI_H +#include "veini.h" +#endif // Significato delle colonne nella tabella _tab0300b #define B_NOME 0 @@ -145,6 +136,7 @@ public: // USE void use( const TString& s ){ outline( s, "US " ); }; + void use( const int file, const int key ){ _out << "US " << file << " KEY " << key << "\n"; }; // DISPLAY void display( const TString& s ){ outline( s, "DI " ); }; @@ -199,7 +191,7 @@ void TMaschera::check( const int i ) { switch( i ) { - case FS_REQUIRED: + case S_OBBLIGATORIO: outline ( "CH REQUIRED" ); break; default: @@ -212,27 +204,30 @@ void TMaschera::control( const int type, const int id, const int size ) { switch ( type ) { - case T_DATE: + case T_DATA: _out << "DA"; break; - case T_STRING: + case T_STRINGA: _out << "ST"; break; - case T_BOOLEAN: + case T_CHECKBOX: _out << "BO"; break; - case T_NUMBER: + case T_NUMERO: _out << "NU"; break; - case T_LISTBOX: + case T_LISTA: _out << "LI"; break; case T_MEMO: _out << "ME"; break; - case T_GROUPBOX: + case T_CORNICE: _out << "GR"; break; + case T_BOTTONE: + _out << "BU"; + break; } _out << " " << id; if ( size > 0 ) @@ -458,7 +453,7 @@ void TField::genera( TMaschera& m ) { TString s; - if ( _stato == FS_HIDDEN ) + if ( _stato == S_NASCOSTO ) return; if ( _size != 0 ) m.control( _type, _id, _size ); @@ -467,20 +462,14 @@ void TField::genera( TMaschera& m ) m.begin(); switch( _stato ) { - case FS_HIDDEN: - m.prompt( 2, 2 ); - s = "H"; - s << _flag; - m.flag( s ) ; - break; - case FS_DISABLED : + case S_DISABILITATO : m.prompt( _x, _y + m.line( ), _prompt ); s = "D"; s << _flag; m.flag( s ) ; break; - case FS_NORMAL : - case FS_REQUIRED : + case S_NORMALE : + case S_OBBLIGATORIO : m.prompt( _x, _y + m.line( ), _prompt ); m.flag( _flag ); break; @@ -748,7 +737,7 @@ int TMask_generator::stato_del_campo( TString campo ) // Utilizza poi la minore delle due. TToken_string config( _fieldsini.get( "CONFIGS", campo ) ); int items = config.items( ); - int stato = FS_REQUIRED; + int stato = S_OBBLIGATORIO; for ( int i = 0; i < items; i += 3 ) { TString chiave = config[ i ]; TString valore = config[ i + 1 ]; @@ -762,7 +751,7 @@ int TMask_generator::stato_del_campo( TString campo ) TString gruppo ( _fieldsini.get( "GROUP", campo ) ); gruppo.trim( ); config = ( _groupsini.get( "CONFIGS", gruppo ) ); - int stato_gruppo = FS_REQUIRED; + int stato_gruppo = S_OBBLIGATORIO; for ( i = 0; i < items; i += 3 ) { TString chiave = config[ i ]; TString valore = config[ i + 1 ]; @@ -797,68 +786,68 @@ void TMask_generator::intestazione_pagina( ) _m->page( _m->page( ) + 1 ); _m->pagina( _m->page( ) ); - _m->control( T_GROUPBOX, DLG_NULL, 7806 ); + _m->control( T_CORNICE, DLG_NULL, 7806 ); _m->begin( ); _m->prompt( 1, 0, "" ); _m->end( ); - _m->control( T_STRING, DLG_NULL, 4 ); + _m->control( T_STRINGA, DLG_NULL, 4 ); _m->begin(); _m->prompt( 2, 1, "Cod. num. " ); _m->group( 2 ); _m->flag( "DUZ" ); _m->end(); - _m->control( T_STRING, DLG_NULL, 50 ); + _m->control( T_STRINGA, DLG_NULL, 50 ); _m->begin(); _m->prompt( 24, 1 ); _m->flag( "DU" ); _m->group( 3 ); _m->end(); - _m->control( T_STRING, DLG_NULL, 4 ); + _m->control( T_STRINGA, DLG_NULL, 4 ); _m->begin(); _m->prompt( 2, 2, "Tipo doc. " ); _m->flag( "DU" ); _m->group( 4 ); _m->end(); - _m->control( T_STRING, DLG_NULL, 50 ); + _m->control( T_STRINGA, DLG_NULL, 50 ); _m->begin(); _m->prompt( 24, 2 ); _m->flag( "DU" ); _m->group( 5 ); _m->end(); - _m->control( T_NUMBER, DLG_NULL, 6 ); + _m->control( T_NUMERO, DLG_NULL, 6 ); _m->begin(); _m->prompt( 2, 3, "Doc.: nr. " ); _m->group( 6 ); _m->flag( "D" ); _m->end(); - _m->control( T_DATE ); + _m->control( T_DATA ); _m->begin(); _m->prompt( 24, 3, "Data " ); _m->group( 7 ); _m->flag( "D" ); _m->end(); - _m->control( T_NUMBER, DLG_NULL, 1 ); + _m->control( T_NUMERO, DLG_NULL, 1 ); _m->begin(); _m->prompt( 50, 3, "Stato " ); _m->group( 8 ); _m->flag( "D" ); _m->end(); - _m->control( T_STRING, DLG_NULL, 4 ); + _m->control( T_STRINGA, DLG_NULL, 4 ); _m->begin(); _m->prompt( 66, 3, "Es. " ); _m->flag( "D" ); _m->group( 9 ); _m->end(); - _m->control( T_STRING, DLG_NULL, 6 ); + _m->control( T_STRINGA, DLG_NULL, 6 ); _m->begin(); if ( _pro->get( "TIPOCF", "MAIN" ) == "C" ) _m->prompt( 2, 4, "Cliente " ); @@ -868,7 +857,7 @@ void TMask_generator::intestazione_pagina( ) _m->group( 10 ); _m->end(); - _m->control( T_STRING, DLG_NULL, 50 ); + _m->control( T_STRINGA, DLG_NULL, 50 ); _m->begin(); _m->prompt( 24, 4, "" ); _m->flag( "D" ); @@ -879,37 +868,40 @@ void TMask_generator::intestazione_pagina( ) void TMask_generator::genera( ) { - int i; + int i; + TString temp_s; + // Definizione della toolbar _m->outline( "TOOLBAR \"\" 0 20 0 2" ); - _m->outline( "BU 18 8 2" ); + + _m->control( T_BOTTONE, 18, 802 ); _m->begin(); _m->prompt( -15, -1, "~Registra" ); _m->message( "EXIT,20082" ); _m->end(); - _m->outline( "BU 17 8 2" ); + _m->control( T_BOTTONE, 17, 802 ); _m->begin(); _m->prompt( -25, -1, "~Elimina" ); _m->message( "EXIT,127" ); _m->end(); - _m->outline( "BU 99 8 2" ); + _m->control( T_BOTTONE, 99, 802 ); _m->begin(); _m->prompt( -35, -1, "E~labora" ); _m->message( "EXIT,345" ); _m->end(); - _m->outline( "BU 24 8 2" ); + _m->control( T_BOTTONE, 24, 802 ); _m->begin(); _m->prompt( -45, -1 ); _m->message( "EXIT,346" ); _m->end(); - _m->outline( "BU 2 8 2" ); + _m->control( T_BOTTONE, 2, 802 ); _m->begin(); _m->prompt( -55, -1 ); _m->message( "EXIT,27" ); @@ -923,12 +915,12 @@ void TMask_generator::genera( ) _m->outline( "PA \"Pagina \" 11 60 14" ); - _m->control( T_GROUPBOX, DLG_NULL, 7806 ); + _m->control( T_CORNICE, DLG_NULL, 7806 ); _m->begin( ); _m->prompt( 1, 0, "" ); _m->end( ); - _m->control( T_STRING, F_CODNUM, 4 ); + _m->control( T_STRINGA, F_CODNUM, 4 ); _m->begin(); _m->prompt( 2, 1, "Cod. num. " ); _m->field( "CODNUM" ); @@ -936,78 +928,126 @@ void TMask_generator::genera( ) _m->message( "CO,2@" ); _m->end(); - _m->control( T_STRING, F_DESNUM, 50 ); + _m->control( T_STRINGA, F_DESNUM, 50 ); _m->begin(); _m->prompt( 24, 1 ); _m->flag( "GDU" ); _m->message( "CO,3@" ); _m->end(); - _m->control( T_STRING, F_TIPODOC, 4 ); + _m->control( T_STRINGA, F_TIPODOC, 4 ); _m->begin(); _m->prompt( 2, 2, "Tipo doc. " ); _m->flag( "GDU" ); _m->message( "CO,4@" ); _m->end(); - _m->control( T_STRING, F_TIPOCF, 1 ); + _m->control( T_STRINGA, F_TIPOCF, 1 ); _m->begin(); _m->prompt( 2, 2, "Tipo CF " ); + _m->field( "TIPOCF" ); _m->flag( "H" ); _m->end(); - _m->control( T_STRING, F_DESTIPODOC, 50 ); + _m->control( T_STRINGA, F_PROVV, 1 ); + _m->begin(); + _m->prompt( 2, 2, "

" ); + _m->field( "PROVV" ); + _m->flag( "H" ); + _m->end(); + + + _m->control( T_STRINGA, F_DESTIPODOC, 50 ); _m->begin(); _m->prompt( 24, 2 ); _m->flag( "GDU" ); _m->message( "CO,5@" ); _m->end(); - _m->control( T_NUMBER, F_NDOC, 6 ); + _m->control( T_NUMERO, F_NDOC, 6 ); _m->begin(); _m->prompt( 2, 3, "Doc.: nr. " ); + _m->field( "NDOC" ); _m->message( "CO,6@" ); _m->flag( "GDR" ); _m->end(); - _m->control( T_DATE, F_DATADOC ); + _m->control( T_DATA, F_DATADOC ); _m->begin(); _m->prompt( 24, 3, "Data " ); + _m->field( "DATADOC" ); _m->message( "CO,7@" ); _m->flag( "" ); _m->end(); - _m->control( T_NUMBER, F_STATO, 1 ); + _m->control( T_NUMERO, F_STATO, 1 ); _m->begin(); _m->prompt( 50, 3, "Stato " ); + _m->field( "STATO" ); _m->message( "CO,8@" ); _m->flag( "D" ); _m->end(); - _m->control( T_STRING, F_ANNO, 4 ); + _m->control( T_STRINGA, F_ANNO, 4 ); _m->begin(); _m->prompt( 66, 3, "Es. " ); + _m->field( "ANNO" ); _m->flag( "GD" ); _m->message( "CO,9@" ); _m->end(); - _m->control( T_STRING, F_CODCF, 6 ); + _m->control( T_STRINGA, F_CODCF, 6 ); _m->begin(); if ( _pro->get( "TIPOCF", "MAIN" ) == "C" ) + { _m->prompt( 2, 4, "Cliente " ); + _m->warning( "Cliente assente" ); + _m->help( "Codice del cliente del documento" ); + + } else + { _m->prompt( 2, 4, "Fornitore " ); - _m->flag( "" ); - _m->message( "CO,10@" ); + _m->warning( "Fornitore assente" ); + _m->help( "Codice del fornitore del documento" ); + } + _m->flag( "R" ); + _m->field( "CODCF" ); + _m->group( 1 ); + _m->use( LF_CLIFO, 1 ); + temp_s.format( "TIPOCF \"C\"~CODCF %d", F_CODCF); + _m->input( temp_s ); + _m->display( "\"Codice\" CODCF~\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Sospeso\" SOSPESO" ); + temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_DESCF ); + _m->output( temp_s ); + _m->check( S_OBBLIGATORIO ); + _m->outline( "ADD RU cg0 -1 C" ); _m->end(); - _m->control( T_STRING, F_DESCF, 50 ); + _m->control( T_STRINGA, F_DESCF, 50 ); _m->begin( ); + if ( _pro->get( "TIPOCF", "MAIN" ) == "C" ) + { + _m->warning( "Cliente assente" ); + _m->help( "Ragione sociale del cliente del documento" ); + + } + else + { + _m->warning( "Fornitore assente" ); + _m->help( "Ragione sociale del fornitore del documento" ); + } _m->prompt( 24, 4, "" ); - _m->flag( "" ); - _m->message( "CO,11@" ); + _m->group( 1 ); + _m->use( LF_CLIFO, 2 ); + temp_s.format( "TIPOCF \"C\"~RAGSOC %d", F_DESCF); + _m->input( temp_s ); + _m->display( "\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Codice\" CODCF" ); + temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_DESCF ); + _m->output( temp_s ); + _m->check( S_OBBLIGATORIO ); + _m->outline( "ADD RU cg0 -1 C" ); _m->end(); - _m->line( MASK_FIRST_LINE ); // Generazione @@ -1023,7 +1063,7 @@ void TMask_generator::genera( ) { TString nome = (( TField & )campi[ i ]).nome( ); int stato = stato_del_campo( nome ); - if( stato != FS_HIDDEN ) + if( stato != S_NASCOSTO ) { const int addgruppo = (( TField & )campi[ i ]).gruppo( ); TString16 chiave; @@ -1079,7 +1119,7 @@ void TMask_generator::genera( ) intestazione_pagina( ); // Generazione del listbox per i tipi di riga da aggiungere nello sheet - _m->control ( T_LISTBOX, F_LBTIPORIGA, 30 ); + _m->control ( T_LISTA, F_LBTIPORIGA, 30 ); _m->begin(); _m->prompt( 2, 7, "Tipo riga da aggiungere " ); _m->end( ); @@ -1103,7 +1143,7 @@ void TMask_generator::genera( ) int piede = s.get_int();; while ( piede != 0 ) { - _m->control( T_NUMBER, BASE_PIEDE + cp, 1805 ); + _m->control( T_NUMERO, BASE_PIEDE + cp, 1805 ); _m->begin(); TString header = _ditta.get( "PIEDE", "ve", piede ); while( header.len() < 40 ) header << " "; diff --git a/ve/ve0300a.src b/ve/ve0300a.src index 5d4a55d1b..71a27fe38 100755 --- a/ve/ve0300a.src +++ b/ve/ve0300a.src @@ -71,14 +71,6 @@ MSKID=F_TIPOCF TYPE=T_STRINGA SIZE=1 PROMPT=Tipo cliente/fornitore -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= -CONFIGS= //[CODCF] //GROUP=100 @@ -98,7 +90,6 @@ CONFIGS= //LF_CLIFO->CODCAB~F_CODLIST LF_CFVEN->CODLIST~F_CODPAG LF_CLIFO->CODPAG //SPECIAL=ME C,F_TIPOCF~ME 9,F_CODVAL~ME 9 F_CODLIN~ME 9 F_CODABIA~ME 9 F_CODCABA~ME 9 F_CODPAG~JO LF_CFVEN TO LF_CLIFO KE 1 INTO TIPOCF=TIPOCF CODCF=CODCF //WARNING=Cliente non presente -//ITEMS= //HELP=Inserire il codice del cliente @@ -107,10 +98,8 @@ CONFIGS= //GROUP=100 //X=15 //Y=1 -//FIELDNAME= //MSKID=F_RAGSOC //TYPE=T_STRINGA -//PROMPT= //SIZE=50 //FLAG=U //USE=LF_CLIFO KE 2 @@ -119,7 +108,6 @@ CONFIGS= //OUTPUT=@F_CODCF //SPECIAL=JO LF_CFVEN TO LF_CLIFO KE 1 INTO TIPOCF=TIPOCF CODCF=CODCF //WARNING=Ragione sociale non trovata -//ITEMS= //HELP=Inserire la ragione sociale della ditta [OCFPI] @@ -133,13 +121,15 @@ MSKID=F_OCFPI TYPE=T_STRINGA PROMPT="Codice cliente occasionale " SIZE=16 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= + +[OCCASEDIT] +GROUP=100 +TYPE=T_BOTTONE +SIZE=801 +PROMPT="Modifica" +X=60 +Y=0 +MSKID=F_OCCASEDIT [OCCAS] // questo campo viene memorizzato solo se il cliente e' occasionale @@ -150,75 +140,45 @@ FIELDNAME=OCCAS MSKID=F_OCCAS TYPE=T_CHECKBOX PROMPT="" -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [COFI] // il campo e' letto nel file 20 clifo GROUP=100 X=2 Y=0 -FIELDNAME= MSKID=F_COFI TYPE=T_STRINGA PROMPT="Cod. fisc. " SIZE=16 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [STATOPAIV] // il campo e' letto nel file 20 clifo GROUP=100 X=50 Y=0 -FIELDNAME= MSKID=F_STATOPAIVA TYPE=T_STRINGA PROMPT="P.Iva " SIZE=2 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [PAIVA] // il campo e' letto nel file 20 clifo GROUP=100 X=60 Y=0 -FIELDNAME= MSKID=F_PAIVA TYPE=T_STRINGA PROMPT="" SIZE=12 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [INDCF] // il campo e' letto nel file 20 clifo GROUP=100 X=2 Y=1 -FIELDNAME= MSKID=F_INDCF TYPE=T_STRINGA PROMPT="Indirizzo " @@ -230,144 +190,88 @@ FLAG=U GROUP=100 X=59 Y=1 -FIELDNAME= MSKID=F_CIVCF TYPE=T_STRINGA PROMPT="N. " SIZE=10 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [LOCALITACF] // il campo e' letto nel file 20 clifo GROUP=100 X=2 Y=2 -FIELDNAME= MSKID=F_LOCALITACF TYPE=T_STRINGA PROMPT="Localita' " SIZE=35 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CAPCF] // il campo e' letto nel file 20 clifo GROUP=100 X=50 Y=2 -FIELDNAME= MSKID=F_CAPCF TYPE=T_STRINGA PROMPT="C.A.P." SIZE=5 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [COMCF] // il campo e' letto nel file 20 clifo GROUP=100 X=2 Y=3 -FIELDNAME= MSKID=F_COMCF TYPE=T_STRINGA PROMPT="Comune " SIZE=4 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DENCOM] // il campo e' letto nel file 13 comuni con chiave [COMCF] GROUP=100 X=22 Y=3 -FIELDNAME= MSKID=F_DENCOM TYPE=T_STRINGA PROMPT="" SIZE=50 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [PROVCOM] // il campo e' letto nel file 13 comuni con chiave [COMCF] GROUP=100 X=64 Y=2 -FIELDNAME= MSKID=F_PROVCOM TYPE=T_STRINGA PROMPT="Pr." SIZE=5 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [STATOCF] // il campo e' letto nel file 20 clifo va visualizzato solo se <>"" GROUP=100 X=2 Y=4 -FIELDNAME= MSKID=F_STATOCF TYPE=T_STRINGA PROMPT="Stato " SIZE=3 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DESSTATOCF] // il campo e' letto nella tabella %STA e va visualizzato solo se [STATOCF]<>"" GROUP=100 X=22 Y=4 -FIELDNAME= MSKID=F_DESSTATOCF TYPE=T_STRINGA PROMPT="" SIZE=50 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODVAL] //se codice=LIT il campo cambio e' di sola visualizzazione @@ -384,27 +288,16 @@ USE=%VAL INPUT=CODTAB F_CODVAL DISPLAY="Codice" CODTAB~"Descrizione@50" S0~"Cambio@15" R10~"Data valuta" D0 OUTPUT=F_CODVAL CODTAB~F_NOMEVAL S0~F_CAMBIO R10~F_DATACAMBIO D0 -SPECIAL= WARNING=Codice valuta non trovato -ITEMS= HELP=Inserisci il codice della valuta [NOME_VAL] GROUP=200 X=22 Y=0 -FIELDNAME= MSKID=F_NOMEVAL TYPE=T_STRINGA -PROMPT= SIZE=50 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CAMBIO] // attenzione se abilitato archivio cambi cambio e data rilevati da tale archivio @@ -417,30 +310,16 @@ TYPE=T_NUMERO PROMPT="Cambio " SIZE=1505 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATA_CAMBIO] // attenzione se abilitato archivio cambi cambio e data rilevati da tale archivio GROUP=200 X=50 Y=1 -FIELDNAME= MSKID=F_DATACAMBIO TYPE=T_DATA PROMPT="Data valuta " -SIZE= FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODLIN] GROUP=300 @@ -456,24 +335,16 @@ USE=%LNG INPUT=CODTAB F_CODLIN DISPLAY="Codice" CODTAB~"Descrizione@50" S0 OUTPUT=F_CODLIN CODTAB~F_DESLIN S0 -SPECIAL= -ITEMS= +SPECIAL=CH NORMAL [DESLIN] GROUP=300 X=22 Y=0 -FIELDNAME= MSKID=F_DESLIN TYPE=T_STRINGA PROMPT="" SIZE=50 -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODPAG] GROUP=400 @@ -489,27 +360,16 @@ USE=%CPG INPUT=CODTAB F_CODPAG DISPLAY="Codice" CODTAB~"Descrizione@50" S0 OUTPUT=F_CODPAG CODTAB~F_DESCODPAG S0 -SPECIAL= WARNING=Codice tipo pagamento non trovato -ITEMS= HELP=Inserisci il codice del tipo di pagamento [DESCODPAG] GROUP=400 X=22 Y=0 -FIELDNAME= MSKID=F_DESCODPAG TYPE=T_STRINGA -PROMPT= SIZE=50 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATAINSC] GROUP=500 @@ -519,101 +379,49 @@ FIELDNAME=DATAINSC MSKID=F_DATAINSC TYPE=T_DATA PROMPT="Data inizio scad. " -SIZE= FLAG=A -USE= -INPUT= -DISPLAY= -OUTPUT= WARNING=E' richiesta una data valido -SPECIAL= HELP=Inserisci la data di inizio scadenza -ITEMS= [DATASCAD1] GROUP=500 X=36 Y=0 -FIELDNAME= MSKID=F_DATASCAD1 TYPE=T_DATA PROMPT="Scadenze : 1' " -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATASCAD2] GROUP=500 X=62 Y=0 -FIELDNAME= MSKID=F_DATASCAD2 TYPE=T_DATA PROMPT="2' " -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATASCAD3] GROUP=500 X=22 Y=1 -FIELDNAME= MSKID=F_DATASCAD3 TYPE=T_DATA PROMPT="3' " -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATASCAD4] GROUP=500 X=47 Y=1 -FIELDNAME= MSKID=F_DATASCAD4 TYPE=T_DATA PROMPT="4' " -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DATASCAD5] GROUP=500 X=62 Y=1 -FIELDNAME= MSKID=F_DATASCAD5 TYPE=T_DATA PROMPT="5' " -SIZE= -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODABIA] GROUP=600 @@ -629,10 +437,6 @@ USE=%BAN KE 1 SELECT CODTAB[6,10]!="" INPUT=CODTAB[1,5] F_CODABIA DISPLAY="Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0 OUTPUT=F_CODABIA CODTAB[1,5]~F_CODCABA CODTAB[6,10]~F_DESBANAPP S0 -SPECIAL= -WARNING= -ITEMS= -HELP= [CODCABA] GROUP=600 @@ -648,29 +452,19 @@ USE=@F_CODABIA INPUT=CODTAB[1,5] F_CODABIA~CODTAB[6,10] F_CODCABA DISPLAY=@F_CODABIA OUTPUT=@F_CODABIA -SPECIAL= -WARNING= -ITEMS= -HELP= [DESBANAPP] GROUP=600 X=2 Y=1 -FIELDNAME= MSKID=F_DESBANAPP TYPE=T_STRINGA PROMPT="Denominazione banca " SIZE=50 -FLAG= USE=%BAN KE 2 INPUT=S0 F_DESBANAPP DISPLAY=@F_CODABIA OUTPUT=@F_CODABIA -SPECIAL= -WARNING= -ITEMS= -HELP= [CODABIP] GROUP=700 @@ -686,10 +480,6 @@ USE=%BAN KE 1 SELECT CODTAB[6,10]!="" INPUT=CODTAB[1,5] F_CODABIP DISPLAY="Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0 OUTPUT=F_CODABIP CODTAB[1,5]~F_CODCABP CODTAB[6,10]~F_DESBANPRE S0 -SPECIAL= -WARNING= -ITEMS= -HELP= [CODCABP] GROUP=700 @@ -705,29 +495,19 @@ USE=@F_CODABIP INPUT=CODTAB[1,5] F_CODABIP~CODTAB[6,10] F_CODCABP DISPLAY=@F_CODABIP OUTPUT=@F_CODABIP -SPECIAL= -WARNING= -ITEMS= -HELP= [DESBANPRE] GROUP=700 X=1 Y=1 -FIELDNAME= MSKID=F_DESBANPRE TYPE=T_STRINGA PROMPT="Denominazione banca " SIZE=50 -FLAG= USE=%BAN KE 2 INPUT=S0 F_DESBANPRE DISPLAY=@F_CODABIP OUTPUT=@F_CODABIP -SPECIAL= -WARNING= -ITEMS= -HELP= [CODLIST] GROUP=800 @@ -739,14 +519,8 @@ TYPE=T_STRINGA PROMPT="Cod. listini " SIZE=5 FLAG=U -USE= -INPUT= -DISPLAY= -OUTPUT= WARNING=Codice del listino non corretto o non presente !!! -SPECIAL= HELP=Inserisci il codice del listino -ITEMS= [CODCONT] GROUP=800 @@ -757,13 +531,6 @@ MSKID=F_CODCONT TYPE=T_STRINGA PROMPT="Cod. contratti " SIZE=2 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODCAMP] GROUP=800 @@ -774,13 +541,6 @@ MSKID=F_CODCAMP TYPE=T_STRINGA PROMPT="Cod. campagne " SIZE=1 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [SCONTOPERC] GROUP=800 @@ -791,13 +551,6 @@ MSKID=F_SCONTOPERC TYPE=T_NUMERO PROMPT="Percentuale di sconto " SIZE=0602 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CODINDSP] GROUP=900 @@ -808,25 +561,16 @@ MSKID=F_CODINDSP TYPE=T_STRINGA PROMPT="Cod. ind. sped. " SIZE=3 -FLAG= -USE= -INPUT= -DISPLAY= -OUTPUT= WARNING=Indirizzo di spedizione non trovato! -SPECIAL= HELP=Inserisci il codice dell'indirizzo di spedizione -ITEMS= [RAGSOCSP] // il campo e' letto nel file 20 clifo GROUP=900 X=24 Y=0 -FIELDNAME= MSKID=F_RAGSOC TYPE=T_STRINGA -PROMPT= SIZE=50 FLAG=U USE=20 KE 2 @@ -834,148 +578,88 @@ INPUT=RAGSOC 301 DISPLAY="Ragione sociale@50" 20->RAGSOC~"Codice" 20->CODCF~"Indrizzo@35" 20->INDCF SPECIAL=JO 17 TO 20 KE 1 INTO TIPOCF=TIPOCF CODCF=CODCF WARNING=Ragione sociale non trovata -ITEMS= HELP=Inserire la ragione sociale della ditta [INDSP] GROUP=900 X=24 Y=1 -FIELDNAME= MSKID=F_INDSP TYPE=T_STRINGA -PROMPT= SIZE=35 FLAG=U -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CIVSP] GROUP=900 X=62 Y=1 -FIELDNAME= MSKID=F_CIVSP TYPE=T_STRINGA -PROMPT= SIZE=10 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [LOCALITASP] GROUP=900 X=1 Y=2 -FIELDNAME= MSKID=F_LOCALITASP TYPE=T_STRINGA PROMPT="Località " SIZE=35 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [CAPSP] GROUP=900 X=57 Y=2 -FIELDNAME= MSKID=F_CAPSP TYPE=T_STRINGA PROMPT="CAP " SIZE=5 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [COMSP] // il campo e' letto nel file 20 clifo GROUP=900 X=1 Y=3 -FIELDNAME= MSKID=F_COMSP TYPE=T_STRINGA PROMPT="Comune " SIZE=4 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DENCOMSP] // il campo e' letto nel file 13 comuni con chiave [COMCF] GROUP=900 X=15 Y=3 -FIELDNAME= MSKID=F_DENCOMSP TYPE=T_STRINGA -PROMPT= SIZE=50 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [PROVCOMSP] // il campo e' letto nel file 13 comuni con chiave [COMCF] GROUP=900 X=66 Y=3 -FIELDNAME= MSKID=F_PROVCOMSP TYPE=T_STRINGA PROMPT="Prov. " SIZE=5 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [STATOSP] // il campo e' letto nel file 20 clifo va visualizzato solo se <>"" GROUP=900 X=1 Y=4 -FIELDNAME= MSKID=F_STATOSP TYPE=T_STRINGA PROMPT="Stato " SIZE=3 FLAG=R -USE= -INPUT= -DISPLAY= -OUTPUT= -SPECIAL= -ITEMS= [DESSTATOSP] // il campo e' letto nella tabella %STA e va visualizzato solo se [STATOCF]<>"" @@ -1427,7 +1111,6 @@ HELP=Inserisci la tara della merce GROUP=2700 X=1 Y=3 -FIELDNAME= MSKID=F_DESUMTARA TYPE=T_STRINGA PROMPT=Unità di misura della tara @@ -1463,7 +1146,6 @@ HELP=Inserisci il peso netto della merce GROUP=2700 X=1 Y=6 -FIELDNAME= MSKID=F_DESUMPNETTO TYPE=T_STRINGA PROMPT=Unità di misura del peso netto @@ -1499,7 +1181,6 @@ HELP=Inserisci il codice della causale GROUP=2900 X=1 Y=2 -FIELDNAME= MSKID=F_DESCRMAG1 TYPE=T_STRINGA PROMPT=Causale di magazzino 1 @@ -1523,7 +1204,6 @@ HELP=Inserisci il codice della causale GROUP=2900 X=1 Y=4 -FIELDNAME= MSKID=F_DESCRMAG2 TYPE=T_STRINGA PROMPT=Causale di magazzino 2 diff --git a/ve/veini.h b/ve/veini.h index 1a97a713a..bec3dc8b8 100755 --- a/ve/veini.h +++ b/ve/veini.h @@ -5,6 +5,7 @@ #define T_LISTA 5 #define T_MEMO 6 #define T_CORNICE 7 +#define T_BOTTONE 8 #define S_NASCOSTO 0 #define S_DISABILITATO 1 diff --git a/ve/veuml.h b/ve/veuml.h index 99bf783fb..f3c37f561 100755 --- a/ve/veuml.h +++ b/ve/veuml.h @@ -80,4 +80,6 @@ #define F_DESCF 177 // GESTITO DAL MOTORE #define DLG_ELABORA 178 // GESTITO DAL MOTORE: bottone Elabora #define F_ATTIVAANNO 179 // GESTITO DAL MOTORE +#define F_OCCASEDIT 180 // GESTITO DAL MOTORE + #endif // veuml.h