Patch level : 12.0 900
Files correlati : ca0.exe ca0400a.msk Commento : Sistemato il pulsante ricerca avanti, inietro nelle anagrafiche dell'analitica
This commit is contained in:
parent
466c4bad25
commit
2456f926be
@ -97,6 +97,7 @@ class TAnalisi_app : public TAnal_app
|
|||||||
TAnalisi_rec * _rows;
|
TAnalisi_rec * _rows;
|
||||||
int _maxlev;
|
int _maxlev;
|
||||||
bool _riclassificato;
|
bool _riclassificato;
|
||||||
|
TPiano_conti_anal_msk * _msk;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual const char * extra_modules() const {return "ci|cm";} //funziona anche con autorizzazione CM
|
virtual const char * extra_modules() const {return "ci|cm";} //funziona anche con autorizzazione CM
|
||||||
@ -119,6 +120,9 @@ protected:
|
|||||||
virtual bool create();
|
virtual bool create();
|
||||||
virtual bool user_create();
|
virtual bool user_create();
|
||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
|
virtual bool has_filtered_cursor() const { return true; }
|
||||||
|
TPiano_conti_anal_msk & mask() const { return *_msk; };
|
||||||
|
virtual TCursor * get_filtered_cursor() const { return mask().efield(F_KEY1 + _maxlev - 1).browse()->cursor();}
|
||||||
};
|
};
|
||||||
|
|
||||||
void TAnalisi_app::rec2row(const TMask& m)
|
void TAnalisi_app::rec2row(const TMask& m)
|
||||||
@ -243,7 +247,7 @@ void TAnalisi_app::init_indbil(TMask& mask)
|
|||||||
int level = 0;
|
int level = 0;
|
||||||
for (level = _maxlev; level > 0; level--)
|
for (level = _maxlev; level > 0; level--)
|
||||||
{
|
{
|
||||||
if (mask.field(F_KEY1+level).shown())
|
if (mask.field(F_KEY1 + level - 1).shown())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
enabled = level < _maxlev || _riclassificato; // Le foglie sono sempre disabilitate
|
enabled = level < _maxlev || _riclassificato; // Le foglie sono sempre disabilitate
|
||||||
@ -269,7 +273,7 @@ void TAnalisi_app::init_indbil(TMask& mask)
|
|||||||
|
|
||||||
void TAnalisi_app::init_modify_mode(TMask& mask)
|
void TAnalisi_app::init_modify_mode(TMask& mask)
|
||||||
{
|
{
|
||||||
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev, 1);
|
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev - 1, 1);
|
||||||
mask.enable_page(1, mask.get(id).not_empty());
|
mask.enable_page(1, mask.get(id).not_empty());
|
||||||
|
|
||||||
TAnal_app::init_modify_mode(mask);
|
TAnal_app::init_modify_mode(mask);
|
||||||
@ -278,7 +282,7 @@ void TAnalisi_app::init_modify_mode(TMask& mask)
|
|||||||
|
|
||||||
void TAnalisi_app::init_insert_mode(TMask& mask)
|
void TAnalisi_app::init_insert_mode(TMask& mask)
|
||||||
{
|
{
|
||||||
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev, 1);
|
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev - 1, 1);
|
||||||
mask.enable_page(1, mask.get(id).not_empty());
|
mask.enable_page(1, mask.get(id).not_empty());
|
||||||
|
|
||||||
TAnal_app::init_insert_mode(mask);
|
TAnal_app::init_insert_mode(mask);
|
||||||
@ -321,16 +325,21 @@ bool TAnalisi_app::user_create()
|
|||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
_rows = new TAnalisi_rec();
|
_rows = new TAnalisi_rec();
|
||||||
TPiano_conti_anal_msk * m = (TPiano_conti_anal_msk * ) get_mask(0);
|
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_PCONANA);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
_msk = (TPiano_conti_anal_msk *)get_mask(0);
|
||||||
|
_maxlev = mci.levels();
|
||||||
|
set_search_field(F_KEY1 + _maxlev - 1);
|
||||||
|
|
||||||
|
if (_maxlev > 1)
|
||||||
{
|
{
|
||||||
const short id = m->get_field_id(i, 1);
|
TBrowse * b = mask().efield(F_KEY1 + _maxlev - 1).browse();
|
||||||
if (id <= 0 || m->id2pos(id) < 0)
|
TString inp(b->get_input_fields());
|
||||||
break;
|
|
||||||
_maxlev = i;
|
b->set_filter("");
|
||||||
|
inp.strip("@");
|
||||||
|
b->set_input_fields(inp);
|
||||||
}
|
}
|
||||||
set_search_field(F_DES1 + _maxlev - 1);
|
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ BEGIN
|
|||||||
ITEM "2|2. Passivita'"
|
ITEM "2|2. Passivita'"
|
||||||
ITEM "3|3. Costi"
|
ITEM "3|3. Costi"
|
||||||
ITEM "4|4. Ricavi"
|
ITEM "4|4. Ricavi"
|
||||||
// ITEM "5|5. Conti d'ordine"
|
ITEM "5|5. Conti d'ordine"
|
||||||
FIELD INDBIL
|
FIELD INDBIL
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "calib01.h"
|
#include "calib01.h"
|
||||||
#include "ca0500a.h"
|
#include "ca0500a.h"
|
||||||
#include "cdc.h"
|
#include "cdc.h"
|
||||||
|
#include "calibmsk.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
//MASCHERA
|
//MASCHERA
|
||||||
@ -55,6 +56,7 @@ class TCdC_app : public TAnal_app
|
|||||||
{
|
{
|
||||||
int _maxlev;
|
int _maxlev;
|
||||||
bool _has_filter;
|
bool _has_filter;
|
||||||
|
TCdC_anal_msk * _msk;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool filtered() const;
|
virtual bool filtered() const;
|
||||||
@ -63,7 +65,9 @@ protected:
|
|||||||
virtual void init_insert_mode(TMask& mask);
|
virtual void init_insert_mode(TMask& mask);
|
||||||
virtual bool protected_record(TRectype& record);
|
virtual bool protected_record(TRectype& record);
|
||||||
virtual TSimple_anal_msk* create_mask() const { return new TCdC_anal_msk; }
|
virtual TSimple_anal_msk* create_mask() const { return new TCdC_anal_msk; }
|
||||||
virtual bool user_create();
|
TCdC_anal_msk & mask() const { return *_msk; };
|
||||||
|
virtual TCursor * get_filtered_cursor() const { return mask().efield(F_KEY1 + _maxlev - 1).browse()->cursor(); }
|
||||||
|
virtual bool user_create();
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TCdC_app::filtered() const
|
bool TCdC_app::filtered() const
|
||||||
@ -108,17 +112,33 @@ void TCdC_app::init_insert_mode(TMask& mask)
|
|||||||
|
|
||||||
bool TCdC_app::user_create()
|
bool TCdC_app::user_create()
|
||||||
{
|
{
|
||||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_CDC);
|
const bool ok = TAnal_app::user_create();
|
||||||
|
|
||||||
_maxlev = mci.levels();
|
if (ok)
|
||||||
if (_maxlev <= 0)
|
{
|
||||||
return error_box(TR("I centri di costo non sono stati configurati"));
|
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_CDC);
|
||||||
|
|
||||||
//eventuali filtri per utente
|
_maxlev = mci.levels();
|
||||||
_has_filter = cache().get("%AUC", user(), "S1").full();
|
if (_maxlev <= 0)
|
||||||
// set_search_field(F_CDCPDA1 + _maxlev - 1);
|
return error_box(TR("I centri di costo non sono stati configurati"));
|
||||||
|
|
||||||
return TAnal_app::user_create();
|
//eventuali filtri per utente
|
||||||
|
_has_filter = cache().get("%AUC", user(), "S1").full();
|
||||||
|
|
||||||
|
_msk = (TCdC_anal_msk *)get_mask(0);
|
||||||
|
|
||||||
|
set_search_field(F_KEY1 + _maxlev - 1);
|
||||||
|
|
||||||
|
if (_maxlev > 1)
|
||||||
|
{
|
||||||
|
TBrowse * b = mask().efield(F_KEY1 + _maxlev - 1).browse();
|
||||||
|
TString inp(b->get_input_fields());
|
||||||
|
|
||||||
|
inp.strip("@");
|
||||||
|
b->set_input_fields(inp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ca0500(int argc, char* argv[])
|
int ca0500(int argc, char* argv[])
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
#include "ca0600a.h"
|
#include "ca0600a.h"
|
||||||
#include "commesse.h"
|
#include "commesse.h"
|
||||||
#include "cfcms.h"
|
#include "cfcms.h"
|
||||||
|
#include "calibmsk.h"
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
//MASCHERA
|
//MASCHERA
|
||||||
@ -56,6 +58,7 @@ class TCms_app : public TAnal_app
|
|||||||
{
|
{
|
||||||
int _maxlev;
|
int _maxlev;
|
||||||
bool _has_filter;
|
bool _has_filter;
|
||||||
|
TCms_anal_msk * _msk;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void fin2row(const TMask& m);
|
void fin2row(const TMask& m);
|
||||||
@ -76,7 +79,9 @@ protected:
|
|||||||
virtual void init_insert_mode(TMask& mask);
|
virtual void init_insert_mode(TMask& mask);
|
||||||
virtual bool protected_record(TRectype& record);
|
virtual bool protected_record(TRectype& record);
|
||||||
virtual TSimple_anal_msk* create_mask() const { return new TCms_anal_msk; }
|
virtual TSimple_anal_msk* create_mask() const { return new TCms_anal_msk; }
|
||||||
virtual bool user_create();
|
TCms_anal_msk & mask() const { return *_msk; };
|
||||||
|
virtual TCursor * get_filtered_cursor() const { return mask().efield(F_KEY1 + _maxlev - 1).browse()->cursor(); }
|
||||||
|
virtual bool user_create();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -398,16 +403,32 @@ void TCms_app::init_insert_mode(TMask& mask)
|
|||||||
|
|
||||||
bool TCms_app::user_create()
|
bool TCms_app::user_create()
|
||||||
{
|
{
|
||||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_COMMESSE);
|
const bool ok = TAnal_app::user_create();
|
||||||
|
|
||||||
_maxlev = mci.levels();
|
if (ok)
|
||||||
if (_maxlev <= 0)
|
{
|
||||||
return error_box(TR("Le commesse non sono state configurate"));
|
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_COMMESSE);
|
||||||
|
|
||||||
//eventuali filtri per utente
|
_maxlev = mci.levels();
|
||||||
_has_filter = cache().get("%AUC", user(), "S0").full();
|
if (_maxlev <= 0)
|
||||||
|
return error_box(TR("Le commesse non sono state configurate"));
|
||||||
|
|
||||||
return TAnal_app::user_create();
|
//eventuali filtri per utente
|
||||||
|
_has_filter = cache().get("%AUC", user(), "S0").full();
|
||||||
|
|
||||||
|
_msk = (TCms_anal_msk *)get_mask(0);
|
||||||
|
set_search_field(F_KEY1 + _maxlev - 1);
|
||||||
|
|
||||||
|
if (_maxlev > 1)
|
||||||
|
{
|
||||||
|
TBrowse * b = mask().efield(F_KEY1 + _maxlev - 1).browse();
|
||||||
|
TString inp(b->get_input_fields());
|
||||||
|
|
||||||
|
inp.strip("@");
|
||||||
|
b->set_input_fields(inp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ca0600(int argc, char* argv[])
|
int ca0600(int argc, char* argv[])
|
||||||
|
@ -67,6 +67,8 @@ TFsc_anal_msk::TFsc_anal_msk()
|
|||||||
class TFsc_app : public TAnal_app
|
class TFsc_app : public TAnal_app
|
||||||
{
|
{
|
||||||
bool _has_filter;
|
bool _has_filter;
|
||||||
|
int _maxlev;
|
||||||
|
TFsc_anal_msk * _msk;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
||||||
@ -74,7 +76,9 @@ protected:
|
|||||||
virtual bool filtered() const;
|
virtual bool filtered() const;
|
||||||
virtual bool protected_record(TRectype& record);
|
virtual bool protected_record(TRectype& record);
|
||||||
virtual TSimple_anal_msk* create_mask() const { return new TFsc_anal_msk; }
|
virtual TSimple_anal_msk* create_mask() const { return new TFsc_anal_msk; }
|
||||||
virtual bool user_create();
|
TFsc_anal_msk & mask() const { return *_msk; };
|
||||||
|
virtual TCursor * get_filtered_cursor() const { return mask().efield(F_KEY1 + _maxlev - 1).browse()->cursor(); }
|
||||||
|
virtual bool user_create();
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TFsc_app::filtered() const
|
bool TFsc_app::filtered() const
|
||||||
@ -120,14 +124,29 @@ bool TFsc_app::protected_record(TRectype& record)
|
|||||||
|
|
||||||
bool TFsc_app::user_create()
|
bool TFsc_app::user_create()
|
||||||
{
|
{
|
||||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
|
const bool ok = TAnal_app::user_create();
|
||||||
if (mci.levels() <= 0)
|
|
||||||
return error_box(TR("Le fasi non sono state configurate"));
|
|
||||||
|
|
||||||
//eventuali filtri per utente
|
if (ok)
|
||||||
_has_filter = cache().get("%AUC", user(), "S2").full();
|
{
|
||||||
|
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
|
||||||
|
|
||||||
return TAnal_app::user_create();
|
_maxlev = mci.levels();
|
||||||
|
if (mci.levels() <= 0)
|
||||||
|
return error_box(TR("Le fasi non sono state configurate"));
|
||||||
|
|
||||||
|
//eventuali filtri per utente
|
||||||
|
_has_filter = cache().get("%AUC", user(), "S2").full();
|
||||||
|
|
||||||
|
_msk = (TFsc_anal_msk *)get_mask(0);
|
||||||
|
set_search_field(F_KEY1 + _maxlev - 1);
|
||||||
|
|
||||||
|
TBrowse * b = mask().efield(F_KEY1 + _maxlev - 1).browse();
|
||||||
|
TString inp(b->get_input_fields());
|
||||||
|
|
||||||
|
inp.strip("@");
|
||||||
|
b->set_input_fields(inp);
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ca0700(int argc, char* argv[])
|
int ca0700(int argc, char* argv[])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user