Correzione errori Mi6018, MI6019 (MI6020 gia' correttoda Guy in libreria).

Risistemata la maschera di selezione: ora il pulsante di selezione e'
gestito come handler.


git-svn-id: svn://10.65.10.50/trunk@3187 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-07-15 07:43:08 +00:00
parent 58f9c5fef6
commit fef71caeea
3 changed files with 31 additions and 22 deletions

View File

@ -616,6 +616,23 @@ bool TLiquidazione_app::lst_tm_handler(TMask_field& f, KEY key)
return TRUE; return TRUE;
} }
bool TLiquidazione_app::select_button(TMask_field& f, KEY key)
{
if (key == K_SPACE)
{
app()._ditte->enable_check();
// seleziona e aggiungi alle gia' selezionate
if (app()._ditte->run() == K_ENTER)
{
const long itms = app()._ditte->items();
for (long j = 0l; j < itms; j++)
app()._selected.set(j, app()._ditte->checked(j));
app().set_choice_limits(f.mask());
}
}
return TRUE;
}
void TLiquidazione_app::reset_choices(TMask& m) void TLiquidazione_app::reset_choices(TMask& m)
{ {
_selected.reset(); _selected.reset();
@ -663,8 +680,14 @@ void TLiquidazione_app::build_ditte_sheet(wht what)
d->insert(" |", 0); d->insert(" |", 0);
const long pos = _ditte->add(d); const long pos = _ditte->add(d);
if (unselectable) _ditte->disable_row(pos); if (unselectable)
else if (_selected[i]) _ditte->check(pos); _ditte->disable_row(pos);
else
{
_ditte->enable_row(pos);
if (_selected[i])
_ditte->check(pos);
}
} }
} }
@ -681,7 +704,7 @@ bool TLiquidazione_app::set_liquidazione()
m.set_handler(CG43_FLD_ANNO, ch_year_handler); m.set_handler(CG43_FLD_ANNO, ch_year_handler);
m.set_handler(CG43_LST_MESE, lst_tm_handler); m.set_handler(CG43_LST_MESE, lst_tm_handler);
m.set_handler(CG43_LST_TRIM, lst_tm_handler); m.set_handler(CG43_LST_TRIM, lst_tm_handler);
m.set_handler(CG43_BUT_SEL, select_button);
m.field(CG43_FLD_SELECTED).set(format("%ld",_selected.ones())); m.field(CG43_FLD_SELECTED).set(format("%ld",_selected.ones()));
m.field(CG43_FLD_ANNO).set(_year); m.field(CG43_FLD_ANNO).set(_year);
@ -716,23 +739,8 @@ bool TLiquidazione_app::set_liquidazione()
// ------------------------------------------------ // ------------------------------------------------
//m.first_focus(k); //m.first_focus(k);
switch(k) if (k == CG43_BUT_ANN)
{
case DLG_SELECT:
_ditte->enable_check();
// seleziona e aggiungi alle gia' selezionate
if (_ditte->run() == K_ENTER)
{
for (long j = 0l; j < _ditte->items(); j++)
_selected.set(j, _ditte->checked(j));
set_choice_limits(m);
}
break;
case CG43_BUT_ANN:
reset_choices(m); reset_choices(m);
break;
}
} }
while (k != K_ENTER && k != K_ESC); while (k != K_ENTER && k != K_ESC);

View File

@ -335,6 +335,7 @@ protected:
static bool fr_ditt_handler(TMask_field& f, KEY key); static bool fr_ditt_handler(TMask_field& f, KEY key);
static bool what_freq_handler(TMask_field& f, KEY key); static bool what_freq_handler(TMask_field& f, KEY key);
static bool lst_tm_handler(TMask_field& f, KEY key); static bool lst_tm_handler(TMask_field& f, KEY key);
static bool select_button(TMask_field& f, KEY key);
static TLiquidazione_app& app() { return (TLiquidazione_app&)main_app(); } static TLiquidazione_app& app() { return (TLiquidazione_app&)main_app(); }

View File

@ -36,11 +36,11 @@ BEGIN
FLAGS "DR" FLAGS "DR"
END END
BUTTON DLG_SELECT 10 2 BUTTON CG43_BUT_SEL 10 2
BEGIN BEGIN
PROMPT 48 2 "~Selezione" PROMPT 48 2 "~Selezione"
PICTURE BMP_SELECT
HELP "Selezione ditte di cui fare la liquidazione" HELP "Selezione ditte di cui fare la liquidazione"
MESSAGE EXIT, DLG_SELECT
END END
BUTTON CG43_BUT_ANN 10 BUTTON CG43_BUT_ANN 10