Merge branch 'R12.00.1136' of http://10.65.20.33/sirio/CAMPO/campo into R12.00.1136

This commit is contained in:
smen 2022-10-11 11:30:38 +02:00
commit 33083dfda4
133 changed files with 531 additions and 244 deletions

3
cd/test/f91202.txt Normal file
View File

@ -0,0 +1,3 @@
sql\f90\f90102.sql
migliorati gli IF NOT EXISTS dello script f90102.sql

19
cd/test/f91202a.ini Normal file
View File

@ -0,0 +1,19 @@
[Main]
Demo=0
[f90]
File(12) = sql\f90\f90102.sql|X
Patch = 1202
Versione = 21511200
[f9]
Data = 06-10-2022
Descrizione = Archiviazione Sostitutiva
Dischi = 1
Moduli = fp
OEM =
Patch = 1202
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/f91202a1.zip Normal file

Binary file not shown.

View File

@ -98,7 +98,7 @@ bool Tabanabil_application::user_create()
{
Tab_application::user_create();
_msk = get_mask();
_msk = get_mask(MODE_QUERY);
_tabname = get_tabname();
if (_tabname == "%PDB")

View File

@ -25,7 +25,7 @@ protected:
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);

View File

@ -20,7 +20,7 @@ class TGestione_tree: public TRelation_application
// void gestione_saldi();
public:
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) {return _msk;}
virtual TRelation* get_relation() const {return _anas;}
};

View File

@ -206,7 +206,7 @@ protected:
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return false; }
virtual TRelation* get_relation() const { return _rel; }
virtual int read(TMask& m);
@ -240,7 +240,7 @@ class TSet_users : public TSet_user_passwd
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
virtual bool changing_mask(int mode) { return false;}
virtual TRelation* get_relation() const { return _rel;}
virtual int read(TMask& m);

View File

@ -631,7 +631,7 @@ bool TGeneric_table_app::user_create()
if (ok)
{
const TString& name = get_tabname();
TMask& mask = *get_mask();
TMask& mask = *get_mask(MODE_QUERY);
if (name == TAB_DELEGHE)
{

View File

@ -15,7 +15,7 @@ class TTestrel_application : public TRelation_application
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel; }

View File

@ -87,7 +87,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
virtual bool remove();
@ -105,7 +105,7 @@ public:
BA3500_application() {}
};
TMask* BA3500_application::get_mask(int mode)
TMask* BA3500_application::_get_mask(int mode)
{
return _msk;
}

View File

@ -28,7 +28,7 @@ protected:
// minchia di cristo
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
// file intertface

View File

@ -15,7 +15,7 @@ protected:
virtual bool user_destroy();
virtual bool changing_mask(int) { return FALSE; }
virtual TMask* get_mask(int) { return _maschera; }
virtual TMask* _get_mask(int) { return _maschera; }
virtual TRelation* get_relation() const { return _indici; }
virtual bool get_next_key(TToken_string& key);

View File

@ -16,7 +16,7 @@ protected:
virtual void init_insert_mode(TMask& m) { init_modify_mode(m);}
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;}
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
public:
TComuni_app() : _msk(NULL), _rel(NULL) { }

View File

@ -33,7 +33,7 @@ protected:
virtual void init_modify_mode(TMask& m);
virtual bool changing_mask(int mode) {return _tip_ana != _next_ana;}
virtual bool get_next_key(TToken_string& key);
virtual TMask* get_mask(int mode) ;
virtual TMask* _get_mask(int mode) ;
virtual void write_enable(bool on = TRUE);
static bool email_handler(TMask_field& f, KEY k);
@ -449,7 +449,7 @@ bool no_dup_iva_g(TMask_field& f, KEY key)
return gest_iva(f , key , FLD_AG1_STATOPAIV ,FLD_AG1_PAIV ) ;
}
TMask* TPersone_app::get_mask(int mode)
TMask* TPersone_app::_get_mask(int mode)
{
set_tip_ana(_next_ana);
if (ana_fis() && _msk[MSKF] == NULL)

View File

@ -347,7 +347,6 @@
#define DLG_DITTE 369
#define FLD_ANAG_UTAGG 370
#define DLG_OGGETTI 372
#define F_MAIL 373
#define F_UFFUUE 374
#define F_DENUUE 375

View File

@ -51,7 +51,7 @@ class TDitte_application : public TRelation_application
protected:
bool user_create() ;
bool user_destroy() ;
virtual TMask* get_mask(int) { return _msk;}
virtual TMask* _get_mask(int) { return _msk;}
virtual bool changing_mask(int) { return FALSE;}
virtual void init_query_mode(TMask& m) ;
virtual void init_insert_mode(TMask& m) ;

View File

@ -10,7 +10,7 @@ class BA4400_application : public TRelation_application
bool user_create() ;
bool user_destroy() ;
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;}

View File

@ -10,7 +10,7 @@ class TAttivita_application : public TRelation_application
bool user_create() ;
bool user_destroy() ;
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;}
virtual int read(TMask& m);

View File

@ -10,7 +10,7 @@ class TSoci_application : public TRelation_application
virtual bool user_create() ;
virtual bool user_destroy() ;
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;}

View File

@ -11,7 +11,7 @@ class TContact_application : public TRelation_application
protected:
virtual bool user_create() ;
virtual bool user_destroy() ;
virtual TMask* get_mask(int mode) { return _msk;}
virtual TMask* _get_mask(int mode) { return _msk;}
virtual TRelation* get_relation() const { return _rel;}
virtual bool get_next_key(TToken_string& key);

View File

@ -18,7 +18,7 @@ class TRegister_app : public TRelation_application
bool _stampa_intest;
protected: // TRelation_application
virtual TMask* get_mask(int) { return _msk;}
virtual TMask* _get_mask(int) { return _msk;}
virtual TRelation* get_relation() const { return _rel;}
virtual bool changing_mask(int) { return FALSE; }
virtual bool user_create() ;

View File

@ -373,7 +373,7 @@ protected:
virtual bool get_next_key(TToken_string& key);
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
};
const TString& TRiparti_app::somma_campi(TToken_string& row, int first, bool pdc) const

View File

@ -90,7 +90,7 @@ protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int);
virtual TMask* _get_mask(int);
virtual bool get_next_key(TToken_string& key);
bool link_ci(const TMask& m); // nn più utiliazzata
@ -1291,7 +1291,7 @@ TMovanal_msk::TMovanal_msk() : TAutomask("ca2100a")
// TMovanal_app
///////////////////////////////////////////////////////////
TMask* TMovanal_app::get_mask(int)
TMask* TMovanal_app::_get_mask(int)
{
return _msk;
}

View File

@ -157,7 +157,7 @@ class TAnal_app : public TRelation_application
TSimple_anal_msk* _msk;
protected:
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
virtual TRelation* get_relation() const { return _rel; }
virtual bool user_create();
virtual bool user_destroy();

View File

@ -885,7 +885,7 @@ protected:
virtual bool user_destroy();
virtual bool changing_mask(int mode);
// @cmember Richiede la maschera da usare
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
// @cmember Ritorna la relazione da modificare
virtual TRelation* get_relation() const;
@ -910,7 +910,7 @@ bool TAnacespi::changing_mask(int)
return true;
}
TMask* TAnacespi::get_mask(int mode)
TMask* TAnacespi::_get_mask(int mode)
{
return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_emask;
}

View File

@ -342,7 +342,7 @@ protected:
virtual bool user_destroy();
virtual bool changing_mask(int mode);
// @cmember Richiede la maschera da usare
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
// @cmember Ritorna la relazione da modificare
virtual TRelation* get_relation() const;
@ -358,7 +358,7 @@ bool TForza_amm_cespi::changing_mask(int)
return TRUE;
}
TMask* TForza_amm_cespi::get_mask(int mode)
TMask* TForza_amm_cespi::_get_mask(int mode)
{
return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_fmask;
}

View File

@ -339,7 +339,7 @@ protected:
virtual bool user_destroy();
virtual bool changing_mask(int mode) { return TRUE; }
//richiede la maschera da usare
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
//ritorna la relazione da modificare
virtual TRelation* get_relation() const { return _rel; }
@ -354,7 +354,7 @@ public:
};
TMask* TForza_amm_movce::get_mask(int mode)
TMask* TForza_amm_movce::_get_mask(int mode)
{
return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_fmask;
}

View File

@ -33,7 +33,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; };
virtual bool changing_mask(int mode) { return TRUE; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
void init_mask(TMask& m);
virtual void init_query_mode(TMask& m);
@ -230,9 +230,9 @@ bool TSelam_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly
const TRectype & ammce = cache().get(LF_AMMCE, key);
if (!ammce.empty())
{
if (ammce.get_bool(AMMCE_FZPER) == TRUE)
if (ammce.get_bool(AMMCE_FZPER))
return error_box(TR("Sul cespite sono state forzate le Percentuali:\nprocedere dalla forzatura ammortamenti su cespite"));
if (ammce.get_bool(AMMCE_FZQUO) == TRUE)
if (ammce.get_bool(AMMCE_FZQUO))
return error_box(TR("Sul cespite sono state forzate le Quote:\nprocedere dalla forzatura ammortamenti su cespite"));
}
@ -538,7 +538,7 @@ bool TSelam_pmask::on_field_event(TOperable_field& o, TField_event e, long jolly
// Applicazione principale: seconda puntata
///////////////////////////////////////////////////////////
TMask* TSelect_ammoces::get_mask(int mode)
TMask* TSelect_ammoces::_get_mask(int mode)
{
TMask* m = NULL;
if (mode == MODE_QUERY || mode == MODE_QUERYINS)

View File

@ -23,7 +23,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual bool changing_mask(int) { return TRUE; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool protected_record(TRelation& rel);
void init_mask(TMask& m);
@ -346,7 +346,7 @@ bool TPlu_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
// Applicazione principale
///////////////////////////////////////////////////////////
TMask* TScelta_amm_cat::get_mask(int mode)
TMask* TScelta_amm_cat::_get_mask(int mode)
{
TMask* m = NULL;
if (mode == MODE_QUERY || mode == MODE_QUERYINS)

View File

@ -45,7 +45,7 @@ private:
protected:
virtual bool changing_mask(int mode) { return true; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual const char* get_next_key();
virtual bool protected_record(TRelation &r);
virtual bool user_create();
@ -911,7 +911,7 @@ TMov_emask::TMov_emask() : TAutomask("ce1500b")
// Applicazione principale
///////////////////////////////////////////////////////////
TMask* TMovicespi::get_mask(int mode)
TMask* TMovicespi::_get_mask(int mode)
{
return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_emask;
}

View File

@ -206,7 +206,7 @@ class TCesp2cg : public TRelation_application
protected:
virtual bool changing_mask(int mode) { return TRUE; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual TRelation* get_relation() const { return _rel; }
virtual void init_query_mode(TMask& m);
@ -239,7 +239,7 @@ bool TCesp2cg::user_create()
return TRUE;
}
TMask* TCesp2cg::get_mask(int mode)
TMask* TCesp2cg::_get_mask(int mode)
{
return (mode == MODE_QUERY || mode == MODE_QUERYINS) ? _qmsk : _emsk;
}

View File

@ -34,7 +34,7 @@ class TCesp_anal: public TRelation_application
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int mode) { return (TMask *)_msk; }
virtual TMask* _get_mask(int mode) { return (TMask *)_msk; }
virtual bool changing_mask(int mode) { return false;}
virtual void init_query_mode(TMask& m);
virtual void init_query_insert_mode(TMask& m);

View File

@ -16,7 +16,7 @@ class TPianoconti_app : public TRelation_application
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
virtual bool protected_record(TRectype &rec);
virtual void init_query_mode(TMask& m);

View File

@ -35,7 +35,7 @@ class TClifo_application : public TRelation_application
protected:
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return false; }
virtual bool save_and_new() const { return _savenew; }
virtual bool protected_record(TRectype &rec);

View File

@ -11,7 +11,7 @@ class CG0300_application : public TRelation_application
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) {return FALSE;}
virtual TRelation* get_relation() const {return _rel;}
virtual void init_query_mode(TMask& m);

View File

@ -68,7 +68,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) {return false; }
virtual bool remove();

View File

@ -140,13 +140,13 @@ bool CGTTable_application::user_create()
{
if (get_tabname() == "ESC")
{
get_mask()->set_handler(F_DATAINI, dataini_handler);
get_mask()->set_handler(BUT_CHECK, checkbut_handler);
get_mask(MODE_QUERY)->set_handler(F_DATAINI, dataini_handler);
get_mask(MODE_QUERY)->set_handler(BUT_CHECK, checkbut_handler);
}
if (get_tabname() == TAB_NOTECLI)
get_mask()->set_handler(F_NOT_DESC, desnot_handler);
get_mask(MODE_QUERY)->set_handler(F_NOT_DESC, desnot_handler);
if (get_tabname() == "BNP")
get_mask()->set_handler(F_IBAN, iban_handler);
get_mask(MODE_QUERY)->set_handler(F_IBAN, iban_handler);
}
return ok;
@ -211,11 +211,12 @@ int CGTTable_application::rewrite(const TMask& m)
//stringa delle tabelle (per ora solo tabella %NOT)
void CGTTable_application::fragment_string()
{
TMask& mask = *get_mask();
TMask& mask = *get_mask(MODE_QUERY);
TString stringone = mask.get(F_NOT_DESC);
TRectype& rec = get_relation()->curr();
TString4 fieldname;
int tot_length = 0;
stringone.replace('\n', (char)0xB6);
for (int i = 0; i < 6; i++)
{
@ -229,10 +230,11 @@ void CGTTable_application::fragment_string()
void CGTTable_application::glue_string()
{
TMask& mask = *get_mask();
TMask& mask = *get_mask(MODE_QUERY);
TString stringone;
TRectype& rec = get_relation()->curr();
TString4 fieldname;
for (int i = 0; i < 6; i++)
{
fieldname.format("S%d", i);

View File

@ -68,7 +68,7 @@ class TOccasionali_app : public TRelation_application
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
public:

View File

@ -500,7 +500,7 @@ bool TPrimanota_application::changing_mask(int mode)
}
TMask* TPrimanota_application::get_mask(int mode)
TMask* TPrimanota_application::_get_mask(int mode)
{
int annoiva = 0;
TString4 caus;
@ -1039,6 +1039,11 @@ void TPrimanota_application::init_modify_mode(TMask& m)
rf.set_warning(tipo == "C" ? "Cliente assente" : "Fornitore assente");
}
TMask_field * cartacei= m.find_by_id(DLG_CARTACEI);
if (cartacei != nullptr)
cartacei->enable(iva() != nessuna_iva);
if (is_saldaconto() || iva() != nessuna_iva)
{
if (cg.items() > 0)

View File

@ -304,7 +304,7 @@ protected: // TRelation_application
virtual bool user_destroy();
bool iva_mask(const TMask & m) const { return m.source_file() == "cg2100c.msk"; }
virtual bool changing_mask(int mode);
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual TRelation* get_relation() const { return _rel; }
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);

View File

@ -25,7 +25,7 @@ class GesAcc_app : public TRelation_application
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode) { return _mask; }
virtual bool changing_mask(int mode) {return FALSE; }
};
@ -126,11 +126,6 @@ bool GesAcc_app::msk_acconto(TMask_field& f, KEY k)
return TRUE;
}
TMask* GesAcc_app::get_mask(int /* mode */)
{
return _mask;
}
int cg4700(int argc, char* argv[])
{
GesAcc_app app;

View File

@ -120,7 +120,7 @@ protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) {return false; }
virtual int read(TMask& m);
virtual void init_query_mode(TMask&);

View File

@ -38,7 +38,7 @@ protected: // Relapp
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return false; }
// file intertface

View File

@ -84,7 +84,7 @@ bool Tabtra_application::user_create()
Tab_application::user_create();
open_files(LF_TABCOM, LF_TAB, 0);
_msk = get_mask();
_msk = get_mask(MODE_QUERY);
_tabname = get_tabname();
if (_tabname == "%TRA")

View File

@ -723,7 +723,7 @@ bool Tabinv_application::user_create()
{
Tab_application::user_create();
_msk = get_mask();
_msk = get_mask(MODE_QUERY);
_tabname = get_tabname();
_ditta_orig = -1;
if (_tabname == "%IND")

View File

@ -1,3 +1,3 @@
23
0
$mov|96160|96160|586|0|Movimenti di prima nota|NMOV||
$mov|0|0|634|0|Movimenti di prima nota|||

View File

@ -1,5 +1,5 @@
23
65
67
ANNOES|9|4|0|Codice esercizio
NUMREG|3|7|0|Numero di operazione
DATAREG|5|8|0|Data operazione
@ -65,6 +65,8 @@ MOVCOLL|3|7|0|Movimento collegato
ELABF9|1|12|0|archiviato , data , esclusione
IDDOCSDI|1|20|0|Identificativo documento SDI
DATADOCSDI|5|8|0|Data documento SDI
COLL_GOLEM|11|10|0|Documenti generici
CARTACEI|11|10|0|Documenti cartacei
4
NUMREG|
DATAREG+NUMREG|X

View File

@ -230,7 +230,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _therel; }
virtual bool changing_mask(int mode);
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual void init_query_mode(TMask& m);
virtual int read(TMask& m);
virtual int write(const TMask& m);
@ -972,7 +972,7 @@ private:
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
bool test_row(const TToken_string& row);
bool test_row(int nrow);
void load_um();
static void sheetrighe_get(TSheet_field &fld_righe, int item);
@ -1071,12 +1071,13 @@ void TDistinta_mask::load_um()
}
bool TDistinta_mask::test_row(const TToken_string& row)
bool TDistinta_mask::test_row(int nrow)
{
TSheet_field& sheet = sfield(F_SHEET);
const TCodice_articolo father = get(F_CODICE);
TCodice_articolo code; row.get(1, code);
TCodice_articolo code = sheet.get_str_row_cell(nrow, F_CODART);
bool ok = code != father;
if (ok && _tree.find_node(father) > 0)
{
TToken_string path; _tree.curr_id(path);
@ -1088,12 +1089,9 @@ bool TDistinta_mask::test_row(const TToken_string& row)
"in quanto la distinta risulterebbe ciclica."), (const char*)code);
// Se e' una lavorazione
if (get(F_TIPO)[0] == 'L')
{
ok = row[0] == 'L' && _tree.is_lav(code);
if (!ok)
error_box(FR("Il codice '%s' non e' una lavorazione"), (const char*)code);
}
if ((get(F_TIPO) == "L") &&
!(sheet.get_str_row_cell(nrow, F_TIPOCOMP) == "L" && _tree.is_lav(code)))
return error_box(FR("Il codice '%s' non e' una lavorazione"), (const char*)code);
return ok;
}
@ -1170,41 +1168,47 @@ bool TDistinta_mask::on_unitsheet_event(TOperable_field& o, TField_event e, long
bool TDistinta_mask::on_distsheet_event(TOperable_field& o, TField_event e, long jolly)
{
const short id = o.dlg();
switch (id)
{
case F_SHEET:
if (e == se_notify_add || e == se_notify_modify || e == fe_close)
if (e == se_notify_add || e == se_notify_modify || e == fe_close)
{
TSheet_field& sheet = (TSheet_field&)o;
const int nrig = int(jolly);
TToken_string& row = sheet.row(nrig);
switch(e)
{
case se_notify_add:
row.add("A", F_TIPOCOMP-FIRST_FIELD); // Forza il listbox ad articolo
row.add("", F_EXPR-FIRST_FIELD); // Forza la quantita' ad 1
row.add(nrig+1, F_SORT0-FIRST_FIELD); // Inizializza numero riga
sheet.select(nrig);
{
TSheet_field& sheet = (TSheet_field&)o;
const int nrig = int(jolly);
sheet.set_row_cell(F_TIPOCOMP, "A", nrig); // Forza il listbox ad articolo
sheet.set_row_cell(F_EXPR, 1, nrig); // Forza la quantita' ad 1
sheet.set_row_cell(F_SORT0, nrig + 1, nrig); // Inizializza numero riga
sheet.select(nrig);
sheet.force_update(nrig);
}
break;
case se_notify_modify:
return test_row(row);
return test_row(int(jolly));
break;
case fe_close:
{
TSheet_field& sheet = (TSheet_field&)o;
const int nrig = int(jolly);
TString80 code;
TString80 code1;
for (int n = sheet.items()-1; n >= 0; n--)
{
const TToken_string& row = sheet.row(n);
row.get(F_CODART-FIRST_FIELD, code);
if (!code.blank())
code = sheet.get_str_row_cell(n, F_CODART);
if (code.full())
{
if (!test_row(row))
if (!test_row(nrig))
return false;
for (int m = n - 1; m >= 0; m--)
{
const TToken_string& row = sheet.row(m);
row.get(F_CODART-FIRST_FIELD, code1);
if (code == code1)
if (code == sheet.get_str_row_cell(m, F_CODART))
{
int k = noyesall_box("Il codice %s e' ripetuto alla riga %d,\ncontinuare ugualmente ?", (const char *) code, n + 1);
if (k == K_NO)
@ -1219,7 +1223,7 @@ bool TDistinta_mask::on_distsheet_event(TOperable_field& o, TField_event e, long
sheet.destroy(n);
}
}
if (sheet.items() == 0)
if (((TSheet_field&)o).items() == 0)
message_box(TR("E' necessario inserire almeno una riga nella distinta"));
break;
default:
@ -1740,7 +1744,7 @@ bool TDistinta_app::changing_mask(int mode)
return was_query != is_query;
}
TMask* TDistinta_app::get_mask(int mode)
TMask* TDistinta_app::_get_mask(int mode)
{
const bool is_query = mode == MODE_QUERY || mode == MODE_QUERYINS;
_mode = mode;

View File

@ -51,7 +51,7 @@ protected:
virtual bool remove();
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) {return _msk;}
virtual TMask* _get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return false;}
virtual void ini2mask(TConfig& ini, TMask& m, bool query);
@ -541,6 +541,23 @@ bool TEffetti_mask::on_field_event(TOperable_field& o, TField_event e, long joll
if (e == fe_modify)
sfield(F_SHEET_RIGHE).set_focusdirty();
break;
case F_IBAN_STATO:
if (mode() == MODE_MOD && e == fe_init)
{
TRelation * rel = app().get_relation();
if (rel != nullptr)
{
TRectype & rec = rel->lfile().curr();
if (rec.get(EFF_IBAN).empty())
{
set(F_CODABI, rec.get(EFF_CODABI));
set(F_CODCAB, rec.get(EFF_CODCAB));
return true;
}
}
}
case F_SHEET_RIGHE:
return on_sheet_event(o, e, jolly);
default:

View File

@ -29,7 +29,7 @@ protected:
virtual bool remove();
virtual bool has_filtered_cursor() const { return true; }
virtual bool changing_mask(int mode) { return false; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
static bool tipodist_handler(TMask_field& f, KEY k);
static bool importo_handler(TMask_field& f, KEY k);

View File

@ -710,7 +710,7 @@ void TControllo_mask::fill_fppro_sheet() const
"ORDER BY " << order << " " << (_verso == 'A' ? "ASC" : "DESC") << "\n";
fp_db().sq_set_exec(query, false);
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
for (bool ok = fp_db().sq_first(); ok; ok = fp_db().sq_next())
{
const int row = sf.set_row_cell(F_FTIPODOC, fp_db().sq_get("TIPODOC"));

View File

@ -770,7 +770,8 @@ bool TDoc2Paf::create()
bool TDoc2Paf::destroy()
{
fp_db().sq_disconnect();
if (fp_db().sq_is_connect())
fp_db().sq_disconnect();
return TSkeleton_application::destroy();
}

View File

@ -85,7 +85,7 @@ protected:
bool user_create() override;
bool user_destroy() override;
TMask* get_mask(int mode) override { return _mask; }
TMask* _get_mask(int mode) override { return _mask; }
bool changing_mask(int mode) override { return false; }
public:

View File

@ -35,5 +35,6 @@ Flags = ""
Item_01 = "Estrazioni", "f90 -0", ""
Item_02 = "Categorie documentali", "f90 -1", ""
Item_03 = "Gestione file doc. cartacei", "f90 -2", ""
Item_04 = "Ripristino estrazioni", "f90 -4", ""

View File

@ -6,6 +6,7 @@
#include <automask.h>
#include <defmask.h>
#include <diction.h>
#include <modaut.h>
#include <nditte.h>
#include <recarray.h>
@ -516,7 +517,7 @@ protected:
virtual bool get_next_key(TToken_string& key);
virtual bool changing_mask(int mode) { return true; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
@ -560,9 +561,10 @@ bool TF24_app::get_next_key(TToken_string& key)
}
TMask* TF24_app::get_mask(int mode)
TMask* TF24_app::_get_mask(int mode)
{
const int n = (mode == MODE_QUERY) ? 0 : 1;
return (TMask*)_msk.objptr(n);
}

View File

@ -257,7 +257,7 @@ class TDocumenti_premio : public TRelation_application
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int m);
virtual TMask* _get_mask(int m);
virtual bool changing_mask(int) { return true; }
virtual TRelation* get_relation() const { return _rel; }
@ -275,7 +275,7 @@ protected:
virtual void init_modify_mode(TMask& m);
};
TMask* TDocumenti_premio::get_mask(int m)
TMask* TDocumenti_premio::_get_mask(int m)
{
if (m < MODE_INS)
return _qmsk;

View File

@ -7,6 +7,7 @@
#include <comuni.h>
#include <multirel.h>
#include <scadenze.h>
#include "../cg/cglib.h"
#include "../cg/cgsaldac.h"
#include "../ve/condv.h"

View File

@ -4,9 +4,9 @@
#include <reputils.h>
#include <utility.h>
#include "../cg/cg2101.h"
#include "../cg/cg2103.h"
#include "../cg/cglib.h"
#include "../cg/cgsaldac.h"
#include "../mg/movmag.h"
#include "../mg/rmovmag.h"
@ -1059,7 +1059,8 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
//usa la cli2doc per riempire tutti i campi legati al cliente
TCli_for clifor('C', codcf);
clifor.cli2doc(doc);
doc.cli2doc();
//sconto in fattura, sconto totale, che cazzo sono?
//TString8 scontone = recset.get();
@ -1275,7 +1276,8 @@ void TUpload2Campo::elabora_RC(THardy_upload_recordset& recset, TLog_report& log
doc.put(DOC_CAUSMAG, caus_movmag);
TCli_for clifor('C', codcf);
clifor.cli2doc(doc);
doc.cli2doc();
doc.destroy_rows();

View File

@ -10,7 +10,7 @@
#include <doc.h>
#include <rdoc.h>
//#include "../mg/codcorr.h"
#include "../cg/cglib01.h"
#include "../cg/cglib.h"
#include "../ve/velib.h"
#include "halib.h"

View File

@ -10,7 +10,7 @@
#include <comuni.h>
#include "../mg/codcorr.h"
#include "../cg/cglib01.h"
#include "../cg/cglib.h"
#include "../ve/velib.h"
#include "halib.h"

View File

@ -572,7 +572,7 @@ bool THardy_clienti::init_esselunga()
{
const TString& paiv = clifo.get(CLI_PAIV).as_string();
if (paiv == last_paiv && paiv.full())
_esselunga.add(paiv, NULL);
_esselunga.add(paiv);
else
last_paiv = paiv;
}

View File

@ -12,7 +12,7 @@
#include <utility.h>
#include "../cg/cglib01.h"
#include "../cg/cg2103.h"
#include "../cg/cglib.h"
#include "../cg/cgsaldac.h"
#include "../cg/cgpagame.h"

Binary file not shown.

View File

@ -89,7 +89,7 @@ void TStampa_INTRA::main_loop()
}
while(m.run() == K_ENTER)
{
TProgramReport report;
TProgram_report report;
TReport_book book;
report.load(repname);

View File

@ -52,7 +52,7 @@ class TImmissione_intra : public TRelation_application
protected:
virtual bool user_create();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual bool user_destroy();
virtual bool protected_record(TRectype & rec);

View File

@ -152,7 +152,7 @@ class TRiepiloghi_intra : public TRelation_application
protected:
virtual bool user_create();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
virtual int write(const TMask& m);
virtual bool changing_mask(int mode) { return FALSE; }
virtual bool user_destroy();

View File

@ -148,7 +148,7 @@ class TRettifiche_intra : public TRelation_application
protected:
virtual bool user_create();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual bool user_destroy();
virtual bool get_next_key(TToken_string& k);

View File

@ -160,7 +160,7 @@ bool TArray::destroy(
if (index < 0)
{
for (int i = last(); i >= 0; i--)
if (_data[i] != NULL)
if (_data[i] != nullptr)
safe_delete(_data[i]);
_items = _next = 0;
}

View File

@ -55,9 +55,11 @@
#define DLG_EXPORT_PDF 51 /* TAG del bottone Esporta un pdf */
#define DLG_EXPORT_DBF 52 /* TAG del bottone Esporta in dbf */
#define DLG_EXPORT_TEXT 53 /* TAG del bottone Esporta un testo */
#define DLG_OUTPUTD 54 /* TAG del campo <output> direttorio*/
#define DLG_OUTPUTF 55 /* TAG del campo <output> file*/
#define DLG_REPORT 56 /* TAG del campo <report> */
#define DLG_OUTPUTD 54 /* TAG del campo <output> direttorio*/
#define DLG_OUTPUTF 55 /* TAG del campo <output> file*/
#define DLG_REPORT 56 /* TAG del campo <report> */
#define DLG_OGGETTI 57 /* TAG del campo <golem> */
#define DLG_CARTACEI 58 /* TAG del campo <golem da archiviare> */
#define DLG_USER 100 /* TAG del primo controllo definito dall'utente */

View File

@ -103,6 +103,8 @@
#define DOC_TIPODOCSDI "TIPODOCSDI"
#define DOC_NOINVIOSDI "NOINVIOSDI"
#define DOC_SCONTOFATT "SCONTOFATT"
#define DOC_COLL_GOLEM "COLL_GOLEM"
#define DOC_CARTACEI "CARTACEI"
// Virtuali
#define DOC_PLAFOND "PLAFOND"

View File

@ -10,6 +10,7 @@
#include <msksheet.h>
#include <prefix.h>
#include <relation.h>
#include <statbar.h>
#include <treectrl.h>
#include <urldefid.h>
#include <utility.h>
@ -309,24 +310,31 @@ TString& TGolem_field::get_window_data()
void TGolem_field::set_window_data(const char* data)
{
unsigned int icon = 0;
char* pipe = (char*)strchr(data, '|'); //antica porcata
if (pipe)
{
*pipe = '\0'; // Poor man TToken_string
icon = xvt_sys_load_icon(data);
*pipe = '|';
}
TPushbutton_control* btn = (TPushbutton_control*)_ctl;
if (icon)
btn->set_icon(icon);
else
btn->set_bmp(BMP_OLE, 0);
if (_tool) // non si capisce perchè non disegni la nuova bitmap
update_tool();
else
{
unsigned int icon = 0;
char* pipe = (char*)strchr(data, '|'); //antica porcata
RCT rct; btn->get_rect(rct);
xvt_dwin_invalidate_rect(btn->parent(), &rct);
if (pipe)
{
*pipe = '\0'; // Poor man TToken_string
icon = xvt_sys_load_icon(data);
*pipe = '|';
}
TPushbutton_control* btn = (TPushbutton_control*)_ctl;
if (icon)
btn->set_icon(icon);
else
btn->set_bmp(_bmp, 0);
RCT rct; btn->get_rect(rct);
xvt_dwin_invalidate_rect(btn->parent(), &rct);
}
}
bool TGolem_field::is_editable() const
@ -338,17 +346,54 @@ void TGolem_field::parse_head(TScanner& scanner)
if (_ctl_data._width <= 0) _ctl_data._width = 10;
_ctl_data._height = scanner.integer(); // Height
if (_ctl_data._height <= 0) _ctl_data._height = 1;
_ctl_data._bmp_up = BMP_OLE;
}
bool TGolem_field::parse_item(TScanner& scanner)
{
if (scanner.key() == "PI")
{
const short bmp = (short)scanner.integer();
if (_bmp == 0)
_bmp = bmp;
return bmp > 0;
}
return TEditable_field::parse_item(scanner);
}
void TGolem_field::create(WINDOW parent)
{
_ctl = new TPushbutton_control(parent, _ctl_data._dlg,
_ctl_data._x, _ctl_data._y,
_ctl_data._width+2, _ctl_data._height,
_ctl_data._flags, "", // No prompt -> icons olny!
_ctl_data._bmp_up, _ctl_data._bmp_dn);
}
if (_tool)
{
if (_ctl_data._dlg == DLG_OGGETTI)
{
if (_ctl_data._prompt.blank())
_ctl_data._prompt = TR("Oggetti");
if (_bmp <= 0)
_ctl_data._bmp_up = _bmp = TOOL_OLE;
}
else
if (_ctl_data._dlg == DLG_CARTACEI)
{
if (_ctl_data._prompt.blank())
_ctl_data._prompt = TR("Cartacei");
if (_ctl_data._bmp_up <= 0)
_ctl_data._bmp_up = _bmp = TOOL_ARCHIVE;
}
xvt_toolbar_add_control(_toolbar = parent, _dlg = _ctl_data._dlg, TOOL_TOGLBUTN, _ctl_data._prompt, _ctl_data._bmp_up, _ctl_data._width, -1);
}
else
{
if (_bmp == 0)
_bmp = BMP_OLE;
_ctl_data._bmp_up = _bmp;
_ctl = new TPushbutton_control(parent, _ctl_data._dlg,
_ctl_data._x, _ctl_data._y,
_ctl_data._width+2, _ctl_data._height,
_ctl_data._flags, _ctl_data._prompt,
_ctl_data._bmp_up, _ctl_data._bmp_dn);
}
}
bool TGolem_field::autoload(const TRelation& r)
{
@ -401,9 +446,28 @@ bool TGolem_field::autosave(TRelation& r)
if (tobe_stored && new_file.full())
{
char ext[_MAX_EXT];
xvt_fsys_parse_pathname(new_file, NULL, NULL, NULL, ext, NULL);
golem_path << SLASH;
old_file.temp(golem_path, ext);
char fname[_MAX_FNAME];
xvt_fsys_parse_pathname(new_file, NULL, NULL, fname, ext, NULL);
old_file = golem_path;
old_file.add(fname);
old_file.ext(ext);
if (fexist(old_file))
{
int i = 0;
old_file.ext("");
old_file << '_' << today.string(ANSI) << "_000";
old_file.ext(ext);
while (fexist(old_file))
{
old_file.ext("");
old_file.rtrim(1);
old_file << ++i;
old_file.ext(ext);
}
}
fcopy(new_file, old_file);
new_row.add(old_file, 0);
@ -437,8 +501,11 @@ bool TGolem_field::on_key(KEY key)
{
if (*row > ' ')
sheet.row(-1) = row;
}
if (msk->run() == K_ENTER)
}
short key = msk->run();
if (key == K_ENTER)
{
tmp.cut(0);
FOR_EACH_SHEET_ROW(sheet, r, row)
@ -450,6 +517,9 @@ bool TGolem_field::on_key(KEY key)
_selected = sheet.selected();
do_message(0);
}
else
if (key == K_ESC)
update_tool();
}
else
{
@ -467,14 +537,20 @@ bool TGolem_field::on_key(KEY key)
do_message(0);
}
}
delete msk;
}
safe_delete(msk);
}
return ok;
}
TGolem_field::TGolem_field(TMask* m)
: TEditable_field(m), _old_value(80, '\n'), _selected(0)
void TGolem_field::update_tool()
{
const TString & val = get_window_data();
xvt_toolbar_toggle_control(toolbar(), _dlg, val.full());
};
TGolem_field::TGolem_field(TMask* m, bool tool)
: TEditable_field(m), _old_value(80, '\n'), _selected(0), _bmp(0), _tool(tool), _dlg(-1)
{ }
TGolem_field::~TGolem_field()
@ -611,7 +687,7 @@ bool TGolem_window::on_key(KEY k)
}
}
force_update();
}
}
}
return TField_window::on_key(k);

View File

@ -955,6 +955,7 @@ int TBaseisamfile::_write(const TRectype& rec)
{
if (rec.has_memo())
((TRectype&)rec).write_memo(_isam_handle, _recno );
if (_logicnum < LF_EXTERNAL)
rec_cache(_logicnum).notify_change();
xvt_fsys_set_file_time(filename(), nullptr, nullptr, xvt_time_now());
}
@ -1018,7 +1019,10 @@ int TBaseisamfile::_rewrite(const TRectype& rec)
_lasterr = DB_rewrite(fhnd);
xvt_fsys_set_file_time(filename(), nullptr, nullptr, xvt_time_now());
if (_lasterr == NOERR)
rec_cache(_logicnum).notify_change();
{
if (_logicnum < LF_EXTERNAL)
rec_cache(_logicnum).notify_change();
}
else
_lasterr = get_error(_lasterr);
}
@ -1035,7 +1039,7 @@ int TBaseisamfile::_rewrite(const TRectype& rec)
if (changed)
((TRectype&)rec).write_memo(_isam_handle, _recno);
}
if (changed)
if (changed && _logicnum < LF_EXTERNAL)
rec_cache(_logicnum).notify_change();
}
}
@ -1077,7 +1081,7 @@ int TBaseisamfile::rewriteat(const TRectype& rec, TRecnotype nrec)
if (changed)
((TRectype&)rec).write_memo(_isam_handle, _recno);
}
if (changed)
if (changed && _logicnum < LF_EXTERNAL)
rec_cache(_logicnum).notify_change();
}
return _lasterr;
@ -1104,6 +1108,7 @@ int TBaseisamfile::_remove(const TRectype& rec)
{
if (curr().has_memo( ))
curr().init_memo();
if (_logicnum < LF_EXTERNAL)
rec_cache(_logicnum).notify_change();
DB_flush(fhnd);
}
@ -4336,7 +4341,7 @@ bool TRectype::edit(int logicnum, const char* alternate_key_fields, const char*
xvt_fsys_remove_file(ininame);
if (ok && _logicnum < 1000)
if (ok && _logicnum < LF_EXTERNAL)
rec_cache(logicnum).notify_change();
}
return ok;

View File

@ -606,7 +606,7 @@ bool TMask::check_fields()
{
TMask_field& f = fld(i);
const bool on = f.active() || (f.shown() && f.is_sheet());
if (on) // Don't test inactive fields
if (on && !f.is_kind_of(CLASS_GOLEM)) // Don't test inactive fields
{
if (f.parent() != curpage)
{
@ -2529,6 +2529,49 @@ TButton_tool& TMask::add_button_tool(short id, const char* prompt, short bmpup)
// @doc EXTERNAL
// @mfunc Aggiunge runtime un campo golem alla maschera
//
// @rdesc Ritorna l'handle del campo creato
TGolem_field& TMask::add_golem(
short id, // @parm Numero identificatore del campo da aggiungere
int page, // @parm Pagina nel quale aggiungere il campo
const char* prompt, // @parm Prompt del campo
int x, // @parm Coordinata x (in caratteri)
int y, // @parm Coordinata y (in caratteri)
int dx, // @parm Larghezza del campo (in caratteri, default 9)
int dy, // @parm Altezza del campo (in caratteri, default 1)
const char* flags, // @parm Flag di controllo del campo (default "")
short bmpup, // @parm Icona normale
short bmpdn) // @parm Icona premuta
// @xref <mf TMask::add_static> <mf TMask::add_string> <mf TMask::add_number>
// <mf TMask::add_date> <mf TMask::add_radio> <mf TMask::add_memo>
{
TGolem_field* g = new TGolem_field(this);
g->construct(id, prompt, x, y, dy, page_win(page), flags, dx, bmpup, bmpdn);
add_field(g);
return *g;
}
// @doc EXTERNAL
// @mfunc Aggiunge runtime un campo golem alla toolbar
// @rdesc Ritorna l'handle del campo creato
TGolem_field& TMask::add_golem_tool(short id, const char* prompt, const char* flags, short bmpup, short bmpdn)
{
TGolem_field * g = new TGolem_field(this, true);
if (toolbar() == NULL_WIN) // Se non c'e' ancora la toolbar, me l'invento adesso
create_bar(1);
g->construct(id, prompt, 0, 0, 0, toolbar(), flags, 0, bmpup, bmpdn);
add_field(g);
return *g;
}
// @doc EXTERNAL
// @mfunc Salva i valori dei campi della maschera sul file di salvataggio
//
// @rdesc Ritorna il risultato dell'operazione:

View File

@ -239,9 +239,12 @@ public:
TTree_field& add_tree (short id, int page, int x, int y, int dx, int dy, const char* flags = "");
// @cmember Aggiunge runtime un group box alla maschera
TGroup_field& add_groupbox (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 3, const char* flags = "");
// @cmember Aggiunge runtime un campo golem alla maschera
TGolem_field& add_golem(short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "", short bmpup = 0, short bmpdn = 0);
// @cmember Aggiunge runtime un bottone alla toolbar
TButton_tool& add_button_tool(short id, const char* prompt, short bmpup);
// @cmember Aggiunge runtime un campo golem alla toolbar
TGolem_field& add_golem_tool(short id, const char* prompt, const char* flags, short bmpup = 0, short bmpdn = 0);
// @cmember Ritorna il numero di campi della maschera
int fields() const

View File

@ -1351,15 +1351,22 @@ class TGolem_field : public TEditable_field
{
TToken_string _old_value;
int _selected;
int _bmp;
int _dlg;
bool _tool;
WINDOW _toolbar;
protected: // TEditable_field
WINDOW parent() const { return _tool ? _toolbar : TMask_field::parent(); }
bool is_kind_of(word cid) const { return cid == CLASS_GOLEM; }
virtual TString& get_window_data();
virtual void set_window_data(const char* data);
const WINDOW toolbar() const { return _toolbar; }
// @cmember Ritorna false in quanto il campo non e' realmente editable
virtual bool is_editable() const;
virtual void parse_head(TScanner& scanner);
bool parse_item(TScanner& scanner);
virtual void create(WINDOW parent);
// @cmember Legge dalla relazione il valore del campo
@ -1370,8 +1377,9 @@ protected: // TEditable_field
public:
virtual bool on_key(KEY k);
int selected() const { return _selected; }
void update_tool();
TGolem_field(TMask* m);
TGolem_field(TMask* m, bool tool = false);
virtual ~TGolem_field();
};

View File

@ -3,7 +3,7 @@
#include <tabmod.h>
// @cmember Richiede la maschera da usare
TMask* TTable_module_application::get_mask(int)
TMask* TTable_module_application::_get_mask(int)
{
CHECK(_msk, "Null mask");
return _msk;

View File

@ -26,7 +26,7 @@ protected:
virtual bool user_create();
virtual bool user_destroy();
virtual bool protected_record(TRectype& rec);
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual void set_mask(TMask * mask);
virtual TRelation* get_relation() const;
virtual void print();

View File

@ -63,6 +63,8 @@
#define MOV_ELABF9 "ELABF9"
#define MOV_IDDOCSDI "IDDOCSDI"
#define MOV_DATADOCSDI "DATADOCSDI"
#define MOV_COLL_GOLEM "COLL_GOLEM"
#define MOV_CARTACEI "CARTACEI"
#define NUMREG_PROVVISORIO 999999L

View File

@ -1019,6 +1019,28 @@ bool TRelation_application::find(word k)
return err == NOERR;
}
TMask * TRelation_application::setup_mask(int mode, TMask * mask)
{
TRelation * rel = get_relation();
if (rel != nullptr && mask != nullptr && (mode == MODE_INS || mode == MODE_MOD))
{
if (rel->lfile().curr().exist("COLL_GOLEM") && mask->find_by_fieldname("COLL_GOLEM") == nullptr)
{
TGolem_field & o = mask->add_golem_tool(DLG_OGGETTI, "", "M");
o.set_field("COLL_GOLEM");
}
if (rel->lfile().curr().exist("CARTACEI") && mask->find_by_fieldname("CARTACEI") == nullptr)
{
TGolem_field & c = mask->add_golem_tool(DLG_CARTACEI, "", "M", BMP_ARCHIVE);
c.set_field("CARTACEI");
}
}
return mask;
}
void TRelation_application::edit_cancel()
{
if (_mask->mode() == MODE_MOD)

View File

@ -170,9 +170,11 @@ protected:
// <mf TRelation_application::get_mask>. Cio' serve per gestire correttamente le applicazioni
// con maschere multiple.
virtual bool changing_mask(int mode) { return false; }
virtual TMask * setup_mask(int mode, TMask * mask);
// @cmember Richiede la maschera da usare
virtual TMask* get_mask(int mode) pure;
virtual TMask* _get_mask(int mode) pure;
// @cmember wrapper che richiede la maschera da usare
virtual TMask* get_mask(int mode) { return setup_mask(mode, _get_mask(mode)); }
// @cmember:(INTERNAL) Annulla la modifica di un record: toglie il lock
void edit_cancel();
// @cmember:(INTERNAL) Salva i contenuti della maschera su file

View File

@ -18,7 +18,7 @@ bool TTable_application::changing_mask(int mode)
{ return false; }
// @cmember Richiede la maschera da usare
TMask* TTable_application::get_mask(int mode)
TMask* TTable_application::_get_mask(int mode)
{
CHECK(_msk, "Null mask");
return _msk;
@ -160,7 +160,7 @@ bool TMultirel_application::changing_mask(int mode)
{ return false; }
// @cmember Richiede la maschera da usare
TMask* TMultirel_application::get_mask(int mode)
TMask* TMultirel_application::_get_mask(int mode)
{
CHECK(_msk, "Null mask");
return _msk;
@ -197,7 +197,7 @@ bool TMultirel_application::find(word k)
{
file().setkey(1);
file().zero();
for (TEditable_field* e = get_mask()->get_key_field(1, true); e; e = get_mask()->get_key_field(1, false))
for (TEditable_field* e = get_mask(MODE_QUERY)->get_key_field(1, true); e; e = get_mask(MODE_QUERY)->get_key_field(1, false))
{
if (e->shown() || e->ghost()) // Ignora campi invisibili non ghost
e->autosave(*get_relation());
@ -215,7 +215,7 @@ void TMultirel_application::init_insert_mode(TMask& m)
TLocalisamfile multi(LF_MULTIREL);
file().curr().zero();
for (TEditable_field* e = get_mask()->get_key_field(1, true); e; e = get_mask()->get_key_field(1, false))
for (TEditable_field* e = get_mask(MODE_QUERY)->get_key_field(1, true); e; e = get_mask(MODE_QUERY)->get_key_field(1, false))
{
if ((!e->in_group(1)) && (e->shown() || e->ghost()))
e->autosave(*get_relation());

View File

@ -34,7 +34,7 @@ protected:
// @cmember Richiede se il record corrente e' protetto (non cancellabile)
virtual bool protected_record(TRectype& rec);
// @cmember Richiede la maschera da usare
virtual TMask* get_mask(int mode = MODE_QUERY);
virtual TMask* _get_mask(int mode);
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
// dalla corrente.
virtual bool changing_mask(int mode);
@ -93,7 +93,7 @@ protected:
virtual void get_mask_name(TString& tabname) const;
// @cmember Richiede la maschera da usare
virtual TMask* get_mask(int mode = MODE_QUERY);
virtual TMask* _get_mask(int mode);
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
// dalla corrente.
virtual bool changing_mask(int mode);

View File

@ -177,7 +177,7 @@ class TLetint : public TRelation_application
protected:
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) { return _mask; }
virtual TMask* _get_mask(int mode) { return _mask; }
virtual bool changing_mask(int mode) { return false; }
virtual bool protected_record(TRectype &rec);
virtual void init_query_mode(TMask& m);

View File

@ -950,7 +950,7 @@ private:
int find_art(TSheet_field& s,const TString& art) const;
protected:
virtual TMask* get_mask (int mode) {return _msk; }
virtual TMask* _get_mask (int mode) {return _msk; }
virtual TRelation* get_relation() const {return _rel;}
virtual bool user_create();

View File

@ -100,7 +100,7 @@ protected:
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
virtual TMask* get_mask(int mode) { return _mask; }
virtual TMask* _get_mask(int mode) { return _mask; }
virtual bool changing_mask(int mode) { return false; }
public:

View File

@ -8,6 +8,7 @@
#include <sheet.h>
#include <utility.h>
#include "../cg/cglib.h"
#include "../cg/cgsaldac.h"
#include "lv4.h"
@ -63,7 +64,7 @@ const TCausale& TCausali_cache::causale(const char tipocf, tipo_movimento tm)
{
// Metodo bastardo per evitare TToken_string temporanee "a randa"
// creo chiave a lunghezza fissa TIPOCF+TIPOMOV+ANNO = C12010
const char key[4] = { tipocf, '0'+tm, '\0' };
const char key[4] = { tipocf, '0'+(char) tm, '\0' };
return *(const TCausale*)objptr(key);
}

View File

@ -18,7 +18,6 @@
#include "../ce/cespi.h"
#include "../ce/salce.h"
#include "../cg/cglib.h"
#include "lv4.h"
#include "lv4100.h"
#include "lv4500a.h"

View File

@ -42,7 +42,7 @@ class TCGRiclass_application : public TRelation_application
// @access Protected Member
protected:
virtual TMask* get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
virtual TMask* _get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
// dalla corrente.
virtual bool changing_mask(int mode) { return false; }

View File

@ -76,7 +76,7 @@ bool TCOGECO_multirel_app::user_create()
if (ok)
{
TConfig config(CONFIG_DITTA);
TMask & m = *get_mask();
TMask & m = *get_mask(MODE_QUERY);
set_search_field(F_CODTAB);
}

View File

@ -141,7 +141,7 @@ bool TSchedaPercipienti::changing_mask(int mode)
return _mode != mode;
}
TMask* TSchedaPercipienti::get_mask(int mode)
TMask* TSchedaPercipienti::_get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;

View File

@ -175,7 +175,7 @@ class TSchedaPercipienti : public TRelation_application
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode);
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);

View File

@ -9,15 +9,15 @@ protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int) { return _msk; }
virtual TMask* _get_mask(int) { return _msk; }
};
bool TAnagrafica_percipiente::user_create()
{
const TString& tabcom_editor = ini_get_string(CONFIG_GENERAL, "77", "Edit_4");
if (tabcom_editor.blank())
if (tabcom_editor.blank())
ini_set_string(CONFIG_GENERAL, "77", "Edit_4", "700 -3");
_rel = new TRelation(LF_PERC);
_msk = new TMask("770300a");
return true;

View File

@ -102,7 +102,7 @@ class TQuadroA : public TRelation_application
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode);
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
@ -145,7 +145,7 @@ bool TQuadroA::changing_mask(int mode)
return _mode != mode;
}
TMask* TQuadroA::get_mask(int mode)
TMask* TQuadroA::_get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;

View File

@ -250,7 +250,7 @@ protected:
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void init_insert_mode (TMask&);

View File

@ -52,7 +52,7 @@ class TQuadroF : public TRelation_application
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_insert_mode (TMask&);

View File

@ -69,7 +69,7 @@ class TQuadroG : public TRelation_application
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_insert_mode (TMask&);

View File

@ -109,7 +109,7 @@ protected:
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual TMask* _get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);

View File

@ -29,7 +29,7 @@ protected:
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
// void init_mask(TMask&);
@ -188,7 +188,7 @@ void TQuadro_H_app::on_config_change()
_anno = (int) conf.get_long(ANNO_SEL);
}
TMask* TQuadro_H_app::get_mask(int mode)
TMask* TQuadro_H_app::_get_mask(int mode)
{
return _msk;
}

View File

@ -20,7 +20,7 @@ protected:
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
// void init_mask(TMask&);
@ -62,7 +62,7 @@ bool TDettaglio_H_app::descr_ente (TMask_field& f , KEY k)
return TRUE;
}
TMask* TDettaglio_H_app::get_mask(int mode)
TMask* TDettaglio_H_app::_get_mask(int mode)
{
return _msk;
}

Some files were not shown because too many files have changed in this diff Show More