Patch level : 10.0 patch 244

Files correlati     : ve0
Ricompilazione Demo : [ ]
Commento            :
Aggiunto il gruppo di testata delle lavanderie (4041)


git-svn-id: svn://10.65.10.50/trunk@18304 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-02-20 14:21:07 +00:00
parent b434396504
commit 501dbfa92a
3 changed files with 441 additions and 204 deletions

View File

@ -260,6 +260,7 @@ public:
// Attiva la generazione della maschera
void genera( const TString& profilo);
void genera_testata_1();
// Genera l'intestazione di una pagina ( non la prima )
void intestazione_pagina( const char* def_title = TR("Parametri"));
@ -414,6 +415,7 @@ public:
void present( bool p ) { _present = p; }
bool present( ) const { return _present; }
TArray& campi( ) { return _fields; }
const bool is_testata() const;
virtual TObject* dup() const;
TGruppo ( int i );
@ -509,6 +511,17 @@ void TGruppo::add( TField * field )
field->grp(this);
}
const bool TGruppo::is_testata() const
{
FOR_EACH_ARRAY_ITEM(_fields, i, o)
{
TField* campo = (TField*) o;
if(campo->id() == F_STATO)
return true;
}
return false;
}
TGruppo::TGruppo( int i )
{
_id = i;
@ -619,6 +632,7 @@ static void genera_gruppo( const TObject& gruppo )
grp.present(FALSE);
if (_mask_generator == NULL)
_mask_generator = &(grp.generatore());
grp.campi().for_each(verifica_campo);
do_events();
if (grp.present())
@ -654,7 +668,7 @@ void TGruppo::genera( )
// Passa alla pagina successiva
maschera( ).end( );
generatore( ).intestazione_pagina( );
//maschera( ).line( MASK_FIRST_LINE );
maschera( ).line( MASK_FIRST_LINE );
oldlinea = MASK_FIRST_LINE;
}
_fields.for_each( genera_campo );
@ -1215,6 +1229,170 @@ void TMask_generator::genera_sheet(int line, bool show_list, bool genera_disp)
_m->_sheet_generated = true;
}
void TMask_generator::genera_testata_1()
{
TString temp_s;
const char tipo_cf = _pro->get_char("TIPOCF", "MAIN");
_m->control( T_CORNICE, DLG_NULL, 7806);
_m->begin( );
_m->prompt( 1, 0, "" );
_m->end( );
_m->control( T_STRINGA, F_CODNUM, 4 );
_m->begin( );
_m->prompt( 2, 1, "Cod. num. " );
_m->field(DOC_CODNUM);
_m->use("%NUM", 1);
temp_s.format("CODTAB %d", F_CODNUM);
_m->input(temp_s);
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
temp_s.format("%d S0", F_DESNUM);
_m->output(temp_s);
_m->check(S_NORMALE);
_m->flag( "GDU" );
_m->message( "CO,2@" );
_m->end( );
_m->control( T_STRINGA, F_DESNUM, 50 );
_m->begin( );
_m->prompt( 24, 1 );
_m->flag( "GD" );
_m->message( "CO,3@" );
_m->end( );
_m->control( T_STRINGA, F_TIPODOC, 4 );
_m->begin( );
_m->field( DOC_TIPODOC );
_m->prompt( 2, 2, "Tipo doc. " );
_m->use("%TIP" , 1);
temp_s.format("CODTAB %d", F_TIPODOC);
_m->input(temp_s);
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
temp_s.format("%d S0", F_DESTIPODOC);
_m->output(temp_s);
_m->check(S_NORMALE);
_m->flag( "GDU" );
_m->message( "CO,4@" );
_m->end( );
_m->control( T_LISTA, F_TIPOCF, 9 );
_m->begin( );
_m->prompt( 100, 100, "" );
_m->field( DOC_TIPOCF );
_m->item(tipo_cf == 'C' ? "C|Cliente" : "F|Fornitore");
_m->flag( "D" );
_m->end( );
_m->control( T_STRINGA, F_PROVV, 1 );
_m->begin( );
_m->prompt( 100, 100, "<D><P> " );
_m->field( DOC_PROVV );
_m->flag( "D" );
_m->end( );
_m->control( T_STRINGA, F_DESTIPODOC, 50 );
_m->begin( );
_m->prompt( 24, 2 );
_m->flag( "GD" );
_m->message( "CO,5@" );
_m->end( );
_m->control( T_STRINGA, F_ANNO, 4 );
_m->begin( );
_m->prompt( 2, 3, "Esercizio " );
_m->field( DOC_ANNO );
_m->flag( "GD" );
_m->message( "CO,9@" );
_m->end( );
_m->control( T_NUMERO, F_NDOC, 6 );
_m->begin( );
_m->prompt( 24, 3, "Numero doc. " );
_m->field( DOC_NDOC );
_m->message( "CO,6@" );
_m->flag( "GDR" );
_m->end( );
_m->control( T_DATA, F_DATADOC );
_m->begin( );
_m->prompt( 46, 3, "Data " );
_m->field( DOC_DATADOC );
TString m("CO,7@");
_m->message(m);
_m->end( );
_m->control( T_STRINGA, F_STATO, 1 );
_m->begin( );
_m->prompt( 67, 3, "Stato " );
_m->field( DOC_STATO );
_m->use("%STD", 1);
_m->input("CODTAB 105");
_m->display("\"Codice\" CODTAB");
_m->display("\"Descrizione@50\" S0");
_m->output("105 CODTAB");
_m->message( "CO,8@" );
_m->check(S_NORMALE);
_m->flag( "DG" );
_m->end( );
_m->control( T_STRINGA, F_CODCF, 6 );
_m->begin( );
if ( tipo_cf == 'C' )
{
_m->prompt( 2, 4, "Cliente " );
_m->warning( "Cliente assente" );
_m->help( "Codice del cliente del documento" );
}
else
{
_m->prompt( 2, 4, "Fornitore " );
_m->warning( "Fornitore assente" );
_m->help( "Codice del fornitore del documento" );
}
_m->flag( "R" );
_m->field( DOC_CODCF );
_m->group( 1 );
_m->use( LF_CLIFO, 1 );
temp_s.format( "TIPOCF \"%c\"~CODCF %d", tipo_cf, 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_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
temp_s.format( "ADD RU cg0 -1 %c", tipo_cf);
_m->outline( temp_s );
_m->message( "CO,10@" );
_m->end( );
_m->control( T_STRINGA, F_RAGSOC, 50 );
_m->begin( );
if ( tipo_cf == '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->group( 1 );
_m->use( LF_CLIFO, 2 );
temp_s.format( "TIPOCF \"%c\"~RAGSOC %d", tipo_cf, F_RAGSOC );
_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_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
temp_s.format( "ADD RU cg0 -1 %c", tipo_cf);
_m->outline( temp_s );
_m->message( "CO,11@" );
_m->end( );
_m->line( MASK_FIRST_LINE );
}
void TMask_generator::genera( const TString& profilo )
{
if( profilo == "-all" || profilo[0] == '*')
@ -1334,193 +1512,12 @@ void TMask_generator::genera( const TString& profilo )
const TString80 title(_pro->get("Title", "MAIN", _m->page(), TR("Testata")));
_m->pagina( _m->page( ), title);
_m->control( T_CORNICE, DLG_NULL, 7807);
_m->begin( );
_m->prompt( 1, 0, "" );
_m->end( );
_m->control( T_STRINGA, F_CODNUM, 4 );
_m->begin( );
_m->prompt( 2, 1, "Cod. num. " );
_m->field(DOC_CODNUM);
_m->use("%NUM", 1);
temp_s.format("CODTAB %d", F_CODNUM);
_m->input(temp_s);
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
temp_s.format("%d S0", F_DESNUM);
_m->output(temp_s);
_m->check(S_NORMALE);
_m->flag( "GDU" );
_m->message( "CO,2@" );
_m->end( );
_m->control( T_STRINGA, F_DESNUM, 50 );
_m->begin( );
_m->prompt( 24, 1 );
_m->flag( "GD" );
_m->message( "CO,3@" );
_m->end( );
_m->control( T_STRINGA, F_TIPODOC, 4 );
_m->begin( );
_m->field( DOC_TIPODOC );
_m->prompt( 2, 2, "Tipo doc. " );
_m->use("%TIP" , 1);
temp_s.format("CODTAB %d", F_TIPODOC);
_m->input(temp_s);
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
temp_s.format("%d S0", F_DESTIPODOC);
_m->output(temp_s);
_m->check(S_NORMALE);
_m->flag( "GDU" );
_m->message( "CO,4@" );
_m->end( );
_m->control( T_LISTA, F_TIPOCF, 9 );
_m->begin( );
_m->prompt( 100, 100, "" );
_m->field( DOC_TIPOCF );
_m->item(tipo_cf == 'C' ? "C|Cliente" : "F|Fornitore");
_m->flag( "D" );
_m->end( );
_m->control( T_STRINGA, F_PROVV, 1 );
_m->begin( );
_m->prompt( 100, 100, "<D><P> " );
_m->field( DOC_PROVV );
_m->flag( "D" );
_m->end( );
_m->control( T_STRINGA, F_DESTIPODOC, 50 );
_m->begin( );
_m->prompt( 24, 2 );
_m->flag( "GD" );
_m->message( "CO,5@" );
_m->end( );
_m->control( T_STRINGA, F_ANNO, 4 );
_m->begin( );
_m->prompt( 2, 3, "Esercizio " );
_m->field( DOC_ANNO );
_m->flag( "GD" );
_m->message( "CO,9@" );
_m->end( );
_m->control( T_NUMERO, F_NDOC, 6 );
_m->begin( );
_m->prompt( 24, 3, "Numero doc. " );
_m->field( DOC_NDOC );
_m->message( "CO,6@" );
_m->flag( "GDR" );
_m->end( );
_m->control( T_DATA, F_DATADOC );
_m->begin( );
_m->prompt( 46, 3, "Data " );
_m->field( DOC_DATADOC );
TString m("CO,7@");
_m->message(m);
_m->end( );
_m->control( T_STRINGA, F_STATO, 1 );
_m->begin( );
_m->prompt( 67, 3, "Stato " );
_m->field( DOC_STATO );
_m->use("%STD", 1);
_m->input("CODTAB 105");
_m->display("\"Codice\" CODTAB");
_m->display("\"Descrizione@50\" S0");
_m->output("105 CODTAB");
_m->message( "CO,8@" );
_m->check(S_NORMALE);
_m->flag( "DG" );
_m->end( );
_m->control( T_STRINGA, F_CODCF, 6 );
_m->begin( );
if ( tipo_cf == 'C' )
{
_m->prompt( 2, 4, "Cliente " );
_m->warning( "Cliente assente" );
_m->help( "Codice del cliente del documento" );
}
else
{
_m->prompt( 2, 4, "Fornitore " );
_m->warning( "Fornitore assente" );
_m->help( "Codice del fornitore del documento" );
}
_m->flag( "R" );
_m->field( DOC_CODCF );
_m->group( 1 );
_m->use( LF_CLIFO, 1 );
temp_s.format( "TIPOCF \"%c\"~CODCF %d", tipo_cf, 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_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
temp_s.format( "ADD RU cg0 -1 %c", tipo_cf);
_m->outline( temp_s );
_m->message( "CO,10@" );
_m->end( );
_m->control( T_STRINGA, F_RICALT, 30 );
_m->begin( );
_m->prompt( 22, 4, "" );
_m->warning( "Cliente assente" );
_m->help( "Codice mnemonico del cliente del documento" );
_m->group( 1 );
_m->use( LF_CLIFO, 6 );
temp_s.format( "TIPOCF \"%c\"~RICALT %d", tipo_cf, F_RICALT);
_m->input( temp_s );
_m->display( "\"Mnemonico@30\" RICALT~\"Codice\" CODCF~\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Sospeso\" SOSPESO" );
temp_s.format( "%d RICALT~%d CODCF~%d RAGSOC", F_RICALT, F_CODCF, F_RAGSOC );
_m->output( temp_s );
_m->check( S_NORMALE );
temp_s.format( "ADD RU cg0 -1 %c", tipo_cf);
_m->outline( temp_s );
_m->end( );
_m->control( T_STRINGA, F_RAGSOC, 50 );
_m->begin( );
if ( tipo_cf == '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( 2, 5, "Ragione Sociale " );
_m->group( 1 );
_m->use( LF_CLIFO, 2 );
temp_s.format( "TIPOCF \"%c\"~RAGSOC %d", tipo_cf, F_RAGSOC );
_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_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
temp_s.format( "ADD RU cg0 -1 %c", tipo_cf);
_m->outline( temp_s );
_m->message( "CO,11@" );
_m->end( );
_m->line( MASK_FIRST_LINE+1 ); // La prima pagina ha un'intestazione più lunga
// Generazione
// Scorro l'array dei gruppi, e ne creo una copia ordinata
// con solo i gruppi visibili
TArray sortedgroups;
TString16 chiave, chiavegruppo;
last = _pro->get_int( "NGROUPS", "ORDINEGRUPPI" );
for( i = 1; i <= last; i ++ )
{
do_events();
{
chiave.format( "%d", i );
const TString key(_pro->get( chiave, "ORDINEGRUPPI" ));
@ -1536,12 +1533,24 @@ void TMask_generator::genera( const TString& profilo )
sortedgroups.add(key);
}
}
// Generazione
// Scorro l'array dei gruppi, e ne creo una copia ordinata
// con solo i gruppi visibili
TString80 message;
_m->_sheet_generated = false;
message.format("Generazione profilo : %s", (const char *)profilo);
_bar = new TProgind(sortedgroups.items(), message, FALSE, TRUE);
TGruppo* gruppo1 = (TGruppo*)sortedgroups.objptr(0);
if (gruppo1->is_testata())
_m->line(0);
else
genera_testata_1();
sortedgroups.for_each( genera_gruppo );
delete _bar; _bar = NULL;
_m->end( );
@ -1550,7 +1559,7 @@ void TMask_generator::genera( const TString& profilo )
intestazione_pagina(TR("Righe"));
genera_sheet();
}
// Generazione pagina dei piedi
{
TToken_string s(_pro->get("CAMPICALC", "MAIN"));

View File

@ -49,6 +49,7 @@
#include "veuml.h"
#include "veuml1.h"
#include "veuml3.h"
#include "veini.h"
[OCCASEDIT]
@ -84,20 +85,6 @@ DISPLAY="Codice Fiscale@16" COFI~"Ragione sociale@50" RAGSOC~"Codice" CODCF~"Ind
OUTPUT=@F_CODCF
SIZE=16
[RICALT]
// il campo e' letto nel file 20 clifo
GROUP=100
X=2
Y=0
MSKID=F_RICALT
TYPE=T_STRINGA
PROMPT="Ric. alt."
USE=LF_CLIFO KE 6
INPUT=TIPOCF F_TIPOCF SELECT~RICALT F_RICALT
DISPLAY="Ricerca Altrenativa@30" RICALT~"Ragione sociale@50" RAGSOC~"Codice" CODCF~"Indrizzo@35" INDCF
OUTPUT=@F_CODCF
SIZE=30
[STATOPAIV]
// il campo e' letto nel file 20 clifo
GROUP=100
@ -940,7 +927,7 @@ TYPE=T_NUMERO
PROMPT="Stato "
SIZE=3
FLAG=Z
USE=@F_STATOCF
USE=%STA
INPUT=CODTAB F_STATOSP
OUTPUT=F_DESSTATOSP S0
SPECIAL=CH SEARCH
@ -963,7 +950,7 @@ TYPE=T_STRINGA
PROMPT="Comune "
SIZE=4
FLAG=U
USE=@F_COMCF
USE=LF_COMUNI
INPUT=STATO F_STATOSP~COM F_COMSP
OUTPUT=F_DENCOMSP DENCOM~F_PROVCOMSP PROVCOM
SPECIAL=CH SEARCH
@ -1689,13 +1676,242 @@ SPECIAL=CH NORMAL
[DESCRMAGC]
GROUP=2900
X=25
X=2
Y=1
MSKID=F_DESCRMAGC
TYPE=T_STRINGA
PROMPT=""
SIZE=50
[LVGROUP]
GROUP=4041
X=1
Y=0
MSKID=F_LVGROUP
TYPE=T_CORNICE
SIZE=7907
PROMPT=""
[LVCODNUM]
GROUP=4041
X=2
Y=1
FIELDNAME=CODNUM
MSKID=F_CODNUM
TYPE=T_STRINGA
SIZE=4
PROMPT="Cod. Num. "
FLAG=GDU
USE=%NUM
INPUT=CODTAB F_CODNUM
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_DESNUM S0
SPECIAL=CH NORMAL~ME CO,2@
[LVDESNUM]
GROUP=4041
X=18
Y=1
MSKID=F_DESNUM
TYPE=T_STRINGA
SIZE=45
PROMPT=""
FLAG=GD
SPECIAL=ME CO,3@
[LVSTATO]
GROUP=4041
X=71
Y=1
FIELDNAME=STATO
MSKID=F_STATO
TYPE=T_STRINGA
SIZE=1
PROMPT="Stato "
FLAG=GD
USE=%STD
INPUT=CODTAB F_STATO
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_STATO CODTAB
SPECIAL=CH NORMAL~ME CO,8@
[LVPROVV]
GROUP=4041
X=200
Y=1
FIELDNAME=PROVV
MSKID=F_PROVV
TYPE=T_STRINGA
SIZE=1
PROMPT="Provvisorio/Definitivo"
FLAG=D
[LVTIPODOC]
GROUP=4041
X=2
Y=2
FIELDNAME=TIPODOC
MSKID=F_TIPODOC
TYPE=T_STRINGA
SIZE=4
PROMPT="Tipo Doc. "
FLAG=GDU
USE=%TIP
INPUT=CODTAB F_TIPODOC
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_DESTIPODOC S0
SPECIAL=CH NORMAL~ME CO,4@
[LVDESTIPODOC]
GROUP=4041
X=18
Y=2
MSKID=F_DESTIPODOC
TYPE=T_STRINGA
SIZE=45
PROMPT=""
FLAG=GD
SPECIAL=ME CO,5@
[LVNDOC]
GROUP=4041
X=64
Y=2
FIELDNAME=NDOC
MSKID=F_NDOC
TYPE=T_NUMERO
SIZE=4
PROMPT="Num. Doc. "
FLAG=GDR
SPECIAL=ME CO,6@
[LVANNO]
GROUP=4041
X=2
Y=3
FIELDNAME=ANNO
MSKID=F_ANNO
TYPE=T_STRINGA
SIZE=4
PROMPT="Esercizio "
FLAG=GD
SPECIAL=ME CO,9@
[LVDATADOC]
GROUP=4041
X=18
Y=3
FIELDNAME=DATADOC
MSKID=F_DATADOC
TYPE=T_DATA
SPECIAL=ME CO,7@
[LVGIORNO]
GROUP=4041
X=34
Y=3
MSKID=F_LVGIORNO
TYPE=T_STRINGA
PROMPT =""
SIZE=9
FLAG=D
[LVSETTIMANA]
GROUP=4041
X=44
Y=3
MSKID=F_LVSETTIMANA
TYPE=T_STRINGA
PROMPT="Settimana "
SIZE=1
FLAG=D
[LVTIPOCF]
GROUP=4041
X=200
Y=4
FIELDNAME=TIPOCF
MSKID=F_TIPOCF
TYPE=T_LISTA
ITEMS=C|Cliente
SIZE=9
PROMPT=""
FLAG=D
[LVCODCF]
GROUP=4041
X=2
Y=4
FIELDNAME=CODCF
MSKID=F_CODCF
TYPE=T_STRINGA
SIZE=6
PROMPT="Cliente "
FLAG=R
USE=LF_CLIFO
INPUT=TIPOCF "C"~CODCF F_CODCF
DISPLAY="Codice" CODCF~"Mnemonico" RICALT~"Ragione Sociale@50" RAGSOC
OUTPUT=F_CODCF CODCF~F_RAGSOC RAGSOC~F_LVRICALT RICALT
SPECIAL=CH REQUIRED~ADD RU cg0 -1 "C"~ME CO,10@
[LVRICALT]
GROUP=4041
X=23
Y=4
MSKID=F_LVRICALT
TYPE=T_STRINGA
SIZE=30
PROMPT=""
USE=LF_CLIFO KE 6
INPUT=TIPOCF "C"~RICALT F_LVRICALT
DISPLAY="Mnemonico" RICALT~"Codice" CODCF~"Ragione Sociale@50" RAGSOC
OUTPUT=@F_CODCF
[LVCODCONT]
GROUP=4041
X=66
Y=4
FIELDNAME=CODCONT
MSKID=F_LVCODCONT
TYPE=T_NUMERO
PROMPT="Contratto "
SIZE=2
FLAG=D
[LVRAGSOC]
GROUP=4041
X=2
Y=5
MSKID=F_RAGSOC
TYPE=T_STRINGA
SIZE=50
PROMPT="Ragione Sociale "
USE=LF_CLIFO KE 2
INPUT=TIPOCF "C"~RAGSOC F_RAGSOC
DISPLAY="Ragione Sociale@50" RAGSOC~"Codice" CODCF~"Mnemonico" RICALT
OUTPUT=@F_CODCF
SPECIAL=CH REQUIRED~ADD RU cg0 -1 "C"~ME CO,11@
[LVCODCAU]
GROUP=4041
X=2
Y=7
MSKID=F_LVCODCAU
TYPE=T_STRINGA
PROMPT="Causale "
SIZE=5
FLAG=DU
[LVDESCAU]
GROUP=4041
X=19
Y=7
MSKID=F_LVDESCAU
TYPE=T_STRINGA
PROMPT=""
SIZE=50
FLAG=DU
[BLANK]
GROUP=4000
X=100
@ -1703,5 +1919,4 @@ Y=0
MSKID=F_BLANK
TYPE=T_STRINGA
PROMPT=""
SIZE=1
SIZE=1

13
ve/veuml3.h Executable file
View File

@ -0,0 +1,13 @@
#ifndef __VEUML3_H
#define __VEUML3_H
// campi del gruppo lavanderie (4041)
#define F_LVGROUP 800
#define F_LVRICALT 801
#define F_LVGIORNO 802
#define F_LVSETTIMANA 803
#define F_LVCODCONT 804
#define F_LVCODCAU 805
#define F_LVDESCAU 806
#endif // __VEUML3_H