Показать сообщение отдельно
Старый 17.09.2013, 14:37   #1  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
Пользовательские фильтры на форме и Range
Здравствуйте, коллеги.

Столкнулся с проблемой. Имеется форма, у которой в методе init датасорса по некоторому полю накладывается ограничение, что-то типа

X++:
public void init()
{
    QueryBuildRange qr;
;
    super();
    qr = EmplTable_DS.query().dataSourceNo(1).addRange(fieldnum(EmplTable, EmplId));
    qr.status(RangeStatus::Locked);
    qr.value('12345');
}
Проблема заключается в том, что пользователь, несмотря на то, что range заблокирован (в форме расширенного фильтра редактирование ограничения недоступно), всё равно может изменить это ограничение через фильтр по полю / сетке / выделению. Не совсем понятно, баг это или "фича". В DAX 2009 статус range проверяется и фильтр наложить невозможно. Может быть выходил какой-то хотфикс на четвёрку по этому поводу? Или же есть способ более корректно накладывать range из кода, чтобы пользовательские фильтры не перетирали их значения? Насколько я понимаю, если по одному полю есть несколько range, при фильтрации по полю выбирается первый попавшийся а не создаётся новый.

Версия системы 4.0 SP2.

Последний раз редактировалось McArrow; 17.09.2013 в 14:43.