Есть небольшой самописный интерфейс, в котором реализована возможность устанавливать фильтр. Если фильтр не установлен, то все работает отлично. Если же установить фильтр, то при навигации (колесиком, например) вверх и вниз происходит замещение строк. В нормальный вид все приходит только если нажать на кнопку "обновить". Причем данная проблема возникает в случае если результаты отбора не помещаются на один экран. Что нужно сделать, чтобы отображалось все корректно?
Вот часть интерфейса:
Код: Выделить всё
interface bdrFaktRules 'Настройка фактического исполнения БДР'; show at (,,,30);
create view mainView
var
iGetKau : GetKau;
cplsch : comp;
sch, ss : string;
lastkau, lastbud, laststat, lastelem : comp;
bud_form : string;
comp_var, comp_var_filt : comp;
kodkau : word;
title_form : string;
as select * from BUDRULES, SPKAU STATZATR, SPKAU ELZATR, SPKAU BUHCODE, SPKAU KODBUD
where ((
bud_form == BUDRULES.BUDFORM
and BUDRULES.STZATR == STATZATR.NREC
and BUDRULES.ELEMZATR == ELZATR.NREC
and BUDRULES.CKAU == BUHCODE.NREC
and BUDRULES.KODBUDJET == KODBUD.NREC
))
condition byStBud = BUDRULES.KODBUDJET = comp_var_filt;
browse brSp table BUDRULES;
fields
BUDRULES.SCHET 'Счет' : [10], pickButton;
BUDRULES.SUBSCH 'Субсчет' : [10], pickButton;
STATZATR.CODE 'Статья затрат' : [15], pickButton;
ELZATR.CODE 'Элемент затрат' : [15], pickButton;
BUHCODE.CODE 'Код БУ' : [15], pickButton;
KODBUD.CODE 'Код бюджета' : [15], pickButton;
BUDRULES.FILTSTAT 'Фильтр по статьям затрат' : [15], noprotect;
BUDRULES.FILTELEM 'Фильтр по элементам затрат' : [15], noprotect;
BUDRULES.FILTKAU 'Фильтр по КАУ' : [15], noprotect;
end; // browse
HandleEvent
cmHotKeys:
{
case GetCurrentFormat of
brSp:
{
PutHotCommand(RunMenu('MenuFaktBDR'));
}
end;
}
cmInit:
{
bud_form := '6.3.1';
cplsch := coGetTune('FIN.USER.CPLANSSCH');
kodkau := '10078'
}
cmValue1:
{
iGetKau.GetCodeKau(cgiPick, kodkau, comp_var_filt);
if comp_var_filt = 0 break;
lastbud := comp_var_filt;
if not ConditionActive(tcbyStBud)
PushCondition(tcbyStBud);
reReadRecord;
}
cmValue2:
{
if ConditionActive(tcbyStBud)
PopCondition(tcbyStBud);
reReadRecord;
}
end;
end.
MenuFaktBDR menu
{
-'Установить фильтр по статье бюджета',cmValue1,'Установить фильтр по статье бюджета';
-'Снять фильтр',cmValue2,'Снять фильтр';
}