Lavoro del 14/08/96

git-svn-id: svn://10.65.10.50/trunk@3397 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-08-14 16:51:18 +00:00
parent b4e7eacffa
commit 09d52f7af1
14 changed files with 166 additions and 213 deletions

View File

@ -3,6 +3,5 @@
#define F_CODICE 101 #define F_CODICE 101
#define F_DESCR 102 #define F_DESCR 102
#define F_TIPOPERC 103
#define F_PROVV 104

View File

@ -130,8 +130,10 @@ DATADOCRIF = S_NASCOSTO //1000
NUMDOCRIF = S_NASCOSTO //1000 NUMDOCRIF = S_NASCOSTO //1000
CODAGVIS = S_NASCOSTO //1110 CODAGVIS = S_NASCOSTO //1110
DESAGVIS = S_NASCOSTO //1110 DESAGVIS = S_NASCOSTO //1110
CODAG = S_NORMALE //1100 CODAG = S_NASCOSTO //1100
DESAG = S_NORMALE //1100 DESAG = S_NASCOSTO //1100
CODZON = S_NORMALE //1100
DESZON = S_NORMALE //1100
CODSPMEZZO = S_OBBLIGATORIO //1200 CODSPMEZZO = S_OBBLIGATORIO //1200
DESSPMEZZO = S_NORMALE //1200 DESSPMEZZO = S_NORMALE //1200
CODPORTO = S_OBBLIGATORIO //1210 CODPORTO = S_OBBLIGATORIO //1210
@ -163,6 +165,7 @@ DESCRBENI1 = S_NORMALE //2100
ASPBENI2 = S_NASCOSTO //2100 ASPBENI2 = S_NASCOSTO //2100
DESCRBENI2 = S_NASCOSTO //2100 DESCRBENI2 = S_NASCOSTO //2100
IMPNETTI = S_NASCOSTO //2200 IMPNETTI = S_NASCOSTO //2200
RAGGR = S_NORMALE //2300
RAGGREFF = S_NASCOSTO //2300 RAGGREFF = S_NASCOSTO //2300
SPESEINC = S_NASCOSTO //2400 SPESEINC = S_NASCOSTO //2400
GRADD = S_NASCOSTO //2500 GRADD = S_NASCOSTO //2500
@ -186,7 +189,6 @@ DESCRMAG1 = S_NASCOSTO //2900
CAUSMAG2 = S_NASCOSTO //2900 CAUSMAG2 = S_NASCOSTO //2900
DESCRMAG2 = S_NASCOSTO //2900 DESCRMAG2 = S_NASCOSTO //2900
//RAGGR = S_NORMALE
[DEFAULT] [DEFAULT]
NDEFAULTS=1 NDEFAULTS=1
@ -266,18 +268,18 @@ NGROUPS=29
9=810 9=810
10=820 10=820
11=830 11=830
12=900 12=2300
13=1100 13=900
14=1200 14=1100
15=1210 15=1200
16=1300 16=1210
17=1400 17=1300
18=1700 18=1400
19=1800 19=1700
20=1900 20=1800
21=2100 21=1900
22=2200 22=2100
23=2300 23=2200
24=2400 24=2400
25=2700 25=2700
26=2710 26=2710

View File

@ -239,7 +239,7 @@ void TRiga::load(TSheet_field & f, TToken_string& row, TRectype * r)
_data.put( "ASPBENI", row.get( f.cid2index(FR_ASPBENI )) ); _data.put( "ASPBENI", row.get( f.cid2index(FR_ASPBENI )) );
carica_profilo( ); carica_profilo( );
_piede.destroy( ); _piede.destroy( );
somma( _piede ); // somma( _piede );
_data.put( "G1", _piede.string( ) ); _data.put( "G1", _piede.string( ) );
if (r) if (r)
*r = _data; *r = _data;
@ -312,75 +312,6 @@ void TRiga::configura_sheet( TSheet_field& f, int numriga )
} }
} }
void TRiga::somma( TPiede_documento& piede )
{
// Metti solo i campi numerici poichh sono gli unici che si calcolano
//static const TString tabella_campi( "#STATORIGA#TIPORIGA#PROFRIGA#CODMAG#CODART#DESCR#DESCLUNGA#PREZZO#UMQTA#QTA#QTAEVASA#RIGAEVASA#TARA#PNETTO#NCOLLI#DAEVADERE#SCONTO#PERCPROV#IMPFISSO#IMPFISUN#CODIVA#ADDIVA#ASPBENI#" );
static const TString tabella_campi( "#PREZZO#QTA#QTAEVASA#TARA#PNETTO#NCOLLI#PERCPROV#" );
TToken_string s( _pro->get( "PROGPIEDE", "MAIN" ) );
TString16 progpiede( s.get( ) );
TTable ppd( "PPD" );
while( !progpiede.blank( ) )
{
TString formula = s.get( );
if( formula.blank( ) )
{
// Se non h indicata alcuna formula, la prendo dalla tabella piedi
ppd.zero( );
ppd.put( "CODTAB", progpiede );
if( ppd.read( ) == NOERR )
formula = ppd.get( "S0" );
else
yesnofatal_box( "Progressivo piede non definito( %s ).", ( const char * ) progpiede );
}
// Calcolo la espressione
TExpression espr( "" );
if ( espr.set( formula ) )
{
int last = espr.numvar( );
for( int i = 0; i < last; i ++ )
{
TString varname( espr.varname( i ) );
TString cerca;
cerca.format( "#%s#", ( const char *)varname );
if ( tabella_campi.find( cerca ) != -1 )
{
real value ( _data.get_real( varname ) );
espr.setvar( varname, value );
}
else
{
if ( varname[ 0 ] == 'F' || varname[ 0 ] == 'f' )
{
TString16 nfunz ( varname );
nfunz.rtrim( 1 );
espr.setvar( varname, atoi( nfunz ) );
}
else
{
yesnofatal_box( "Variabile non definita nella funzione di calcolo della riga ( %s ).", ( const char * ) varname );
break;
}
}
}
piede.somma( progpiede, espr );
}
else
yesnofatal_box( "Espressione non valida( %s )", ( const char * )formula );
progpiede = s.get( );
}
}
void TRiga::sottrai( TPiede_documento& piede )
{
TPiede_documento temp_piede;
somma( temp_piede );
piede.sottrai( temp_piede );
}
TVariable_mask * TRiga::getmask( ) TVariable_mask * TRiga::getmask( )
{ {
@ -430,7 +361,7 @@ void TRiga::edit_keys( const KEY key, TPiede_documento& nuovo )
// Inizio modifica // Inizio modifica
case K_SPACE: case K_SPACE:
vecchio.destroy( ); vecchio.destroy( );
somma( vecchio ); // somma( vecchio );
break; break;
// Cancellazione // Cancellazione
@ -444,7 +375,7 @@ void TRiga::edit_keys( const KEY key, TPiede_documento& nuovo )
// Toglie i vecchi valori // Toglie i vecchi valori
nuovo.sottrai( vecchio ); nuovo.sottrai( vecchio );
// Aggiunge i nuovi all // Aggiunge i nuovi all
somma( nuovo ); // somma( nuovo );
break; break;
} }
} }

View File

@ -83,11 +83,6 @@ class TRiga : public TObject
// Disabilita le colonne dello sheet come da profilo riga // Disabilita le colonne dello sheet come da profilo riga
void configura_sheet( TSheet_field& f, int numriga ); void configura_sheet( TSheet_field& f, int numriga );
// Somma la riga su di un piede documento // Somma la riga su di un piede documento
void somma( TPiede_documento& piede );
// Sottrae la riga da un piede documento
void sottrai( TPiede_documento& piede );
// Gestisce la modifica/cancellazione della riga sul piede
// documento indicato. Va chiamata negli handler degli sheet
void edit_keys( const KEY key, TPiede_documento& nuovo ); void edit_keys( const KEY key, TPiede_documento& nuovo );
// Costruisce e Ritorna la maschera della riga per la editazione // Costruisce e Ritorna la maschera della riga per la editazione
TVariable_mask * getmask(); TVariable_mask * getmask();

View File

@ -264,39 +264,15 @@ bool TCond_vendita::cerca( int tiporicerca )
break; break;
case 'C': case 'C':
{ {
const TRectype rec_to_found(_rcondv.curr()); _rcondv.put( "CODRIGA", anamag().get("GRMERC"));
_rcondv.put( "CODRIGA", anamag().get( "GRMERC1" ) );
if (_rcondv.read( ) != NOERR )
{
_rcondv.curr() = rec_to_found;
_rcondv.put( "CODRIGA", anamag().get( "GRMERC2" ) );
if (_rcondv.read( ) != NOERR )
{
_rcondv.curr() = rec_to_found;
_rcondv.put( "CODRIGA", anamag().get( "GRMERC3" ) );
_rcondv.read( ); _rcondv.read( );
} }
}
}
break; break;
case 'L': case 'L':
{ {
const TRectype rec_to_found(_rcondv.curr()); _rcondv.put( "CODRIGA", anamag().get("GRMERC").left(3));
_rcondv.put( "CODRIGA", anamag().get("GRMERC1").left(3) );
if (_rcondv.read( ) != NOERR )
{
_rcondv.curr() = rec_to_found;
_rcondv.put( "CODRIGA", anamag().get("GRMERC2").left(3) );
if (_rcondv.read( ) != NOERR )
{
_rcondv.curr() = rec_to_found;
_rcondv.put( "CODRIGA", anamag().get("GRMERC3").left(3) );
_rcondv.read( ); _rcondv.read( );
} }
}
}
break; break;
default: default:
break; break;
@ -433,39 +409,15 @@ void TCond_vendita::ricerca(bool full_load)
break; break;
case 'C': case 'C':
{ {
const TRectype rec_to_found(_sconti.curr()); _sconti.put( "CODART", anamag().get("GRMERC"));
_sconti.put( "CODART", anamag().get( "GRMERC1" ) );
if (_sconti.read() != NOERR )
{
_sconti.curr() = rec_to_found;
_sconti.put( "CODART", anamag().get( "GRMERC2" ) );
if (_sconti.read() != NOERR )
{
_sconti.curr() = rec_to_found;
_sconti.put( "CODART", anamag().get( "GRMERC3" ) );
_sconti.read( ); _sconti.read( );
} }
}
}
break; break;
case 'L': case 'L':
{ {
const TRectype rec_to_found(_sconti.curr()); _sconti.put("CODART", anamag().get("GRMERC").left(3));
_sconti.put("CODART", anamag().get("GRMERC1").left(3));
if (_sconti.read() != NOERR )
{
_sconti.curr() = rec_to_found;
_sconti.put("CODART", anamag().get("GRMERC2").left(3));
if (_sconti.read() != NOERR )
{
_sconti.curr() = rec_to_found;
_sconti.put("CODART", anamag().get("GRMERC3").left(3));
_sconti.read(); _sconti.read();
} }
}
}
break; break;
default: default:
error_box("Tipo di chiave righe sconti '%c' non valida!", rigakey); error_box("Tipo di chiave righe sconti '%c' non valida!", rigakey);

View File

@ -107,7 +107,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
{ {
TString16 stato; TString16 stato;
const TString16 codval(m.get(F_CODVAL)); const TString16 codval(m.get(F_CODVAL));
const TString16 datacambio(m.get(F_DATACAMBIO)); const TString16 datacambio(m.get(F_DATACAMBIO1));
// Setta i campi che appartengono al file LF_CLIFO // Setta i campi che appartengono al file LF_CLIFO
const bool occas = app().config_ditta().get_bool("GESOCCAS") && occasionale(); const bool occas = app().config_ditta().get_bool("GESOCCAS") && occasionale();
@ -121,7 +121,11 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
m.enable(F_RAGSOC, !occas); m.enable(F_RAGSOC, !occas);
if(!onload) if(!onload)
{ {
if (m.id2pos(F_CODVAL) >= 0 && m.field(F_CODVAL).active())
set( m, F_CODVAL, LF_CLIFO, "CODVAL" ); set( m, F_CODVAL, LF_CLIFO, "CODVAL" );
if (m.id2pos(F_CODVAL1) >= 0 && m.field(F_CODVAL1).active())
set( m, F_CODVAL1, LF_CLIFO, "CODVAL" );
if (m.id2pos(F_CODLIN) >= 0 && m.field(F_CODLIN).active())
set( m, F_CODLIN, LF_CLIFO, "CODLIN" ); set( m, F_CODLIN, LF_CLIFO, "CODLIN" );
set( m, F_CODPAG, LF_CLIFO, "CODPAG" ); set( m, F_CODPAG, LF_CLIFO, "CODPAG" );
set( m, F_CODABIA, LF_CLIFO, "CODABI" ); set( m, F_CODABIA, LF_CLIFO, "CODABI" );
@ -143,6 +147,14 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
set( m, F_ADDBRB, LF_CFVEN, "ADDBOLLIRB" ); set( m, F_ADDBRB, LF_CFVEN, "ADDBOLLIRB" );
set( m, F_ADDBTR, LF_CFVEN, "ADDBOLLITR" ); set( m, F_ADDBTR, LF_CFVEN, "ADDBOLLITR" );
set(m, F_CATVEN, LF_CFVEN, "CATVEN"); set(m, F_CATVEN, LF_CFVEN, "CATVEN");
if (m.id2pos(F_CODLIST) >= 0 && m.field(F_CODLIST).active())
set(m, F_CODLIST, LF_CFVEN, "CODLIST");
if (m.id2pos(F_CODLIST1) >= 0 && m.field(F_CODLIST1).active())
set(m, F_CODLIST1, LF_CFVEN, "CODLIST");
if (m.id2pos(F_CODAG) >= 0 && m.field(F_CODAG).active())
set(m, F_CODAG, LF_CFVEN, "CODAG");
set(m, F_CODZON, LF_CFVEN, "CODZONA");
set(m, F_RAGGR, LF_CFVEN, "RAGGDOC");
} }
if ( occasionale ( ) ) if ( occasionale ( ) )
{ {
@ -172,22 +184,32 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
} }
// m.set( F_DESSTATOCF, get( "%STA", stato, "S0" ) ); // m.set( F_DESSTATOCF, get( "%STA", stato, "S0" ) );
const TString16 newcodval(m.get(F_CODVAL)); const TString16 newcodval(m.get(F_CODVAL));
const TString16 newdatacambio(m.get(F_DATACAMBIO)); const TString16 newdatacambio(m.get(F_DATACAMBIO1));
if ((m.id2pos(F_CAMBIO) >= 0) && (newcodval.empty() || newdatacambio.empty())) if ((m.id2pos(F_CAMBIO) >= 0) && (newcodval.empty() || newdatacambio.empty()))
m.reset(F_CAMBIO); m.reset(F_CAMBIO);
if (m.id2pos(F_CODVAL) >= 0 && m.field(F_CODVAL).active())
m.check_field(F_CODVAL); m.check_field(F_CODVAL);
if (codval != newcodval || datacambio != newdatacambio) if (m.id2pos(F_CODVAL1) >= 0 && m.field(F_CODVAL1).active())
m.check_field(F_DATACAMBIO); m.check_field(F_CODVAL1);
if (m.id2pos(F_DATACAMBIO1) >= 0 && m.field(F_DATACAMBIO1).active() &&
(codval != newcodval || datacambio != newdatacambio))
m.check_field(F_DATACAMBIO1);
m.check_field(F_COMCF); m.check_field(F_COMCF);
m.check_field(F_STATOCF); m.check_field(F_STATOCF);
m.check_field( F_CODPAG ); m.check_field( F_CODPAG );
if (m.id2pos(F_CODLIN) >= 0 && m.field(F_CODLIN).active())
m.check_field( F_CODLIN ); m.check_field( F_CODLIN );
// m.check_field( F_CODABIA ); // m.check_field( F_CODABIA );
m.check_field( F_CODCABA ); m.check_field( F_CODCABA );
// m.check_field( F_CODABIP ); // m.check_field( F_CODABIP );
if (m.id2pos(F_CODLIST) >= 0 && m.field(F_CODLIST).active())
m.check_field( F_CODLIST );
if (m.id2pos(F_CODLIST1) >= 0 && m.field(F_CODLIST1).active())
m.check_field( F_CODLIST1);
m.check_field( F_CODCABP ); m.check_field( F_CODCABP );
m.check_field( F_CODINDSP ); m.check_field( F_CODINDSP );
if (m.id2pos(F_CODAG) >= 0 && m.field(F_CODAG).active())
m.check_field( F_CODAG ); m.check_field( F_CODAG );
m.check_field( F_CODSPMEZZO ); m.check_field( F_CODSPMEZZO );
m.check_field( F_CODPORTO ); m.check_field( F_CODPORTO );
@ -197,6 +219,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
m.check_field( F_CODVETT2 ); m.check_field( F_CODVETT2 );
m.check_field( F_CODVETT3 ); m.check_field( F_CODVETT3 );
m.check_field( F_CATVEN ); m.check_field( F_CATVEN );
m.check_field( F_CODZON );
// imposta_dati_comune( m ); // imposta_dati_comune( m );
imposta_indirizzo_spedizione( m ); imposta_indirizzo_spedizione( m );
imposta_sconto_testa( m ); imposta_sconto_testa( m );
@ -350,7 +373,7 @@ void TCliForVendite::imposta_valuta( TMask& m )
if ( codtab.sub( 0, 2 ) == val ) if ( codtab.sub( 0, 2 ) == val )
{ {
m.set( F_CAMBIO, cambi.get( "R10" ) ); m.set( F_CAMBIO, cambi.get( "R10" ) );
m.set( F_DATACAMBIO, cambi.get( "D0" ) ); m.set( F_DATACAMBIO1, cambi.get( "D0" ) );
return; return;
} }
} }

View File

@ -14,7 +14,7 @@ void TMotore_application::init_query_mode( TMask& m )
_msk->field(F_CODNUM).set_focusdirty(TRUE); _msk->field(F_CODNUM).set_focusdirty(TRUE);
_msk->field(F_CODNUM).on_key(K_TAB); _msk->field(F_CODNUM).on_key(K_TAB);
_msk->field(F_CODNUM).set_dirty(FALSE); _msk->field(F_CODNUM).set_dirty(FALSE);
_msk->set( F_TIPODOC, _doc->tipodoc(), TRUE); _msk->set( F_TIPODOC, _doc->tipo().codice(), TRUE);
} }
void TMotore_application::init_insert_mode( TMask& m ) void TMotore_application::init_insert_mode( TMask& m )
@ -347,6 +347,7 @@ bool TMotore_application::clifo_handler( TMask_field& f, KEY key )
void TMotore_application::carica_piedi( ) void TMotore_application::carica_piedi( )
{ {
/*
TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) ); // prof TToken_string s( pro( ).get( "PROGPIEDE", "MAIN" ) ); // prof
TString s1 = s.get( ); TString s1 = s.get( );
TTable ppd( "PPD" ); TTable ppd( "PPD" );
@ -365,6 +366,7 @@ void TMotore_application::carica_piedi( )
message_box( "Piede non trovato( %s )", ( const char * )s1 ); message_box( "Piede non trovato( %s )", ( const char * )s1 );
s1 = s.get( ); s1 = s.get( );
} }
*/
} }
void TMotore_application::somma_piedi( ) void TMotore_application::somma_piedi( )
@ -524,7 +526,7 @@ TMask* TMotore_application::get_mask( int mode )
msk1->enable(F_CODLIN, geslin); msk1->enable(F_CODLIN, geslin);
msk1->enable(F_DESLIN, geslin); msk1->enable(F_DESLIN, geslin);
const bool geslis = _config_ditta->get_bool("GES[1]"); const bool geslis = _config_ditta->get_bool("GES", "ve", 1);
const bool gesliscatven = _config_ditta->get_bool("GESLISCV"); const bool gesliscatven = _config_ditta->get_bool("GESLISCV");
if (geslis) if (geslis)
@ -538,7 +540,7 @@ TMask* TMotore_application::get_mask( int mode )
msk1->hide(F_CODLIST1); msk1->hide(F_CODLIST1);
} }
const bool gescontr = _config_ditta->get_bool("GES[2]"); const bool gescontr = _config_ditta->get_bool("GES", "ve", 2);
const bool gescontrcli = _config_ditta->get_bool("GESCONCC"); const bool gescontrcli = _config_ditta->get_bool("GESCONCC");
if (gescontr) if (gescontr)
@ -552,7 +554,7 @@ TMask* TMotore_application::get_mask( int mode )
msk1->hide(F_CODCONT1); msk1->hide(F_CODCONT1);
} }
const bool gesoff = _config_ditta->get_bool("GES[3]"); const bool gesoff = _config_ditta->get_bool("GES", "ve", 3);
msk1->enable(F_CODCAMP, gesoff); msk1->enable(F_CODCAMP, gesoff);
@ -600,7 +602,7 @@ const char* TMotore_application::get_next_key( )
if (value.not_empty()) if (value.not_empty())
{ {
TTable tabnum( "NUM" ); TTable tabnum( "%NUM" );
tabnum.zero( ); tabnum.zero( );
tabnum.put( "CODTAB", value ); tabnum.put( "CODTAB", value );
if ( tabnum.read( ) == NOERR && tabnum.get_bool ( "B1" )) if ( tabnum.read( ) == NOERR && tabnum.get_bool ( "B1" ))
@ -658,7 +660,6 @@ int TMotore_application::read( TMask& m )
currentrow.load( rec ); currentrow.load( rec );
currentrow.save(f, srow); currentrow.save(f, srow);
f.post_insert(i - 1); f.post_insert(i - 1);
currentrow.somma( _piede );
} }
carica_piedi( ); carica_piedi( );
} }
@ -683,7 +684,7 @@ int TMotore_application::write( const TMask& m ) // C 90
for ( int i = 0; i < f.items( ); i ++ ) for ( int i = 0; i < f.items( ); i ++ )
{ {
TToken_string& t = f.row( i ); TToken_string& t = f.row( i );
TRectype& rec = _doc->add_row(); TRectype& rec = _doc->new_row();
store_riga( f, i, rec ); store_riga( f, i, rec );
} }
err = _doc->write( ); err = _doc->write( );
@ -718,7 +719,7 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
for ( int i = 0; i < f.items( ); i ++ ) for ( int i = 0; i < f.items( ); i ++ )
{ {
TToken_string& t = f.row( i ); TToken_string& t = f.row( i );
TRectype& rec = _doc->add_row(); TRectype& rec = _doc->new_row();
store_riga( f, i, rec ); store_riga( f, i, rec );
} }
err = _doc->rewrite( ); err = _doc->rewrite( );
@ -853,7 +854,7 @@ bool TMotore_application::user_destroy( )
// Registro l'ultimo tipo documento e l'ultima numerazione // Registro l'ultimo tipo documento e l'ultima numerazione
TConfig utente( CONFIG_USER ); TConfig utente( CONFIG_USER );
utente.set( "CODNUM", _doc->numerazione(), "ve" ); utente.set( "CODNUM", _doc->numerazione(), "ve" );
utente.set( "TIPODOC", _doc->tipodoc(), "ve" ); utente.set( "TIPODOC", _doc->tipo().codice(), "ve" );
if (_config_ditta != NULL) if (_config_ditta != NULL)
delete _config_ditta; delete _config_ditta;

View File

@ -260,7 +260,7 @@ public:
TConfig & pro() { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; } TConfig & pro() { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; }
const TFilename & proname() { return _pro->name(); } const TFilename & proname() { return _pro->name(); }
TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; } TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }
TMask & edit_mask() { return (TMask &) _doc_masks[_doc->tipodoc()]; } TMask & edit_mask() { return (TMask &) _doc_masks[_doc->tipo().codice()]; }
TRelation & rel() { CHECK( _rel, "Relazione nulla!" ); return *_rel; } 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; } TCliForVendite & clifo() { CHECK( _clifor, "Oggetto cliente nullo!" ); return *_clifor; }

View File

@ -148,6 +148,7 @@ public:
// PICTURE // PICTURE
void picture( const int p) { _out << "PI " << p << "\n"; }; void picture( const int p) { _out << "PI " << p << "\n"; };
void picture( const TString & s) { _out << "PI " << s << "\n"; };
// FIELD // FIELD
void field( const TString& s ) { outline( s, "FI "); }; void field( const TString& s ) { outline( s, "FI "); };
@ -1385,10 +1386,12 @@ void TMask_generator::genera( const TString& profilo )
if (s.not_empty()) if (s.not_empty())
{ {
intestazione_pagina( ); intestazione_pagina( );
TTable ppd( "PPD" ); TTable ppd( "%PPD" );
int cp = 1; int nr = 1;
for (const char * codpiede = s.get(0); codpiede && *codpiede; codpiede = s.get()) int id = 0;
for (const char * cp = s.get(0); cp && *cp; cp = s.get())
{ {
const TString16 codpiede(cp);
do_events(); do_events();
ppd.zero( ); ppd.zero( );
ppd.put( "CODTAB", codpiede ); ppd.put( "CODTAB", codpiede );
@ -1396,21 +1399,26 @@ void TMask_generator::genera( const TString& profilo )
{ {
const TString80 picture(ppd.get( "S3")); const TString80 picture(ppd.get( "S3"));
_m->control( T_NUMERO, BASE_PIEDE + ppd.get_int("I0"), 1805); id++;
_m->control( T_NUMERO, BASE_PIEDE + id, 1805);
_m->begin( ); _m->begin( );
TString80 header(ppd.get("S1")); header.left_just(40 - picture.len()); TString80 header(ppd.get("S0")); header.left_just(40 - picture.len());
_m->prompt( 2, 7 + cp, header ); _m->prompt( 2, 7 + nr, header );
_m->field(codpiede);
if (picture.not_empty())
_m->picture(picture);
_m->flag( "D" ); _m->flag( "D" );
_m->end( ); _m->end( );
cp++; nr++;
if( cp + MASK_FIRST_LINE > MAX_LINES_PER_PAGE ) if( nr + MASK_FIRST_LINE > MAX_LINES_PER_PAGE )
{ {
_m->end( ); _m->end( );
intestazione_pagina( ); intestazione_pagina( );
_m->line( MASK_FIRST_LINE ); _m->line( MASK_FIRST_LINE );
cp = 1; nr = 1;
} }
} }
} }

View File

@ -85,8 +85,9 @@ FLAG=R
USE=20 USE=20
INPUT=TIPOCF F_TIPOCF SELECT~CODCF F_CODCF INPUT=TIPOCF F_TIPOCF SELECT~CODCF F_CODCF
DISPLAY="Codice" CODCF~"Ragione sociale@50" RAGSOC~"Indirizzo@35" INDCF DISPLAY="Codice" CODCF~"Ragione sociale@50" RAGSOC~"Indirizzo@35" INDCF
OUTPUT=F_CODCF CODCF~F_RAGSOC RAGSOC~F_INDCF INDCF~F_CIVCF CIVCF~F_CODAG CODAG~F_CODVAL CODVAL~F_OCCAS OCCAS~F_CODLIN CODLIN~F_CODABIA CODABI~F_CODCABA CODCAB~F_CODLIST LF_CFVEN->CODLIST~F_CODPAG CODPAG OUTPUT=F_CODCF CODCF~F_RAGSOC RAGSOC~F_INDCF INDCF~F_CIVCF CIVCF
SPECIAL=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 INTO TIPOCF=TIPOCF CODCF=CODCF //SPECIAL=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 INTO TIPOCF=TIPOCF CODCF=CODCF
SPECIAL=JO LF_CFVEN TO LF_CLIFO INTO TIPOCF=TIPOCF CODCF=CODCF
WARNING=Cliente non presente WARNING=Cliente non presente
HELP=Inserire il codice del cliente HELP=Inserire il codice del cliente
@ -650,8 +651,9 @@ MSKID=F_CODCONT
TYPE=T_STRINGA TYPE=T_STRINGA
PROMPT="Contratto " PROMPT="Contratto "
SIZE=3 SIZE=3
USE=LF_CONDV SE CODCF=="" FLAG=U
INPUT=TIPO "C"~CATVEN ""~TIPOCF F_TIPOCF~COD F_CODCONT USE=LF_CONDV
INPUT=TIPO "C"~TIPOCF ""~COD F_CODCONT
DISPLAY="Codice" LF_CONDV->COD~"Descrizione@35" LF_CONDV->DESCR DISPLAY="Codice" LF_CONDV->COD~"Descrizione@35" LF_CONDV->DESCR
OUTPUT=F_CODCONT LF_CONDV->COD~F_DESCONT LF_CONDV->DESCR OUTPUT=F_CODCONT LF_CONDV->COD~F_DESCONT LF_CONDV->DESCR
SPECIAL=ADD RUN ve2 -1 c SPECIAL=ADD RUN ve2 -1 c
@ -665,6 +667,7 @@ MSKID=F_CODCONT1
TYPE=T_STRINGA TYPE=T_STRINGA
PROMPT="Contratto " PROMPT="Contratto "
SIZE=3 SIZE=3
FLAG=U
USE=LF_CONDV SELECT CODCF!="" USE=LF_CONDV SELECT CODCF!=""
INPUT=TIPO "C"~TIPOCF F_TIPOCF SE~CODCF F_CODCF SE~COD F_CODCONT1 INPUT=TIPO "C"~TIPOCF F_TIPOCF SE~CODCF F_CODCF SE~COD F_CODCONT1
DISPLAY="Cliente" LF_CONDV->CODCF~"Codice" LF_CONDV->COD~"Descrizione@35" LF_CONDV->DESCR DISPLAY="Cliente" LF_CONDV->CODCF~"Codice" LF_CONDV->COD~"Descrizione@35" LF_CONDV->DESCR
@ -716,6 +719,24 @@ PROMPT="Sconto "
SIZE=25 SIZE=25
SPECIAL=VA 23 0 SPECIAL=VA 23 0
[RAGGR]
GROUP=2300
X=2
Y=0
FIELDNAME=RAGGR
MSKID=F_RAGGR
TYPE=T_CHECKBOX
PROMPT="Raggruppamento documento "
[RAGGREFF]
GROUP=2300
X=40
Y=0
FIELDNAME=RAGGREFF
MSKID=F_RAGGREFF
TYPE=T_CHECKBOX
PROMPT="Raggruppamento effetti "
[GRINDSPED] [GRINDSPED]
GROUP=900 GROUP=900
X=1 X=1
@ -725,7 +746,6 @@ TYPE=T_CORNICE
PROMPT=Indirizzo spedizione PROMPT=Indirizzo spedizione
SIZE=7807 SIZE=7807
[CODINDSP] [CODINDSP]
GROUP=900 GROUP=900
X=2 X=2
@ -889,6 +909,35 @@ INPUT=S0 F_DESAG
DISPLAY="Descrizione@50" S0~"Codice" CODTAB DISPLAY="Descrizione@50" S0~"Codice" CODTAB
OUTPUT=F_CODAG CODTAB~F_DESAG S0 OUTPUT=F_CODAG CODTAB~F_DESAG S0
[CODZON]
GROUP=1100
X=2
Y=1
FIELDNAME=ZONA
MSKID=F_CODZON
TYPE=T_STRINGA
PROMPT="Zona "
SIZE=3
FLAG=U
USE=ZON
INPUT=CODTAB F_CODZON
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_CODZON CODTAB~F_DESZON S0
SPECIAL=CH NORMAL
[DESZON]
GROUP=1100
X=24
Y=1
MSKID=F_DESZON
TYPE=T_STRINGA
PROMPT=""
SIZE=50
USE=ZON KEY 2
INPUT=S0 F_DESZON
DISPLAY="Descrizione@50" S0~"Codice" CODTAB
OUTPUT=F_CODZON CODTAB~F_DESZON S0
[CODAGVIS] [CODAGVIS]
GROUP=1110 GROUP=1110
X=2 X=2
@ -1340,15 +1389,6 @@ MSKID=F_IMPNETTI
TYPE=T_CHECKBOX TYPE=T_CHECKBOX
PROMPT="Importi netti " PROMPT="Importi netti "
[RAGGREFF]
GROUP=2300
X=2
Y=0
FIELDNAME=RAGGREFF
MSKID=150
TYPE=T_CHECKBOX
PROMPT="Raggruppamento effetti "
[SPESEINC] [SPESEINC]
GROUP=2400 GROUP=2400
X=2 X=2

View File

@ -42,7 +42,7 @@ HEIGHT=8
HEIGHT=2 HEIGHT=2
[1100] [1100]
HEIGHT=1 HEIGHT=2
[1110] [1110]
HEIGHT=1 HEIGHT=1

View File

@ -94,4 +94,5 @@
#define F_DATACAMBIO1 202 #define F_DATACAMBIO1 202
#define F_CODLIST1 203 #define F_CODLIST1 203
#define F_CODCONT1 204 #define F_CODCONT1 204
#define F_CODZON 205
#endif // veuml.h #endif // veuml.h

View File

@ -70,4 +70,5 @@
#define F_DESPORTO 355 #define F_DESPORTO 355
#define F_DESNOTESP1 356 #define F_DESNOTESP1 356
#define F_DESNOTESP2 357 #define F_DESNOTESP2 357
#define F_DESZON 358
#endif // __VEUML1_H #endif // __VEUML1_H