correzione prima serie di errori
git-svn-id: svn://10.65.10.50/trunk@2684 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2994f22df3
commit
e68afa141a
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
#include "batbtip.h"
|
#include "batbtip.h"
|
||||||
//#include "ve4.h"
|
|
||||||
|
|
||||||
TOOLBAR "" 0 20 60 2
|
TOOLBAR "" 0 20 60 2
|
||||||
|
|
||||||
@ -10,11 +8,11 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Tabella tipi di documento" -1 -1 60 14
|
PAGE "Tabella tipi di documento" -1 -1 60 14
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 75 7
|
GROUPBOX DLG_NULL 75 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
FLAG "R"
|
FLAG "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB 4
|
STRING F_CODTAB 4
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -15,11 +15,10 @@ END
|
|||||||
STRING F_UM 2
|
STRING F_UM 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Unita' di misura "
|
PROMPT 2 2 "Unita' di misura "
|
||||||
FIELD %UM->CODTAB
|
FIELD CODTAB
|
||||||
KEY 1
|
KEY 1
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
USE %UM
|
USE %UMS
|
||||||
FLAG "U"
|
|
||||||
INPUT CODTAB F_UM
|
INPUT CODTAB F_UM
|
||||||
DISPLAY "Codice " CODTAB
|
DISPLAY "Codice " CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
@ -31,31 +30,36 @@ END
|
|||||||
STRING F_DESCR 50
|
STRING F_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Descrizione "
|
PROMPT 2 4 "Descrizione "
|
||||||
FIELD %UM->S0
|
FIELD S0
|
||||||
KEY 2
|
KEY 2
|
||||||
USE %UM KEY 2
|
USE %UMS KEY 2
|
||||||
INPUT S0 F_DESCR
|
INPUT S0 F_DESCR
|
||||||
DISPLAY "Codice " CODTAB
|
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_UM CODTAB
|
DISPLAY "Codice " CODTAB
|
||||||
OUTPUT F_DESCR S0
|
COPY OUTPUT F_UM
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_UMR 2
|
STRING F_UMR 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Unita' di riferimento "
|
PROMPT 2 8 "Unita' di riferimento "
|
||||||
FIELD %UM->S7
|
FIELD S7
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
|
USE %UMS
|
||||||
|
INPUT CODTAB F_UMR
|
||||||
|
COPY DISPLAY F_UM
|
||||||
|
OUTPUT F_UMR CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD NONE
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_FC 15 5
|
NUMBER F_FC 15 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Fattore conv. al rif. "
|
PROMPT 2 10 "F.Conversione al riferim. "
|
||||||
FIELD %UM->R0
|
FIELD R10
|
||||||
|
VALIDATE REQIF_FUNC 1 F_UMR
|
||||||
|
WARNING "Fattore di conversione obbligatorio se specificata l'unita' di misura di riferimento"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -87,7 +87,7 @@ void TCliFor::load( const char tipocf, const long codcf, const TString& ocfpi )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCliForVendite::update_mask( TMask_vendite& m, bool onload )
|
void TCliForVendite::update_mask( TVariable_mask& m, bool onload )
|
||||||
{
|
{
|
||||||
TString16 stato;
|
TString16 stato;
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ bool TCliFor::occas_code_handler(TMask_field& f, KEY key)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCliForVendite::imposta_dati_comune( TMask_vendite& m )
|
void TCliForVendite::imposta_dati_comune( TVariable_mask& m )
|
||||||
{
|
{
|
||||||
TLocalisamfile comuni(LF_COMUNI);
|
TLocalisamfile comuni(LF_COMUNI);
|
||||||
comuni.setkey( 1 );
|
comuni.setkey( 1 );
|
||||||
@ -217,7 +217,7 @@ void TCliForVendite::imposta_dati_comune( TMask_vendite& m )
|
|||||||
m.set( F_PROVCOM, comuni.get( "PROVCOM" ) );
|
m.set( F_PROVCOM, comuni.get( "PROVCOM" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCliForVendite::imposta_indirizzo_spedizione( TMask_vendite& m )
|
void TCliForVendite::imposta_indirizzo_spedizione( TVariable_mask& m )
|
||||||
{
|
{
|
||||||
TString16 stato;
|
TString16 stato;
|
||||||
if( occasionale( ) )
|
if( occasionale( ) )
|
||||||
@ -276,7 +276,7 @@ void TCliForVendite::imposta_indirizzo_spedizione( TMask_vendite& m )
|
|||||||
m.set( F_PROVCOMSP, comuni.get( "PROVCOM" ) );
|
m.set( F_PROVCOMSP, comuni.get( "PROVCOM" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCliForVendite::imposta_sconto_testa( TMask_vendite& m )
|
void TCliForVendite::imposta_sconto_testa( TVariable_mask& m )
|
||||||
{
|
{
|
||||||
TConfig ditta( CONFIG_DITTA );
|
TConfig ditta( CONFIG_DITTA );
|
||||||
TString16 codsconto;
|
TString16 codsconto;
|
||||||
@ -349,7 +349,7 @@ void TCliForVendite::imposta_sconto_testa( TMask_vendite& m )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCliForVendite::imposta_valuta( TMask_vendite& m )
|
void TCliForVendite::imposta_valuta( TVariable_mask& m )
|
||||||
{
|
{
|
||||||
|
|
||||||
TConfig ditta( CONFIG_DITTA );
|
TConfig ditta( CONFIG_DITTA );
|
||||||
|
16
ve/tclifor.h
16
ve/tclifor.h
@ -14,8 +14,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef __TMASKVEN_H
|
#ifndef __VARMASK_H
|
||||||
#include "tmaskven.h"
|
#include <varmask.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class TData_picker : public TRelation
|
class TData_picker : public TRelation
|
||||||
@ -32,7 +32,7 @@ public:
|
|||||||
int get_int( const int file, const TString& fieldname );
|
int get_int( const int file, const TString& fieldname );
|
||||||
long get_long( 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 get_bool( const int file, const TString& fieldname );
|
||||||
void set( TMask_vendite& m, const int mskfield, const int file, const TString& filefield ){ m.set( mskfield, get( file, filefield ) ); };
|
void set( TVariable_mask& m, const int mskfield, const int file, const TString& filefield ){ m.set( mskfield, get( file, filefield ) ); };
|
||||||
};
|
};
|
||||||
|
|
||||||
class TCliFor : public TData_picker
|
class TCliFor : public TData_picker
|
||||||
@ -65,11 +65,11 @@ class TCliForVendite : public TCliFor
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void update_mask( TMask_vendite& m, bool onload = FALSE );
|
void update_mask( TVariable_mask& m, bool onload = FALSE );
|
||||||
void imposta_dati_comune( TMask_vendite& m );
|
void imposta_dati_comune( TVariable_mask& m );
|
||||||
void imposta_valuta( TMask_vendite& m );
|
void imposta_valuta( TVariable_mask& m );
|
||||||
void imposta_indirizzo_spedizione( TMask_vendite& m );
|
void imposta_indirizzo_spedizione( TVariable_mask& m );
|
||||||
void imposta_sconto_testa( TMask_vendite& m );
|
void imposta_sconto_testa( TVariable_mask& m );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
int main( int argc, char** argv )
|
int main( int argc, char** argv )
|
||||||
{
|
{
|
||||||
int rt = -1;
|
int rt = -1;
|
||||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : -1;
|
const int r = (argc > 1) ? atoi( &argv[1][1] ) : 1;
|
||||||
|
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
|
@ -242,7 +242,7 @@ bool TMotore_application::val_handler( TMask_field& f, KEY key )
|
|||||||
|
|
||||||
// m.set( F_CAMBIO, "" );
|
// m.set( F_CAMBIO, "" );
|
||||||
// m.set( F_DATACAMBIO, "" );
|
// m.set( F_DATACAMBIO, "" );
|
||||||
app( ).clifo( ).imposta_valuta( ( TMask_vendite& ) m );
|
app( ).clifo( ).imposta_valuta( ( TVariable_mask& ) m );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,7 +400,7 @@ bool TMotore_application::clifo_handler( TMask_field& f, KEY key )
|
|||||||
if ( f.focusdirty( ) )
|
if ( f.focusdirty( ) )
|
||||||
{
|
{
|
||||||
app( ).clifo( ).load( cf, atol( f.get( ) ), "" );
|
app( ).clifo( ).load( cf, atol( f.get( ) ), "" );
|
||||||
app( ).clifo( ).update_mask( ( TMask_vendite& ) m );
|
app( ).clifo( ).update_mask( ( TVariable_mask& ) m );
|
||||||
if( f.mask( ).id2pos( F_OCCASEDIT ) > 0 )
|
if( f.mask( ).id2pos( F_OCCASEDIT ) > 0 )
|
||||||
{
|
{
|
||||||
if ( app( ).clifo( ).occasionale( ) && app( ).clifo( ).occas_mask( ).get( O_CODICE ).empty( ) )
|
if ( app( ).clifo( ).occasionale( ) && app( ).clifo( ).occas_mask( ).get( O_CODICE ).empty( ) )
|
||||||
@ -495,7 +495,7 @@ void TMotore_application::get_edit_mask( const char * profilo )
|
|||||||
_proname = new TFilename( fn );
|
_proname = new TFilename( fn );
|
||||||
_proname->upper( );
|
_proname->upper( );
|
||||||
if ( _msk1 ) delete _msk1;
|
if ( _msk1 ) delete _msk1;
|
||||||
_msk1 = new TMask_vendite( pro( ).get( "MSKFILE", "MAIN" ) );
|
_msk1 = new TVariable_mask( 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 ) );
|
// edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) );
|
||||||
_sheet = &( TSheet_field& )edit_mask( ).field( F_SHEET );
|
_sheet = &( TSheet_field& )edit_mask( ).field( F_SHEET );
|
||||||
@ -526,7 +526,7 @@ void TMotore_application::get_edit_mask( const char * profilo )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
listbox.replace_items( keys, descrs );
|
listbox.replace_items( keys, descrs );
|
||||||
sheet( ).set_getmask( ss_getmask );
|
((TVariable_sheet_field&)sheet()).set_getmask( ss_getmask );
|
||||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" );
|
||||||
for ( i = 1; i <= numhandler; i ++ )
|
for ( i = 1; i <= numhandler; i ++ )
|
||||||
{
|
{
|
||||||
@ -638,7 +638,7 @@ int TMotore_application::read( TMask& m )
|
|||||||
edit_mask( ).set( F_DESTIPODOC, query_mask( ).get( F_DESTIPODOC ) );
|
edit_mask( ).set( F_DESTIPODOC, query_mask( ).get( F_DESTIPODOC ) );
|
||||||
const char tipocf = m.get( F_TIPOCF )[ 0 ];
|
const char tipocf = m.get( F_TIPOCF )[ 0 ];
|
||||||
clifo( ).load( tipocf, m.get_int( F_CODCF ), rel( ).curr( ).get( "OCFPI" ) );
|
clifo( ).load( tipocf, m.get_int( F_CODCF ), rel( ).curr( ).get( "OCFPI" ) );
|
||||||
clifo( ).update_mask( ( TMask_vendite& ) m, TRUE );
|
clifo( ).update_mask( ( TVariable_mask& ) m, TRUE );
|
||||||
TLocalisamfile& rdoc = rel( ).lfile( LF_RIGHEDOC );
|
TLocalisamfile& rdoc = rel( ).lfile( LF_RIGHEDOC );
|
||||||
TRectype r = rdoc.curr( );
|
TRectype r = rdoc.curr( );
|
||||||
TRectype& trec = get_relation( )->curr( );
|
TRectype& trec = get_relation( )->curr( );
|
||||||
|
16
ve/ve0100.h
16
ve/ve0100.h
@ -112,12 +112,12 @@
|
|||||||
#include "ve1000o.h"
|
#include "ve1000o.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __TMASKVEN_H
|
#ifndef __VARMASK_H
|
||||||
#include "tmaskven.h"
|
#include <varmask.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __EXECP_H
|
#ifndef __EXECP_H
|
||||||
#include "execp.h"
|
#include <execp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __SCONTI_H
|
#ifndef __SCONTI_H
|
||||||
@ -143,13 +143,13 @@ class TMotore_application : public TRelation_application
|
|||||||
TMask* _msk;
|
TMask* _msk;
|
||||||
|
|
||||||
// Puntatore alla maschera di modifica/inserimento ( dipende dal profilo )
|
// Puntatore alla maschera di modifica/inserimento ( dipende dal profilo )
|
||||||
TMask_vendite* _msk1;
|
TVariable_mask* _msk1;
|
||||||
|
|
||||||
// puntatore alla relazione
|
// puntatore alla relazione
|
||||||
TRelation* _rel;
|
TRelation* _rel;
|
||||||
|
|
||||||
// Puntatore allo sheet delle righe documento
|
// Puntatore allo sheet delle righe documento
|
||||||
TSheet_field* _sheet;
|
TSheet_field * _sheet;
|
||||||
|
|
||||||
// Oggetto cliente per il motore
|
// Oggetto cliente per il motore
|
||||||
TCliForVendite* _clifor;
|
TCliForVendite* _clifor;
|
||||||
@ -253,11 +253,11 @@ public:
|
|||||||
|
|
||||||
// Operazione
|
// Operazione
|
||||||
|
|
||||||
const char tipocf( ){ return _tipocf; }
|
const char tipocf( ) { return _tipocf; }
|
||||||
void tipocf( const char tcf ){ _tipocf = tcf; }
|
void tipocf( const char tcf ) { _tipocf = tcf; }
|
||||||
bool valida_operazione( int operazione );
|
bool valida_operazione( int operazione );
|
||||||
|
|
||||||
TSheet_field& ss( ) const { return *_sheet; }
|
TSheet_field & ss( ) const { return *_sheet; }
|
||||||
TMotore_application( ) { _pro = NULL; }
|
TMotore_application( ) { _pro = NULL; }
|
||||||
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
|
||||||
virtual const char* get_next_key( );
|
virtual const char* get_next_key( );
|
||||||
|
@ -3,23 +3,33 @@
|
|||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
int numerazione_definitiva(TLocalisamfile& doc) {
|
int numerazione_definitiva(TLocalisamfile& doc)
|
||||||
|
{
|
||||||
int err= NOERR; // istanzia la variabile per il codice d'errore
|
int err= NOERR; // istanzia la variabile per il codice d'errore
|
||||||
TRectype &rec_doc= doc.curr(); // prende il record corrente dal file delle testate
|
TRectype &rec_doc= doc.curr(); // prende il record corrente dal file delle testate
|
||||||
TTable tabnum("NUM"); // istanzia la tabella delle numerazioni
|
TTable tabnum("NUM"); // istanzia la tabella delle numerazioni
|
||||||
|
|
||||||
tabnum.put("CODTAB", rec_doc.get("CODNUM")); // posiziona la tabella
|
tabnum.put("CODTAB", rec_doc.get("CODNUM")); // posiziona la tabella
|
||||||
if ((err= tabnum.read(_isequal, _lock))==NOERR) { // legge la tabella bloccandone il record
|
if ((err= tabnum.read(_isequal, _lock))==NOERR)
|
||||||
|
{ // legge la tabella bloccandone il record
|
||||||
long newndoc= tabnum.get_long("I1"); // legge il nuovo numero di documento dalla tabella
|
long newndoc= tabnum.get_long("I1"); // legge il nuovo numero di documento dalla tabella
|
||||||
|
|
||||||
tabnum.put("I1", newndoc+1); // aggiorna il nuovo numero di documento nella tabella
|
tabnum.put("I1", newndoc+1); // aggiorna il nuovo numero di documento nella tabella
|
||||||
doc.read(rec_doc, _isequal, _lock); // blocca il record corrente del file documenti
|
doc.read(rec_doc, _isequal, _lock); // blocca il record corrente del file documenti
|
||||||
|
|
||||||
TRectype newrec_doc(rec_doc); // istanzia un nuovo record su quello corrente
|
TRectype newrec_doc(rec_doc); // istanzia un nuovo record su quello corrente
|
||||||
|
|
||||||
newrec_doc.put("NDOC", newndoc); // scrive il nuovo numero di documento nel nuovo record
|
newrec_doc.put("NDOC", newndoc); // scrive il nuovo numero di documento nel nuovo record
|
||||||
newrec_doc.put("PROVV", "D"); // aggiorna il flag di tipo di numerazione
|
newrec_doc.put("PROVV", "D"); // aggiorna il flag di tipo di numerazione
|
||||||
TRecord_array arr_rdoc(LF_RIGHEDOC, "NRIGA"); // istanzia il record array per le righe
|
TRecord_array arr_rdoc(LF_RIGHEDOC, "NRIGA"); // istanzia il record array per le righe
|
||||||
if ((err= arr_rdoc.read(rec_doc))==NOERR) { // legge le righe del documento basandosi sul record con la vecchia chiave
|
if ((err= arr_rdoc.read(rec_doc))==NOERR)
|
||||||
|
{ // legge le righe del documento basandosi sul record con la vecchia chiave
|
||||||
TRecord_array newarr_rdoc(arr_rdoc); // crea una copia del record array per tenere le nuove righe
|
TRecord_array newarr_rdoc(arr_rdoc); // crea una copia del record array per tenere le nuove righe
|
||||||
for (int i=1; i<=newarr_rdoc.last_row(); i++) { // ciclo sui record delle righe
|
|
||||||
|
for (int i=1; i<=newarr_rdoc.last_row(); i++)
|
||||||
|
{ // ciclo sui record delle righe
|
||||||
TRectype &newrec_rdoc= newarr_rdoc.row(i, FALSE); // prende il record della riga corrente
|
TRectype &newrec_rdoc= newarr_rdoc.row(i, FALSE); // prende il record della riga corrente
|
||||||
|
|
||||||
newrec_rdoc.put("NDOC", newndoc); // scrive il nuovo numero di documento
|
newrec_rdoc.put("NDOC", newndoc); // scrive il nuovo numero di documento
|
||||||
newrec_rdoc.put("PROVV", "D"); // aggiorna il flag di tipo di numerazione
|
newrec_rdoc.put("PROVV", "D"); // aggiorna il flag di tipo di numerazione
|
||||||
}
|
}
|
||||||
|
@ -200,8 +200,8 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
|||||||
if (align== "TOP") cf.y()= fi.y();
|
if (align== "TOP") cf.y()= fi.y();
|
||||||
if (align== "MIDDLE") cf.y()= fi.y()+ fi.effective_height()/2;
|
if (align== "MIDDLE") cf.y()= fi.y()+ fi.effective_height()/2;
|
||||||
if (align== "BOTTOM") cf.y()= fi.y()+ fi.effective_height()-1;
|
if (align== "BOTTOM") cf.y()= fi.y()+ fi.effective_height()-1;
|
||||||
if (align== "LEFT") cf.x()= fi.x();
|
if (align== "LEFT") cf.set_x(fi.x());
|
||||||
if (align== "RIGHT") cf.x()= fi.x()+ fi.width();
|
if (align== "RIGHT") cf.set_x(fi.x()+ fi.width());
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
|
@ -308,4 +308,3 @@ END
|
|||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
|
|
||||||
|
|
395
ve/ve2400.cpp
395
ve/ve2400.cpp
@ -4,6 +4,7 @@
|
|||||||
#include <msksheet.h>
|
#include <msksheet.h>
|
||||||
#include <assoc.h>
|
#include <assoc.h>
|
||||||
#include <checks.h>
|
#include <checks.h>
|
||||||
|
#include <defmask.h>
|
||||||
|
|
||||||
#include "ve2400.h"
|
#include "ve2400.h"
|
||||||
|
|
||||||
@ -27,10 +28,12 @@ class TAnagrafica_magazzino: public TRelation_application {
|
|||||||
virtual void init_insert_mode(TMask &);
|
virtual void init_insert_mode(TMask &);
|
||||||
|
|
||||||
virtual int read(TMask& m);
|
virtual int read(TMask& m);
|
||||||
|
virtual bool remove();
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
|
|
||||||
static bool handle_sheet0(TMask_field &, KEY); // handler dello sheet delle unità di misura
|
static bool handle_sheet0(TMask_field &, KEY); // handler dello sheet delle unità di misura
|
||||||
|
static bool notify_sheet0(TSheet_field & s, int r, KEY k); // handler dello sheet delle unità di misura
|
||||||
static bool handle_sheet1(TMask_field &, KEY); // handler dello sheet delle descrizioni in lingua
|
static bool handle_sheet1(TMask_field &, KEY); // handler dello sheet delle descrizioni in lingua
|
||||||
static bool handle_sheet2(TMask_field &, KEY); // handler dello sheer dei codici alternativi
|
static bool handle_sheet2(TMask_field &, KEY); // handler dello sheer dei codici alternativi
|
||||||
static bool handle_sheet0_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unità di misura
|
static bool handle_sheet0_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unità di misura
|
||||||
@ -42,9 +45,11 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::user_create() {
|
bool TAnagrafica_magazzino::user_create()
|
||||||
_msk= new TMask("VE2400");
|
{
|
||||||
|
_msk= new TMask("ve2400");
|
||||||
_msk->set_handler(F_SHEET0, handle_sheet0);
|
_msk->set_handler(F_SHEET0, handle_sheet0);
|
||||||
|
((TSheet_field &)_msk->field(F_SHEET0)).set_notify(notify_sheet0);
|
||||||
_msk->set_handler(F_SHEET1, handle_sheet1);
|
_msk->set_handler(F_SHEET1, handle_sheet1);
|
||||||
_msk->set_handler(F_SHEET2, handle_sheet2);
|
_msk->set_handler(F_SHEET2, handle_sheet2);
|
||||||
|
|
||||||
@ -63,7 +68,8 @@ bool TAnagrafica_magazzino::user_create() {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::user_destroy() {
|
bool TAnagrafica_magazzino::user_destroy()
|
||||||
|
{
|
||||||
delete _linee_rec2;
|
delete _linee_rec2;
|
||||||
delete _linee_rec1;
|
delete _linee_rec1;
|
||||||
delete _linee_rec0;
|
delete _linee_rec0;
|
||||||
@ -75,56 +81,68 @@ bool TAnagrafica_magazzino::user_destroy() {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TAnagrafica_magazzino::read(TMask& m) {
|
int TAnagrafica_magazzino::read(TMask& m)
|
||||||
int err= TRelation_application::read(m);
|
{
|
||||||
if (err == NOERR) {
|
const int err= TRelation_application::read(m);
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0); // prende il sheet delle unità di misura
|
||||||
TRectype rum(_umart->curr()); // prende il record corrente dal file delle unità di misura
|
TRectype rum(_umart->curr()); // prende il record corrente dal file delle unità di misura
|
||||||
|
|
||||||
|
f0.destroy(); // cancella lo sheet
|
||||||
rum.zero();
|
rum.zero();
|
||||||
rum.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
rum.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
||||||
_linee_rec0->read(rum); // legge il record array
|
_linee_rec0->read(rum); // legge il record array
|
||||||
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0); // prende il sheet delle unità di misura
|
|
||||||
f0.destroy(); // cancella lo sheet
|
const int lastum = _linee_rec0->last_row();
|
||||||
int last= _linee_rec0->last_row();
|
for (int i= 1; i <= lastum; i++)
|
||||||
if (last>0) {
|
{
|
||||||
for (int i= 1; i <= last; i++) {
|
|
||||||
TRectype &rec= _linee_rec0->row(i, TRUE); // prende il record della riga corrente dal record array
|
TRectype &rec= _linee_rec0->row(i, TRUE); // prende il record della riga corrente dal record array
|
||||||
TToken_string &row= f0.row(i-1);
|
TToken_string &row= f0.row(i-1);
|
||||||
row= rec.get("UM"); // imposta la riga dello sheet con i campi del record della riga corrente
|
row = "";
|
||||||
if (i != 1) row.add(rec.get("FC"));
|
row.add(rec.get("UM")); // imposta la riga dello sheet con i campi del record della riga corrente
|
||||||
else row.add("1"); // forza a 1 il secondo campo della prima riga (il fattore di conversione della prima U.M. deve essere 1)
|
row.add(rec.get("FC"));
|
||||||
}
|
|
||||||
} else {
|
|
||||||
TToken_string &row= f0.row(-1); // aggiunge una riga allo sheet
|
|
||||||
row.add("");
|
|
||||||
row.add("1"); // setta il secondo campo della riga aggiunta a 1
|
|
||||||
}
|
}
|
||||||
|
if (f0.items() == 0)
|
||||||
|
((TToken_string &)f0.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||||
|
else
|
||||||
|
((TToken_string &)f0.row(0)).add("1",1); // forza la prima unita' di misura a 1
|
||||||
f0.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
f0.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
||||||
f0.force_update(0); // aggiorna lo stato della riga 0
|
f0.force_update(0); // aggiorna lo stato della riga 0
|
||||||
|
|
||||||
TRectype r(_deslin->curr()); // prende il record corrente dal file delle descrizioni in lingua
|
TRectype r(_deslin->curr()); // prende il record corrente dal file delle descrizioni in lingua
|
||||||
|
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1); // prende il sheet delle descrizioni in lingua
|
||||||
|
|
||||||
r.zero();
|
r.zero();
|
||||||
r.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
r.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
||||||
|
|
||||||
_linee_rec1->read(r); // legge il record array
|
_linee_rec1->read(r); // legge il record array
|
||||||
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1); // prende il sheet delle descrizioni in lingua
|
|
||||||
f1.destroy(); // cancella lo sheet
|
f1.destroy(); // cancella lo sheet
|
||||||
last= _linee_rec1->last_row();
|
const int lastdes= _linee_rec1->last_row();
|
||||||
for (int i= 1; i <= last; i++) {
|
for (i = 1; i <= lastdes; i++)
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec1->row(i, TRUE); // prende il record della riga corrente dal record array
|
TRectype &rec= _linee_rec1->row(i, TRUE); // prende il record della riga corrente dal record array
|
||||||
TToken_string &row= f1.row(i-1);
|
TToken_string &row= f1.row(i-1);
|
||||||
row= rec.get("CODLIN"); // imposta la riga dello sheet con i campi del record della riga corrente
|
|
||||||
|
row = "";
|
||||||
|
row.add(rec.get("CODLIN")); // imposta la riga dello sheet con i campi del record della riga corrente
|
||||||
row.add(rec.get("DESCR"));
|
row.add(rec.get("DESCR"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype rcor(_codcorr->curr()); // prende il record corrente dal file dei codici corrispondenti
|
TRectype rcor(_codcorr->curr()); // prende il record corrente dal file dei codici corrispondenti
|
||||||
|
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2); // prende lo sheet dei codici corrispondenti
|
||||||
|
|
||||||
rcor.zero();
|
rcor.zero();
|
||||||
rcor.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
rcor.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
||||||
_linee_rec2->read(rcor); // legge il record array
|
_linee_rec2->read(rcor); // legge il record array
|
||||||
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2); // prende lo sheet dei codici corrispondenti
|
|
||||||
f2.destroy(); // cancella lo sheet
|
f2.destroy(); // cancella lo sheet
|
||||||
last= _linee_rec2->last_row();
|
const int lastcod = _linee_rec2->last_row();
|
||||||
for (i= 1; i <= last; i++) {
|
for (i= 1; i <= lastcod; i++)
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec2->row(i, TRUE); // prende il record della riga corrente dal record array
|
TRectype &rec= _linee_rec2->row(i, TRUE); // prende il record della riga corrente dal record array
|
||||||
TToken_string &row= f2.row(i-1);
|
TToken_string &row= f2.row(i-1);
|
||||||
|
|
||||||
|
row = "";
|
||||||
row= rec.get("CODARTALT"); // imposta la riga dello sheet con i campi del record della riga corrente
|
row= rec.get("CODARTALT"); // imposta la riga dello sheet con i campi del record della riga corrente
|
||||||
row.add(rec.get("TIPO"));
|
row.add(rec.get("TIPO"));
|
||||||
}
|
}
|
||||||
@ -132,208 +150,280 @@ int TAnagrafica_magazzino::read(TMask& m) {
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TAnagrafica_magazzino::write(const TMask& m) {
|
bool TAnagrafica_magazzino::remove()
|
||||||
int err= TRelation_application::write(m);
|
|
||||||
if (err == NOERR) {
|
|
||||||
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0);
|
|
||||||
_linee_rec0->destroy_rows();
|
|
||||||
|
|
||||||
|
{
|
||||||
|
return _linee_rec0->remove() == NOERR &&
|
||||||
|
_linee_rec1->remove() == NOERR &&
|
||||||
|
_linee_rec2->remove() == NOERR &&
|
||||||
|
TRelation_application::remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
int TAnagrafica_magazzino::write(const TMask& m)
|
||||||
|
{
|
||||||
|
int err= TRelation_application::write(m);
|
||||||
|
|
||||||
|
if (err != NOERR)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0);
|
||||||
|
|
||||||
|
_linee_rec0->destroy_rows();
|
||||||
if (m.insert_mode()) _linee_rec0->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec0->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f0.items(); i++) {
|
for (int i= 0; i < f0.items(); i++)
|
||||||
|
{
|
||||||
TToken_string &row= f0.row(i);
|
TToken_string &row= f0.row(i);
|
||||||
const TString16 um(row.get(0));
|
TString16 um(row.get(0));
|
||||||
const real fc(row.get());
|
|
||||||
|
|
||||||
if (um.not_empty() && (!fc.is_zero())) {
|
um.rtrim();
|
||||||
|
if (um.not_empty())
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec0->row(i+1, TRUE);
|
TRectype &rec= _linee_rec0->row(i+1, TRUE);
|
||||||
|
|
||||||
rec.put("UM", um);
|
rec.put("UM", um);
|
||||||
rec.put("FC", fc);
|
rec.put("FC", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec0->write();
|
err = _linee_rec0->write();
|
||||||
}
|
|
||||||
|
if (err != NOERR)
|
||||||
|
return err;
|
||||||
|
|
||||||
if (err == NOERR) {
|
|
||||||
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1);
|
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1);
|
||||||
_linee_rec1->destroy_rows();
|
|
||||||
|
|
||||||
|
_linee_rec1->destroy_rows();
|
||||||
if (m.insert_mode()) _linee_rec1->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec1->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f1.items(); i++) {
|
for (i = 0; i < f1.items(); i++)
|
||||||
|
{
|
||||||
TToken_string &row= f1.row(i);
|
TToken_string &row= f1.row(i);
|
||||||
const TString16 codlin(row.get(0));
|
TString16 codlin(row.get(0));
|
||||||
const TString80 descr(row.get());
|
|
||||||
|
|
||||||
if (codlin.not_empty() && descr.not_empty()) {
|
codlin.rtrim();
|
||||||
|
|
||||||
|
if (codlin.not_empty())
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec1->row(i+1, TRUE);
|
TRectype &rec= _linee_rec1->row(i+1, TRUE);
|
||||||
|
|
||||||
rec.put("CODLIN", codlin);
|
rec.put("CODLIN", codlin);
|
||||||
rec.put("DESCR", descr);
|
rec.put("DESCR", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec1->write();
|
err= _linee_rec1->write();
|
||||||
}
|
|
||||||
|
|
||||||
if (err == NOERR) {
|
if (err != NOERR)
|
||||||
|
return err;
|
||||||
|
|
||||||
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2);
|
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2);
|
||||||
_linee_rec2->destroy_rows();
|
|
||||||
|
|
||||||
|
_linee_rec2->destroy_rows();
|
||||||
if (m.insert_mode()) _linee_rec2->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec2->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f2.items(); i++) {
|
for (i= 0; i < f2.items(); i++)
|
||||||
|
{
|
||||||
TToken_string &row= f2.row(i);
|
TToken_string &row= f2.row(i);
|
||||||
const TString80 codartalt(row.get(0));
|
TString80 codartalt(row.get(0));
|
||||||
const TString16 tipo(row.get());
|
|
||||||
|
|
||||||
if (codartalt.not_empty()) {
|
codartalt.rtrim();
|
||||||
|
if (codartalt.not_empty())
|
||||||
|
{
|
||||||
TRectype &reccor= _linee_rec2->row(i+1, TRUE);
|
TRectype &reccor= _linee_rec2->row(i+1, TRUE);
|
||||||
|
|
||||||
reccor.put("CODARTALT", codartalt);
|
reccor.put("CODARTALT", codartalt);
|
||||||
reccor.put("TIPO", tipo);
|
reccor.put("TIPO", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec2->write();
|
err= _linee_rec2->write();
|
||||||
}
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TAnagrafica_magazzino::rewrite(const TMask& m) {
|
int TAnagrafica_magazzino::rewrite(const TMask& m)
|
||||||
int err= TRelation_application::rewrite(m);
|
{
|
||||||
if (err == NOERR) {
|
|
||||||
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0);
|
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0);
|
||||||
_linee_rec0->destroy_rows();
|
|
||||||
|
|
||||||
|
_linee_rec0->destroy_rows();
|
||||||
if (m.insert_mode()) _linee_rec0->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec0->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f0.items(); i++) {
|
for (int i= 0; i < f0.items(); i++)
|
||||||
|
{
|
||||||
TToken_string & row = f0.row(i);
|
TToken_string & row = f0.row(i);
|
||||||
const TString16 um(row.get(0));
|
TString16 um(row.get(0));
|
||||||
const real fc(row.get());
|
|
||||||
|
|
||||||
if (um.not_empty() && (!fc.is_zero())) {
|
um.rtrim();
|
||||||
|
if (um.not_empty())
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec0->row(i+1, TRUE);
|
TRectype &rec= _linee_rec0->row(i+1, TRUE);
|
||||||
|
|
||||||
rec.put("UM", um);
|
rec.put("UM", um);
|
||||||
rec.put("FC", fc);
|
rec.put("FC", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec0->rewrite();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (err == NOERR) {
|
int err = _linee_rec0->rewrite();
|
||||||
|
|
||||||
|
if (err != NOERR)
|
||||||
|
return err;
|
||||||
|
|
||||||
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1);
|
TSheet_field &f1= (TSheet_field &)m.field(F_SHEET1);
|
||||||
_linee_rec1->destroy_rows();
|
_linee_rec1->destroy_rows();
|
||||||
|
|
||||||
if (m.insert_mode()) _linee_rec1->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec1->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f1.items(); i++) {
|
for (i= 0; i < f1.items(); i++)
|
||||||
|
{
|
||||||
TToken_string & row = f1.row(i);
|
TToken_string & row = f1.row(i);
|
||||||
const TString16 codlin(row.get(0));
|
TString16 codlin(row.get(0));
|
||||||
const TString80 descr(row.get());
|
|
||||||
|
|
||||||
if (codlin.not_empty() && descr.not_empty()) {
|
codlin.rtrim();
|
||||||
|
if (codlin.not_empty())
|
||||||
|
{
|
||||||
TRectype &rec= _linee_rec1->row(i+1, TRUE);
|
TRectype &rec= _linee_rec1->row(i+1, TRUE);
|
||||||
|
|
||||||
rec.put("CODLIN", codlin);
|
rec.put("CODLIN", codlin);
|
||||||
rec.put("DESCR", descr);
|
rec.put("DESCR", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec1->rewrite();
|
err = _linee_rec1->rewrite();
|
||||||
}
|
|
||||||
|
if (err != NOERR)
|
||||||
|
return err;
|
||||||
|
|
||||||
if (err == NOERR) {
|
|
||||||
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2);
|
TSheet_field &f2= (TSheet_field &)m.field(F_SHEET2);
|
||||||
_linee_rec2->destroy_rows();
|
|
||||||
|
|
||||||
|
_linee_rec2->destroy_rows();
|
||||||
if (m.insert_mode()) _linee_rec2->renum_key("CODART", m.get(F_CODART));
|
if (m.insert_mode()) _linee_rec2->renum_key("CODART", m.get(F_CODART));
|
||||||
|
|
||||||
for (int i= 0; i < f2.items(); i++) {
|
for (i = 0; i < f2.items(); i++)
|
||||||
|
{
|
||||||
TToken_string &row= f2.row(i);
|
TToken_string &row= f2.row(i);
|
||||||
const TString80 codartalt(row.get(0));
|
TString80 codartalt(row.get(0));
|
||||||
const TString80 tipo(row.get());
|
|
||||||
|
codartalt.rtrim();
|
||||||
|
if (codartalt.not_empty())
|
||||||
|
{
|
||||||
|
TRectype &reccor = _linee_rec2->row(i+1, TRUE);
|
||||||
|
|
||||||
if (codartalt.not_empty()) {
|
|
||||||
TRectype &reccor= _linee_rec2->row(i+1, TRUE);
|
|
||||||
reccor.put("CODARTALT", codartalt);
|
reccor.put("CODARTALT", codartalt);
|
||||||
reccor.put("TIPO", tipo);
|
reccor.put("TIPO", row.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err= _linee_rec2->write();
|
err = _linee_rec2->rewrite();
|
||||||
}
|
|
||||||
|
if (err == NOERR)
|
||||||
|
err= TRelation_application::rewrite(m);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TAnagrafica_magazzino::init_insert_mode(TMask &m) {
|
void TAnagrafica_magazzino::init_insert_mode(TMask &m)
|
||||||
|
{
|
||||||
TSheet_field &f= (TSheet_field &)m.field(F_SHEET0);
|
TSheet_field &f= (TSheet_field &)m.field(F_SHEET0);
|
||||||
if (f.items()==0) {
|
if (f.items()==0)
|
||||||
TToken_string &row= f.row(-1); // aggiunge una riga allo sheet
|
{
|
||||||
row.add("");
|
((TToken_string &)f.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||||
row.add("1"); // setta il secondo campo della riga aggiunta a 1
|
|
||||||
f.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
f.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
||||||
f.force_update(0); // aggiorna lo stato della riga 0
|
f.force_update(0); // aggiorna lo stato della riga 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::handle_sheet0(TMask_field &fld, KEY k) {
|
bool TAnagrafica_magazzino::handle_sheet0(TMask_field &fld, KEY k)
|
||||||
if (k==K_ENTER) {
|
{
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
||||||
if (f.items()>0) {
|
const int items = f.items();
|
||||||
|
if (items > 0)
|
||||||
|
{
|
||||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||||
for (int i= 0; i<f.items(); i++) {
|
for (int i= 0; i<items; i++)
|
||||||
if (v.add(f.cell(i,0))) { // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
{
|
||||||
error_box("Le unità di misura devono essere diverse tra loro");
|
const TString16 um(f.cell(i,0));
|
||||||
break;
|
|
||||||
}
|
if (um.empty())
|
||||||
real x(f.cell(i,1));
|
return error_box("Le unita' di misura non possono essere vuote");
|
||||||
if (x.is_zero()) { // controlla che il fattore di conversione (secondo elemento) non sia 0
|
if (v.add(um))
|
||||||
error_box("I fattori di conversione delle unità di misura non possono valere 0");
|
return error_box("Le unità di misura devono essere diverse tra loro"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (i==f.items());
|
}
|
||||||
} else return TRUE;
|
return TRUE;
|
||||||
} else return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::handle_sheet1(TMask_field &fld, KEY k) {
|
bool TAnagrafica_magazzino::notify_sheet0(TSheet_field &s, int r, KEY k)
|
||||||
if (k==K_ENTER) {
|
{
|
||||||
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
if (k == K_TAB)
|
||||||
if (f.items()>1) {
|
s.sheet_mask().enable(DLG_DELREC, r > 0);
|
||||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
|
||||||
for (int i= 0; i<f.items(); i++) {
|
return TRUE;
|
||||||
if (v.add(f.cell(i,0))) { // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
|
||||||
error_box("I codici di lingua devono essere diversi tra loro");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (i==f.items());
|
|
||||||
} else return TRUE;
|
|
||||||
} else return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::handle_sheet2(TMask_field &fld, KEY k) {
|
bool TAnagrafica_magazzino::handle_sheet1(TMask_field &fld, KEY k)
|
||||||
if (k==K_ENTER) {
|
{
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
||||||
if (f.items()>0) {
|
const int items = f.items();
|
||||||
|
|
||||||
|
if (items > 0)
|
||||||
|
{
|
||||||
|
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||||
|
|
||||||
|
for (int i= 0; i < items; i++)
|
||||||
|
{
|
||||||
|
const TString16 codlin(f.cell(i,0));
|
||||||
|
|
||||||
|
if (codlin.empty())
|
||||||
|
return error_box("I codici lingua non possono essere vuoti");
|
||||||
|
if (v.add(codlin))
|
||||||
|
return error_box("I codici lingua devono essere diversi tra loro"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAnagrafica_magazzino::handle_sheet2(TMask_field &fld, KEY k)
|
||||||
|
{
|
||||||
|
if (k==K_ENTER)
|
||||||
|
{
|
||||||
|
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
|
||||||
|
const int items = f.items();
|
||||||
|
|
||||||
|
if (items > 0)
|
||||||
|
{
|
||||||
TMask &m= fld.mask(); // prende la maschere d'origine del campo
|
TMask &m= fld.mask(); // prende la maschere d'origine del campo
|
||||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||||
|
|
||||||
v.add(m.get(F_CODART)); // aggiunge all'hash table il codice articolo originale
|
v.add(m.get(F_CODART)); // aggiunge all'hash table il codice articolo originale
|
||||||
for (int i= 0; i<f.items(); i++) {
|
for (int i= 0; i< items; i++)
|
||||||
if (v.add(f.cell(i,0))) { // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
{
|
||||||
error_box("I codici alternativi devono essere diversi tra loro e dal codice dell'articolo");
|
const TString80 codart(f.cell(i,0));
|
||||||
break;
|
|
||||||
|
if (codart.empty())
|
||||||
|
return error_box("I codici alternativi non possono essere vuoti");
|
||||||
|
if (v.add(codart))
|
||||||
|
return error_box("I codici alternativi devono essere diversi tra loro e dal codice dell'articolo"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (i==f.items());
|
}
|
||||||
} else return TRUE;
|
return TRUE;
|
||||||
} else return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnagrafica_magazzino::handle_sheet0_um(TMask_field &fld, KEY k) {
|
bool TAnagrafica_magazzino::handle_sheet0_um(TMask_field &fld, KEY k)
|
||||||
if (k==K_TAB) {
|
{
|
||||||
TMask &m= fld.mask(); // prende la maschera d'origine del campo (maschera dello sheet)
|
if (fld.focusdirty() && k == K_TAB)
|
||||||
TString16 me(fld.get()); // prende il contenuto del campo corrente (unità di misura corrente)
|
{
|
||||||
if (me.not_empty()) { // se il codice dell'unità di misura è vuoto non viene fatto alcun calcolo
|
TMask &m = fld.mask(); // prende la maschera d'origine del campo (maschera dello sheet)
|
||||||
|
const TString16 curr_um(fld.get()); // prende il contenuto del campo corrente (unità di misura corrente)
|
||||||
|
|
||||||
|
if (curr_um.not_empty()) // se il codice dell'unità di misura è vuoto non viene fatto alcun calcolo
|
||||||
|
{
|
||||||
TSheet_field *f= m.get_sheet(); // prende lo sheet d'origine della maschera del campo
|
TSheet_field *f= m.get_sheet(); // prende lo sheet d'origine della maschera del campo
|
||||||
|
|
||||||
CHECK(f != NULL, "Il puntatore allo sheet è nullo");
|
CHECK(f != NULL, "Il puntatore allo sheet è nullo");
|
||||||
if (f->selected() != 0) {
|
if (f->selected() > 0)
|
||||||
|
{
|
||||||
|
|
||||||
// ALGORITMO DI PRECALCOLO DEL RAPPORTO DELLE UNITA' DI MISURA NELLO SHEET
|
// ALGORITMO DI PRECALCOLO DEL RAPPORTO DELLE UNITA' DI MISURA NELLO SHEET
|
||||||
//
|
//
|
||||||
@ -347,32 +437,43 @@ bool TAnagrafica_magazzino::handle_sheet0_um(TMask_field &fld, KEY k) {
|
|||||||
// se (your==my) allora X=(my_fc/your_fc) ...chiaro, no!? :-)
|
// se (your==my) allora X=(my_fc/your_fc) ...chiaro, no!? :-)
|
||||||
|
|
||||||
TTable t("%UMS");
|
TTable t("%UMS");
|
||||||
real x(0.0); // fattore di conversione dell'unità di misura corrente
|
real x; // fattore di conversione dell'unità di misura corrente
|
||||||
const TString16 you(f->row(0).get(0)); // prende l'unità di misura di rapporto (dalla prima linea dello sheet)
|
const TString16 first_um(f->row(0).get(0)); // prende l'unità di misura di rapporto (dalla prima linea dello sheet)
|
||||||
|
|
||||||
t.zero();
|
t.zero();
|
||||||
t.put("CODTAB", me);
|
t.put("CODTAB", curr_um);
|
||||||
if (t.read() == NOERR) {
|
if (t.read() == NOERR)
|
||||||
TString16 my(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura corrente
|
{
|
||||||
real my_fc(t.get_real("R0")); // prende il suo fattore di conversione
|
const TString16 rif_um(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura corrente
|
||||||
|
x = t.get_real("R10"); // prende il suo fattore di conversione
|
||||||
|
|
||||||
|
if (rif_um != first_um)
|
||||||
|
{
|
||||||
t.zero();
|
t.zero();
|
||||||
t.put("CODTAB", you);
|
t.put("CODTAB", first_um);
|
||||||
if (t.read() == NOERR) {
|
if (t.read() == NOERR)
|
||||||
TString16 your(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura di rapporto
|
{
|
||||||
real your_fc(t.get_real("R0")); // prende il suo fattore di conversione
|
TString16 first_um_rif(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura di rapporto
|
||||||
if (your==my) {
|
const real first_um_rif_fc(t.get_real("R10")); // prende il suo fattore di conversione
|
||||||
x= my_fc/your_fc; // calcola il rapporto tra i fattori di conversione
|
if (first_um_rif == rif_um)
|
||||||
|
{
|
||||||
|
x /= first_um_rif_fc; // calcola il rapporto tra i fattori di conversione
|
||||||
x.round(5); // arrotonda il risultato a 5 decimali
|
x.round(5); // arrotonda il risultato a 5 decimali
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.set(FS_FCUM, x.stringa()); // il risultato viene scritto nel campo del fattore di conversione
|
}
|
||||||
|
if (x == ZERO)
|
||||||
|
x = 1.00;
|
||||||
|
m.set(FS_FCUM, x); // il risultato viene scritto nel campo del fattore di conversione
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ve2400(int argc, char* argv[]) {
|
int ve2400(int argc, char* argv[])
|
||||||
|
{
|
||||||
TAnagrafica_magazzino a;
|
TAnagrafica_magazzino a;
|
||||||
|
|
||||||
a.run(argc, argv, "Anagrafica di magazzino ");
|
a.run(argc, argv, "Anagrafica di magazzino ");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include <lffiles.h>
|
#include <lffiles.h>
|
||||||
#include "VE2400.H"
|
#include "ve2400.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 60 2
|
TOOLBAR "" 0 20 60 2
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
// SHEET 0 (unità di misura) DI VE2400
|
// SHEET 0 (unita' di misura) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 14
|
PAGE "Pagina 1" 8 5 65 11
|
||||||
|
|
||||||
STRING FS_CODUM 2
|
STRING FS_CODUM 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 3 "U.M. "
|
PROMPT 3 2 "Unita' di misura "
|
||||||
FIELD LF_UMART->UM
|
FIELD LF_UMART->UM
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
USE %UMS
|
USE %UMS
|
||||||
@ -13,25 +13,34 @@ BEGIN
|
|||||||
DISPLAY "U.M. " CODTAB
|
DISPLAY "U.M. " CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT FS_CODUM CODTAB
|
OUTPUT FS_CODUM CODTAB
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Unita' di misura errata"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER FS_FCUM 15 5
|
NUMBER FS_FCUM 15 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 7 "Fattore conv. "
|
PROMPT 3 4 "Fattore di conversione "
|
||||||
FIELD LF_UMART->FC
|
FIELD LF_UMART->FC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Fattore di conversione obbligatorio"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON 1 9 2
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 15 12 ""
|
PROMPT -13 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON 2 9 2
|
BUTTON DLG_CANCEL 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 38 12 ""
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 "Elimina"
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
@ -1,44 +1,41 @@
|
|||||||
|
|
||||||
// SHEET 1 (descrizioni in lingua) DI VE2400
|
// SHEET 1 (descrizioni in lingua) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 14
|
PAGE "Pagina 1" 8 5 65 11
|
||||||
|
|
||||||
STRING FS_CODLIN 1
|
STRING FS_CODLIN 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 3 "Codice lingua "
|
PROMPT 3 2 "Codice lingua "
|
||||||
FIELD LF_DESLIN->CODLIN
|
FIELD LF_DESLIN->CODLIN
|
||||||
USE %LNG
|
USE %LNG
|
||||||
INPUT CODTAB FS_CODLIN
|
INPUT CODTAB FS_CODLIN
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@30" S0
|
DISPLAY "Descrizione@30" S0
|
||||||
OUTPUT FS_CODLIN CODTAB
|
OUTPUT FS_CODLIN CODTAB
|
||||||
// OUTPUT FS_CODLIN1 S0
|
CHECKTYPE REQUIRED
|
||||||
END
|
WARNING "Codice lingua errato"
|
||||||
|
END
|
||||||
|
|
||||||
STRING FS_DESCR 50
|
STRING FS_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "Descrizione "
|
PROMPT 3 4 "Descrizione "
|
||||||
FIELD LF_DESLIN->DESCR
|
FIELD LF_DESLIN->DESCR
|
||||||
VALIDATE REQIF_FUNC 1 FS_CODLIN
|
|
||||||
END
|
END
|
||||||
|
|
||||||
/*
|
BUTTON DLG_OK 9 2
|
||||||
STRING FS_CODLIN1 30
|
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 ""
|
PROMPT -13 -1 ""
|
||||||
FLAG "D"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
*/
|
BUTTON DLG_CANCEL 9 2
|
||||||
|
|
||||||
BUTTON 1 9 2
|
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 15 12 ""
|
PROMPT -23 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON 2 9 2
|
BUTTON DLG_DELREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 38 12 ""
|
PROMPT -33 -1 "Elimina"
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
|
|
||||||
// SHEET 2 (codici alternativi) DI VE2400
|
// SHEET 2 (codici alternativi) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 14
|
PAGE "Pagina 1" 8 5 65 11
|
||||||
|
|
||||||
STRING FS_CODARTALT 20
|
STRING FS_CODARTALT 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 3 "Codice art. alt. "
|
PROMPT 3 2 "Codice alternativo "
|
||||||
FIELD LF_CODCORR->CODARTALT
|
FIELD LF_CODCORR->CODARTALT
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Codice alternativo obbligatorio"
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX FS_TIPO 10
|
LISTBOX FS_TIPO 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Tipo di codice "
|
PROMPT 2 4 "Tipo di codice "
|
||||||
ITEM "N|Normal "
|
ITEM "N|Normal "
|
||||||
ITEM "8|EAN8 "
|
ITEM "8|EAN8 "
|
||||||
ITEM "1|EA13 "
|
ITEM "1|EA13 "
|
||||||
@ -20,21 +22,20 @@ BEGIN
|
|||||||
FIELD LF_CODCORR->TIPO
|
FIELD LF_CODCORR->TIPO
|
||||||
END
|
END
|
||||||
|
|
||||||
/* STRING FS_CODARTALT1 50
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 ""
|
PROMPT -13 -1 ""
|
||||||
FLAG "D"
|
|
||||||
END
|
|
||||||
*/
|
|
||||||
|
|
||||||
BUTTON 1 9 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 15 12 ""
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON 2 9 2
|
BUTTON DLG_CANCEL 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 38 12 ""
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 "Elimina"
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -229,34 +229,48 @@ void TStampa_condizioni_vendita::preprocess_header() {
|
|||||||
TLocalisamfile &condv= current_cursor()->file(LF_CONDV);
|
TLocalisamfile &condv= current_cursor()->file(LF_CONDV);
|
||||||
i+=2; // stampa breve della testata, occupa almeno due linee
|
i+=2; // stampa breve della testata, occupa almeno due linee
|
||||||
set_header(i-1, "@14gCod @18gDescrizione @69gVal. dal @78gal @87gIL @90gUM @93gSC @96gSO @99gST @109gSeq"); // setta l'header del codice, della descrizione, della validità, dei booleani, ecc.
|
set_header(i-1, "@14gCod @18gDescrizione @69gVal. dal @78gal @87gIL @90gUM @93gSC @96gSO @99gST @109gSeq"); // setta l'header del codice, della descrizione, della validità, dei booleani, ecc.
|
||||||
set_header(i, "@14g%3s @18g%s @69g%s @78g%s @87g%s @90g%s @93g%s @96g%s @99g%s @109g%s",
|
set_header(i, "@14g%3s", (const char *) condv.get("COD"));
|
||||||
(const char *)(condv.sget("COD")), (const char *)(condv.sget("DESCR")), (const char *)(condv.sget("VALIN")),
|
set_header(i, "@18g%s", (const char *) condv.get("DESCR"));
|
||||||
(const char *)(condv.sget("VALFIN")), (const char *)(condv.sget("IMPLORDI")), (const char *)(condv.sget("GESTUM")),
|
set_header(i, "@69g%s", (const char *) condv.get("VALIN"));
|
||||||
(const char *)(condv.sget("GESTSCAGL")), (const char *)(condv.sget("GESTSCO")), (const char *)(condv.sget("SCONST")),
|
set_header(i, "@78g%s", (const char *) condv.get("VALFIN"));
|
||||||
(const char *)(condv.sget("SEQRIC"))); // codice, descriz., validità e booleani
|
set_header(i, "@87g%s", (const char *) condv.get("IMPLORDI"));
|
||||||
if ((_condven=="L") && _codlis_catven) { // siamo sui listini?
|
set_header(i, "@93g%s", (const char *) condv.get("GESTUM"));
|
||||||
|
set_header(i, "@90g%s", (const char *) condv.get("GESTSCAGL"));
|
||||||
|
set_header(i, "@96g%s", (const char *) condv.get("GESTSCO"));
|
||||||
|
set_header(i, "@99g%s", (const char *) condv.get("SCONST"));
|
||||||
|
set_header(i, "@109g%s",(const char *) condv.get("SEQRIC"));
|
||||||
|
if ((_condven=="L") && _codlis_catven)
|
||||||
|
{ // siamo sui listini?
|
||||||
set_header(i-1, "@11gCV"); // setta l'header della categoria di vendita
|
set_header(i-1, "@11gCV"); // setta l'header della categoria di vendita
|
||||||
set_header(i, "@11g%s", (const char *)(condv.sget("CATVEN"))); // categoria di vendita
|
set_header(i, "@11g%s", (const char *)(condv.get("CATVEN"))); // categoria di vendita
|
||||||
}
|
}
|
||||||
if (_condven=="C") { // siamo sui contratti?
|
if (_condven=="C")
|
||||||
if (_codcon_codcf) { // è abilitato il codice cliente/fornitore?
|
{ // siamo sui contratti?
|
||||||
|
if (_codcon_codcf)
|
||||||
|
{ // è abilitato il codice cliente/fornitore?
|
||||||
set_header(i-1, "@1gCF @4gCod.CF"); // setta l'header di clienti/fornitori
|
set_header(i-1, "@1gCF @4gCod.CF"); // setta l'header di clienti/fornitori
|
||||||
set_header(i, "@1g%s @4g%6s", (const char *)(condv.sget("TIPOCF")), (const char *)(condv.sget("CODCF"))); // cliente/fornitore
|
set_header(i, "@1g%s", (const char *)condv.get("TIPOCF")); // cliente/fornitore
|
||||||
|
set_header(i, "@4g%6s", (const char *)condv.get("CODCF")); // cliente/fornitore
|
||||||
}
|
}
|
||||||
set_header(i-1, "@102gOB"); // setta l'header di contratto obbligatorio
|
set_header(i-1, "@102gOB"); // setta l'header di contratto obbligatorio
|
||||||
set_header(i, "@102g%s", (const char *)(condv.sget("OBBLIG"))); // booleano
|
set_header(i, "@102g%s", (const char *)(condv.get("OBBLIG"))); // booleano
|
||||||
}
|
}
|
||||||
if (_condven=="L") { // siamo su listini?
|
if (_condven=="L")
|
||||||
|
{ // siamo su listini?
|
||||||
set_header(i-1, "@105gSuc"); // setta l'header per il codice di listino successivo
|
set_header(i-1, "@105gSuc"); // setta l'header per il codice di listino successivo
|
||||||
set_header(i, "@105g%3s", (const char *)(condv.sget("CODLISSUCC"))); // codice successivo
|
set_header(i, "@105g%3s", (const char *)(condv.get("CODLISSUCC"))); // codice successivo
|
||||||
}
|
}
|
||||||
if (_gest_val) { // c'è la gestione della valuta?
|
if (_gest_val)
|
||||||
|
{ // c'è la gestione della valuta?
|
||||||
i+=2; // occupa altre due linee
|
i+=2; // occupa altre due linee
|
||||||
set_header(i-1, "@1gVal @5gCambio @27gData cambio"); // setta l'header del codice e della descrizione
|
set_header(i-1, "@1gVal @5gCambio @27gData cambio"); // setta l'header del codice e della descrizione
|
||||||
set_header(i, "@1g%s @5g%21s @27g%s", (const char *)condv.sget("CODVAL"), (const char *)condv.sget("CAMBIO"), (const char *)condv.sget("DATACAM")); // cambio e valuta
|
set_header(i, "@1g%s", (const char *)condv.get("CODVAL")); // cambio e valuta
|
||||||
|
set_header(i, "@5g%21s", (const char *)condv.get("CAMBIO")); // cambio e valuta
|
||||||
|
set_header(i, "@27g%s", (const char *)condv.get("DATACAM")); // cambio e valuta
|
||||||
}
|
}
|
||||||
set_header(++i, ""); // salta una riga
|
set_header(++i, ""); // salta una riga
|
||||||
if (!_righecomp) { // impostazione dell'header delle righe se non c'è la stampa esaustiva
|
if (!_righecomp)
|
||||||
|
{ // impostazione dell'header delle righe se non c'è la stampa esaustiva
|
||||||
set_header(++i, "@1gT @3gCodice riga @27gS @29gQuantita' limite @51gPrezzo @73gSconto @99gA @101gIVA @106gProvvig."); // setta l'header della chiave, della quantità limite e del prezzo
|
set_header(++i, "@1gT @3gCodice riga @27gS @29gQuantita' limite @51gPrezzo @73gSconto @99gA @101gIVA @106gProvvig."); // setta l'header della chiave, della quantità limite e del prezzo
|
||||||
if ((_condven=="L") || (_condven=="O")) set_header(i, "@24gUM"); // setta l'header dell'unità di misura
|
if ((_condven=="L") || (_condven=="O")) set_header(i, "@24gUM"); // setta l'header dell'unità di misura
|
||||||
set_header(++i, "@1gUMO @5gQuantita' omaggio @27gQuantita' base @49gCod. art. omagg. @70gPrezzo omaggio"); // setta l'header dello sconto/omaggio
|
set_header(++i, "@1gUMO @5gQuantita' omaggio @27gQuantita' base @49gCod. art. omagg. @70gPrezzo omaggio"); // setta l'header dello sconto/omaggio
|
||||||
|
@ -251,10 +251,10 @@ int TBatch_crea_doc::run_mask(TRectype& first, TRectype& last)
|
|||||||
// first.put ("STATO", _stato_i_doc_i); // stato documento originale
|
// first.put ("STATO", _stato_i_doc_i); // stato documento originale
|
||||||
// last.put ("STATO", _stato_i_doc_i);
|
// last.put ("STATO", _stato_i_doc_i);
|
||||||
|
|
||||||
temps = _msk->get(F_CODICE_CLIENTE_DA);
|
temps = _msk->get(F_CODICE_CLIFO_DA);
|
||||||
if (temps.not_empty())
|
if (temps.not_empty())
|
||||||
first.put ("CODCF", temps); // codice cliente (v. filterfunct)
|
first.put ("CODCF", temps); // codice cliente (v. filterfunct)
|
||||||
temps = _msk->get(F_CODICE_CLIENTE_A);
|
temps = _msk->get(F_CODICE_CLIFO_A);
|
||||||
if (temps.not_empty())
|
if (temps.not_empty())
|
||||||
last.put ("CODCF", temps); // codice cliente (v. filterfunct)
|
last.put ("CODCF", temps); // codice cliente (v. filterfunct)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PAGE "Selezione parametri" 0 0 0 0
|
PAGE "Selezione parametri" 0 0 0 0
|
||||||
|
|
||||||
#include <ve6300.h>
|
#include "ve6300.h"
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PAGE "Selezione parametri" 0 0 0 0
|
PAGE "Selezione parametri" 0 0 0 0
|
||||||
|
|
||||||
#include <ve6300.h>
|
#include "ve6300.h"
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user