23.03.2011, 09:03 | #1 |
Участник
|
Фильтр по сетке в lookup
Добрый день. Подскажите пожалуйста как можно решить следующую проблему. Изначально задача заключалась в сохранении фильтра, введенного на lookup форме. Эту задачу я решила. Фильтр действительно сохраняется и отрабатывается при открытии lookup формы, но шапочка с наложенными фильтрами не отображается (обычно это можно сделать по кнопке Фильтр по сетке).
|
|
23.03.2011, 09:42 | #2 |
Модератор
|
в Ax2009
Сервис --> Параметры --> вкладка Разное --> поле "Фильтр по сетке включен по умолчанию"
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
23.03.2011, 10:16 | #3 |
Участник
|
Эту настройку я уже пробовала. Но, во-первых, отображается шапка фильтрации на всех формах, а во-вторых, в lookup-форме шапка отображается, но мои фильтры, которые кстати отрабатывают правильно, в ней не отображаются.
|
|
23.03.2011, 10:33 | #4 |
Участник
|
Цитата:
X++: public void init() { super(); #sysTaskRecorderMacro this.task(#sysTaskRecorderTaskFilterByGrid); } |
|
|
За это сообщение автора поблагодарили: epetrov (1), player (1). |
23.03.2011, 10:36 | #5 |
Участник
|
Я так понимаю, что что-то нужно добавить в метод unpack(). Приведу его код. Может быть тогда появятся какие-нибудь предложения
X++: public boolean unpack(container packedClass) { Integer version = conpeek(packedClass,1); PackedQueryRun packedQuery; switch (version) { case #CurrentVersion: [version,packedQuery] = packedClass; if (queryIsPackedOk(packedQuery)) { query = new Query(packedQuery); } break; default : return false; } InventTable_ds.query(query); InventTable_ds.refresh(); return true; } X++: public void init() { super(); xSysLastValue::getLast(this); element.selectMode(InventTable_ItemId); } |
|
23.03.2011, 14:36 | #6 |
Участник
|
S.Kuskov, большое вам спасибо. Ваш код очень помог. Кроме того, нашла на форуме сообщение, в котором обсуждалась проблема с кнопкой Удалить фильтр. Так же как и в том случае мои фильтры воспринимались как программные, а нужно чтобы они воспринимались как пользовательские. Ниже приведу методы, после редактирования которых, все заработало. Методы формы:
X++: public boolean unpack(container packedClass) { Integer version = conpeek(packedClass,1); PackedQueryRun packedQuery; switch (version) { case #CurrentVersion: [version,packedQuery] = packedClass; if (queryIsPackedOk(packedQuery)) { query = new Query(packedQuery); } break; default : return false; } return true; } X++: public void init() { ; xSysLastValue::getLast(this); super(); element.selectMode(InventTable_ItemId); } X++: public void run() { ; super(); inventTable_ds.research(); #sysTaskRecorderMacro this.task(#sysTaskRecorderTaskFilterByGrid); } X++: public void executeQuery() { if(this.queryRun()) { super(); } else { super(); this.queryRun().query().dataSourceTable(tableNum(InventTable)).clearRanges(); this.queryRun().query(query); } } |
|
|
За это сообщение автора поблагодарили: player (1). |
|
Похожие темы | ||||
Тема | Ответов | |||
Фильтр по сетке в lookup форме. | 6 | |||
ERP-BLOG: Axapta, фильтр по сетке | 26 | |||
Lookup form, OuterJoin и фильтр | 45 | |||
Фильтр в lookup | 7 | |||
lookup фильтр в произвольной lookup форме | 4 |
|