2015-07-01 7 views
2

Я создал пользовательскую новую страницу списка со всеми необходимыми частями. Теперь я добавил фильтр в начало, похожий на ProjProjectsListPage, на самом деле у меня есть тот же Active/All, что и в этой форме (однако с моим собственным EDT вместо этого). Фильтр работает отлично, за исключением того, что когда я вхожу в форму, Active показывает как выбранную по умолчанию опцию, но вместо этого отображаются все записи. Когда я выбираю «Все», а затем «Активно», он фильтрует его, как я ожидаю. Мое намерение показывать только активные записи по умолчанию.Добавление пользовательских фильтров к списку страниц

Я заметил, что ProjProjectsListPage по умолчанию присваивает значение All, напротив того, что я пытаюсь сделать. Но, пытаясь понять, что делает этот пример, я смотрю на свойство Selected элемента управления и замечаю, что он установлен по умолчанию, я также ничего не вижу в классе взаимодействия, который меняет его на All. Итак, я немного запутался в том, как это работает.

Но в конечном счете, я пытаюсь сделать что-то подобное, но не совсем, я пытаюсь, чтобы Active был значением по умолчанию (которое оно есть), но также имеет запрос распознать этот фильтр при загрузке формы (не за работой). Я попытался добавить эти несколько строк в initializeQuery() до супер():

NewActiveAllEDT activeAll; 

customFilter = SysEPCustomFilter::construct(formStr(NewListPage)); 
customFilter.load(); 

customFilter.setInitialFilterControlValue(formControlStr(NewListPage, CtrlActiveAll), 0); 

activeAll = customFilter.getFilterControlValue(formControlStr(NewListPage, CtrlActiveAll)); 
SysQuery::findOrCreateRange(_query.dataSourceTable(tableNum(NewTable)), fieldNum(NewTable, Status)).value(SysQueryRangeUtil::customMethodToFilterThisStatus(activeAll)); 

... это сделано не правильно фильтровать по форме нагрузки, однако, Active/Все фильтры затем больше не функции, если Я выбираю «Все», похоже, ничего не делает.

Любые идеи?

ответ

0

Не знаю, нашли ли вы решение уже, но я столкнулся с той же проблемой. Я узнал, что в группе полей есть свойство «Сохранить фильтр» в вашей группе. Измените его на «Нет» на «Да», и ваш фильтр будет работать при открытии формы.

Wouter

0

Вы должны добавить, если условие

if (this.listPage().listPageArgs().parameters()) 
{ 
    activeAll = customFilter.getFilterControlValue(formControlStr(NewListPage, CtrlActiveAll)); 
    SysQuery::findOrCreateRange(_query.dataSourceTable(tableNum(NewTable)), fieldNum(NewTable, Status)).value(SysQueryRangeUtil::customMethodToFilterThisStatus(activeAll)); 
}