Patch level : 12.00 1348

Files correlati     : ve0.exe ve0100o.msk

Commento:

Trasformazione clienti occasionali in normali
This commit is contained in:
Alessandro Bonazzi 2024-09-03 23:59:11 +02:00
parent c04d929ab5
commit eef0f50876
6 changed files with 62 additions and 19 deletions

View File

@ -438,6 +438,8 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
TString prot; TString prot;
const TDongleHardware dhw = dongle().hardware(); const TDongleHardware dhw = dongle().hardware();
int userno = dongle().max_users();
switch (dhw) switch (dhw)
{ {
case _dongle_ssanet: case _dongle_ssanet:
@ -498,7 +500,7 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
Tdninst dninst; Tdninst dninst;
add_prop(TR("Controllo"), dninst.assist_year()); add_prop(TR("Controllo"), dninst.assist_year());
} }
add_prop(TR("Utenti"), userno);
add_cat(TR("Area dati")); add_cat(TR("Area dati"));
TFilename study = firm2dir(-1); TFilename study = firm2dir(-1);
add_prop(TR("Studio"), study); add_prop(TR("Studio"), study);

View File

@ -312,13 +312,13 @@ public:
// @cmember Setta il campo con una stringa // @cmember Setta il campo con una stringa
virtual void set(short fld_id, const char* str, byte hit=0x0); virtual void set(short fld_id, const char* str, byte hit=0x0);
// @cmember Setta il campo con un reale // @cmember Setta il campo con un reale
void set(short fld_id, const real& num, byte hit=0x0); virtual void set(short fld_id, const real& num, byte hit=0x0);
// @cmember Setta il campo con una data // @cmember Setta il campo con una data
void set(short fld_id, const TDate& day, byte hit=0x0); virtual void set(short fld_id, const TDate& day, byte hit=0x0);
// @cmember Setta il campo con un valore // @cmember Setta il campo con un valore
void set(short fld_id, long num, byte hit=0x0); virtual void set(short fld_id, long num, byte hit=0x0);
// @cmember Setta il campo con un currency // @cmember Setta il campo con un currency
void set(short fld_id, const TCurrency& num, byte hit=0x0); virtual void set(short fld_id, const TCurrency& num, byte hit=0x0);
// @cmember Setta una tutti i campi che hanno come FIELD <p fld_id> // @cmember Setta una tutti i campi che hanno come FIELD <p fld_id>
void set(const char* fld_id, const char* str, byte hit=0x0); void set(const char* fld_id, const char* str, byte hit=0x0);
@ -427,7 +427,7 @@ public:
void show_default(short fld_id = 0); void show_default(short fld_id = 0);
// @cmember Azzera il campo // @cmember Azzera il campo
void reset(short fld_id = 0); virtual void reset(short fld_id = 0);
// @cmember il campo è vuoto ? // @cmember il campo è vuoto ?
bool empty(short fld_id) { return field(fld_id).empty(); } bool empty(short fld_id) { return field(fld_id).empty(); }
// @cmember il campo non è vuoto ? // @cmember il campo non è vuoto ?

View File

@ -118,10 +118,10 @@ public:
// @cmember Setta lo stato della barra d'attesa // @cmember Setta lo stato della barra d'attesa
virtual bool setstatus(long l); virtual bool setstatus(long l);
// @cmember Aggiorna la barra d'attesa aggiungendo l'incremento fatto dell'applicazione // @cmember Aggiorna la barra d'attesa aggiungendo l'incremento fatto dell'applicazione
bool addstatus(long l) bool addstatus(long l = 1)
{ return setstatus(_status+l); } { return setstatus(_status+l); }
// @cmember Costruttore // @cmember Costruttore
TProgind(long max, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 60); TProgind(long max, const char* txt = nullptr, bool cancel = true, bool bar = true, int div = 60);
// @cmember Distruttore // @cmember Distruttore
virtual ~TProgind() virtual ~TProgind()
{} {}
@ -151,7 +151,7 @@ protected:
// @access Public Member // @access Public Member
public: public:
// @cmember Costruttore // @cmember Costruttore
TTimerind(long msec, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 10, int interval = 1000); TTimerind(long msec, const char* txt = nullptr, bool cancel = true, bool bar = true, int div = 10, int interval = 1000);
// @cmember Distruttore // @cmember Distruttore
virtual ~TTimerind(); virtual ~TTimerind();
}; };

View File

@ -353,6 +353,15 @@ public:
// @cmember Ritorna l'ultimo oggetto del cursor // @cmember Ritorna l'ultimo oggetto del cursor
TObject* last_item( ) TObject* last_item( )
{ operator =( items( ) -1 ); return &curr( ); } { operator =( items( ) -1 ); return &curr( ); }
// @cmember Ritorna il primo record del cursor
TRectype & first() { return (TRectype&)*first_item(); }
// @cmember Ritorna il record del cursor successivo al corrente
TRectype& succ() { return (TRectype&) *succ_item(); }
// @cmember Ritorna il record del cursor precedente al corrente
TRectype& pred() { return (TRectype&) *pred_item(); }
// @cmember Ritorna l'ultimo record del cursor
TRectype& last() { return (TRectype&) *last_item(); }
// @cmember Ritorna il numero di oggetti del cursor // @cmember Ritorna il numero di oggetti del cursor
long objects( ) const long objects( ) const
{ return ((TCursor*)this)->items( ); } { return ((TCursor*)this)->items( ); }

View File

@ -20,6 +20,30 @@ void TVariable_mask::set(short fld_id, const char* str, byte hit)
TMask::set(fld_id, str, hit); TMask::set(fld_id, str, hit);
} }
void TVariable_mask::set(short fld_id, const real& num, byte hit)
{
if (present(fld_id))
TMask::set(fld_id,num, hit);
}
void TVariable_mask::set(short fld_id, const TDate& day, byte hit)
{
if (present(fld_id))
TMask::set(fld_id, day, hit);
}
void TVariable_mask::set(short fld_id, long num, byte hit)
{
if (present(fld_id))
TMask::set(fld_id, num, hit);
}
void TVariable_mask::set(short fld_id, const TCurrency& num, byte hit)
{
if (present(fld_id))
TMask::set(fld_id, num, hit);
}
void TVariable_mask::show(short fld_id, bool on ) void TVariable_mask::show(short fld_id, bool on )
{ {
if (fld_id < 0 || present( fld_id ) ) if (fld_id < 0 || present( fld_id ) )

View File

@ -24,21 +24,29 @@ protected:
public: public:
// @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera // @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera
virtual void check_field( short fld_id ); virtual void check_field( short fld_id ) override;
// @cmember Setta il campo con una stringa // @cmember Setta il campo con una stringa
virtual void set(short fld_id, const char* str, byte hit=0x0); virtual void set(short fld_id, const char* str, byte hit=0x0) override;
// @cmember Setta il campo con un reale
virtual void set(short fld_id, const real& num, byte hit = 0x0) override;
// @cmember Setta il campo con una data
virtual void set(short fld_id, const TDate& day, byte hit = 0x0) override;
// @cmember Setta il campo con un valore
virtual void set(short fld_id, long num, byte hit = 0x0) override;
// @cmember Setta il campo con un currency
virtual void set(short fld_id, const TCurrency& num, byte hit = 0x0) override;
// @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa
virtual const TString& get(short fld_id) const; virtual const TString& get(short fld_id) const override;
// @cmember Definisce l'handler del campo <p fld_id> // @cmember Definisce l'handler del campo <p fld_id>
virtual void set_handler(short fld_id, CONTROL_HANDLER handler); virtual void set_handler(short fld_id, CONTROL_HANDLER handler) override;
// @cmember Permette di mostrare/nascondere un campo // @cmember Permette di mostrare/nascondere un campo
virtual void show(short fld_id = -1, bool on = TRUE); virtual void show(short fld_id = -1, bool on = TRUE) override;
// @cmember Azzera il campo // @cmember Azzera il campo
void reset(short fld_id = 0); virtual void reset(short fld_id = 0) override;
// @cmember Abilita/disabilita un campo // @cmember Abilita/disabilita un campo
virtual void enable(short fld_id, bool on = TRUE); virtual void enable(short fld_id, bool on = TRUE) override;
// @cmember Legge il campo da file // @cmember Legge il campo da file
virtual TMask_field* parse_field(TScanner& scanner); virtual TMask_field* parse_field(TScanner& scanner) override;
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk) // @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
TVariable_mask(); TVariable_mask();
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk) // @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
@ -67,10 +75,10 @@ public:
void set_getmask(SPREADSHEET_GETMASK n) void set_getmask(SPREADSHEET_GETMASK n)
{ _getmask = n; } { _getmask = n; }
// @cmember Funzione eseguita dopo ogni insert // @cmember Funzione eseguita dopo ogni insert
virtual void post_insert(int r); virtual void post_insert(int r) override;
// @cmember Ritorna la maschera corrispondente alla riga corrente dello spreadsheet // @cmember Ritorna la maschera corrispondente alla riga corrente dello spreadsheet
virtual TMask& sheet_mask() const; virtual TMask& sheet_mask() const override;
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet // @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
virtual TMask& sheet_row_mask(int row) const; virtual TMask& sheet_row_mask(int row) const;