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;
|
||||
int _maxlev;
|
||||
bool _riclassificato;
|
||||
TPiano_conti_anal_msk * _msk;
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "ci|cm";} //funziona anche con autorizzazione CM
|
||||
@ -119,6 +120,9 @@ protected:
|
||||
virtual bool create();
|
||||
virtual bool user_create();
|
||||
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)
|
||||
@ -243,7 +247,7 @@ void TAnalisi_app::init_indbil(TMask& mask)
|
||||
int level = 0;
|
||||
for (level = _maxlev; level > 0; level--)
|
||||
{
|
||||
if (mask.field(F_KEY1+level).shown())
|
||||
if (mask.field(F_KEY1 + level - 1).shown())
|
||||
break;
|
||||
}
|
||||
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)
|
||||
{
|
||||
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());
|
||||
|
||||
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)
|
||||
{
|
||||
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());
|
||||
|
||||
TAnal_app::init_insert_mode(mask);
|
||||
@ -321,16 +325,21 @@ bool TAnalisi_app::user_create()
|
||||
if (ok)
|
||||
{
|
||||
_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);
|
||||
|
||||
_msk = (TPiano_conti_anal_msk *)get_mask(0);
|
||||
_maxlev = mci.levels();
|
||||
set_search_field(F_KEY1 + _maxlev - 1);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
if (_maxlev > 1)
|
||||
{
|
||||
const short id = m->get_field_id(i, 1);
|
||||
if (id <= 0 || m->id2pos(id) < 0)
|
||||
break;
|
||||
_maxlev = i;
|
||||
TBrowse * b = mask().efield(F_KEY1 + _maxlev - 1).browse();
|
||||
TString inp(b->get_input_fields());
|
||||
|
||||
b->set_filter("");
|
||||
inp.strip("@");
|
||||
b->set_input_fields(inp);
|
||||
}
|
||||
set_search_field(F_DES1 + _maxlev - 1);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ BEGIN
|
||||
ITEM "2|2. Passivita'"
|
||||
ITEM "3|3. Costi"
|
||||
ITEM "4|4. Ricavi"
|
||||
// ITEM "5|5. Conti d'ordine"
|
||||
ITEM "5|5. Conti d'ordine"
|
||||
FIELD INDBIL
|
||||
END
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "calib01.h"
|
||||
#include "ca0500a.h"
|
||||
#include "cdc.h"
|
||||
#include "calibmsk.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//MASCHERA
|
||||
@ -55,6 +56,7 @@ class TCdC_app : public TAnal_app
|
||||
{
|
||||
int _maxlev;
|
||||
bool _has_filter;
|
||||
TCdC_anal_msk * _msk;
|
||||
|
||||
protected:
|
||||
virtual bool filtered() const;
|
||||
@ -63,7 +65,9 @@ protected:
|
||||
virtual void init_insert_mode(TMask& mask);
|
||||
virtual bool protected_record(TRectype& record);
|
||||
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
|
||||
@ -108,17 +112,33 @@ void TCdC_app::init_insert_mode(TMask& mask)
|
||||
|
||||
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 (_maxlev <= 0)
|
||||
return error_box(TR("I centri di costo non sono stati configurati"));
|
||||
if (ok)
|
||||
{
|
||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_CDC);
|
||||
|
||||
//eventuali filtri per utente
|
||||
_has_filter = cache().get("%AUC", user(), "S1").full();
|
||||
// set_search_field(F_CDCPDA1 + _maxlev - 1);
|
||||
_maxlev = mci.levels();
|
||||
if (_maxlev <= 0)
|
||||
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[])
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include "ca0600a.h"
|
||||
#include "commesse.h"
|
||||
#include "cfcms.h"
|
||||
#include "calibmsk.h"
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//MASCHERA
|
||||
@ -56,6 +58,7 @@ class TCms_app : public TAnal_app
|
||||
{
|
||||
int _maxlev;
|
||||
bool _has_filter;
|
||||
TCms_anal_msk * _msk;
|
||||
|
||||
protected:
|
||||
void fin2row(const TMask& m);
|
||||
@ -76,7 +79,9 @@ protected:
|
||||
virtual void init_insert_mode(TMask& mask);
|
||||
virtual bool protected_record(TRectype& record);
|
||||
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:
|
||||
|
||||
@ -398,16 +403,32 @@ void TCms_app::init_insert_mode(TMask& mask)
|
||||
|
||||
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 (_maxlev <= 0)
|
||||
return error_box(TR("Le commesse non sono state configurate"));
|
||||
if (ok)
|
||||
{
|
||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_COMMESSE);
|
||||
|
||||
//eventuali filtri per utente
|
||||
_has_filter = cache().get("%AUC", user(), "S0").full();
|
||||
_maxlev = mci.levels();
|
||||
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[])
|
||||
|
@ -67,6 +67,8 @@ TFsc_anal_msk::TFsc_anal_msk()
|
||||
class TFsc_app : public TAnal_app
|
||||
{
|
||||
bool _has_filter;
|
||||
int _maxlev;
|
||||
TFsc_anal_msk * _msk;
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
||||
@ -74,7 +76,9 @@ protected:
|
||||
virtual bool filtered() const;
|
||||
virtual bool protected_record(TRectype& record);
|
||||
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
|
||||
@ -120,14 +124,29 @@ bool TFsc_app::protected_record(TRectype& record)
|
||||
|
||||
bool TFsc_app::user_create()
|
||||
{
|
||||
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
|
||||
if (mci.levels() <= 0)
|
||||
return error_box(TR("Le fasi non sono state configurate"));
|
||||
const bool ok = TAnal_app::user_create();
|
||||
|
||||
//eventuali filtri per utente
|
||||
_has_filter = cache().get("%AUC", user(), "S2").full();
|
||||
if (ok)
|
||||
{
|
||||
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[])
|
||||
|
Loading…
x
Reference in New Issue
Block a user