26.04.2005, 15:21 | #1 |
Участник
|
Фильтр
Проблема такая
1. Есть некая форма с ДС... все как положено. 2 При запуске формы задается программно единственное поле для фильтра. QueryBuildDataSource qbdsCIT; в ините ДС qbdsCIT = CustInvoiceTable_ds.query().dataSourceTable(tablenum(CustInvoiceTable)); в неком методе if (условие) qbdsCIT.clearRange(fieldnum(CustInvoiceTable, Posted)); esle qbdsCIT.addRange(fieldnum(CustInvoiceTable, Posted)).value(enum2str(NoYes::No)); 3. при работе с записями пользователь может установить свои фильтры, нажать кнопочку "Маркировать/ все ".. И получается, что фильтры им настроенные слетают. Следовательно... мне нада сохранять параметры пользовательского фильтра в executeQuery добавляю if (CustInvoiceTable_ds.queryRun()) this.query(CustInvoiceTable_ds.queryRun().query()); else this.query(CustInvoiceTable_ds.query()); при тестировании ругается на неинициализацию qbdsCIT ; переношу блок в инит , получаю несохранение параметров. как мне переопределить qbdsCIT ? при использовании пользовательских фильтров? |
|
26.04.2005, 21:23 | #2 |
Участник
|
а зачем вам этот qbdsCIT??
Обращайтесь в том методе, где if (условие) CustInvoiceTable_ds.queryRun().query().dataSourceTable(tableNum(CustInvoiceTable)).clearRange(...); else CustInvoiceTable_ds.queryRun().query().dataSourceTable(tableNum(CustInvoiceTable)).addRange(..).Value(..); a чтобы не ругалось на queryRun() еще не проинициализированный поставьте проверку типа if (CustInvoiceTable_ds.queryRun()) перед этим всем else напрямую к CustInvoiceTable_ds.query() |
|
|
Похожие темы | ||||
Тема | Ответов | |||
ERP-BLOG: Axapta, фильтр по сетке | 26 | |||
Исполнить сформированный фильтр | 14 | |||
Иногда не работает фильтр | 0 | |||
Программируемый фильтр по Grid | 6 | |||
фильтр по связанной таблице | 13 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|