26.07.2007, 17:25 | #1 |
Участник
|
Исполнить сформированный фильтр
help!!
На форме несколько источников данных . Связи на таблицах настроены, ссылки обновлены. Создаю фильтр по дочерней таблице , срабатывающий при смене вкладки Таба: public void tabChanged(int _FromTab, int _ToTab) { ... qbds1 = query.dataSourceTable(tablenum(PurchTable)); qbds2 = query.dataSourceTable(tablenum(PurchLine)); switch (Tab.tab()) { case 1: qbr2 = Global::findOrCreateRange_RU(qbds2,fieldnum(PurchLine,text),"!Очередь"); break; case 2: qbr2 = Global::findOrCreateRange_RU(qbds2,fieldnum(PurchLine,text),"Очередь"); break; } } при этом фильтр устанавливается (есть запись в форме фильтра), но записи в форме не фильтруются.ExecuteQuery на датасурсе напрочь сносит сформированный фильтр. нужно принудительно применить этот фильтр. Нужен совет... Спасибо. |
|
26.07.2007, 17:33 | #2 |
Программатор
|
Мне кажется нужно сделать что то типа
qbds1 = PurchTAble_ds.query(); и тд |
|
26.07.2007, 17:37 | #3 |
Участник
|
Вообще то этот код обычно в executeQuery пишут. this.query(). Дай запрос. Дай датасорс запроса, дай или создай range, ну и т.д. А на tabchange вызывать через refresh.
|
|
26.07.2007, 17:46 | #4 |
Участник
|
Можно запрос и самому сформировать. До сих пор я так и делал. Потом говорил ExecuteQuery() и аллилуйя - все работало. Много писанины , да и зачем дублировать то , что можно сформировать мышкой. Я уверен - есть волшебный метод ! : )
|
|
26.07.2007, 17:53 | #5 |
Участник
|
Надо не ExecuteQuery вызывать, а refresh. Тем более что refresh как раз вызывает в том числе ExecuteQuery. ExecuteQuery только фильтр формирует.
|
|
26.07.2007, 18:01 | #6 |
Участник
|
нет , рефреш не помог горю.
|
|
26.07.2007, 18:07 | #7 |
Участник
|
Sada , направление мыслей у меня такое-же. А вот что делать дальше ?
|
|
26.07.2007, 18:10 | #8 |
Программатор
|
а потом играетесь как хотите с qbds1 и после purchTable_ds.query(qbds1); вызовите executeQuery всем назло
|
|
26.07.2007, 18:13 | #9 |
Участник
|
query = PurchLine_ds.query();
PurchLine_ds.executeQuery(); Это сбрасывает фильтр,- задача не решена |
|
26.07.2007, 18:15 | #10 |
Программатор
|
читайте внимательней, что вы имеете ввиду под фильтром? Кстати мы Вам не решаем задачу, мы помогаем найти Вам решение.
Последний раз редактировалось Sada; 26.07.2007 в 18:18. |
|
26.07.2007, 18:18 | #11 |
Участник
|
Цитата:
2) Не может этого быть. Или вы что то там очень интересное делаете. Случайно в ExecuteQuery нет создания new Query. Или что-то с последовательностью методов не то. Поиграйтесь с методом reserch(). А вы правильно refresh вызвали таблица_ds.refresh(). Бывает полезно в конец ExecuteQuery. info(this.query().datasourseNo(1).toString()); Если он у вас первый. Ну или место datasourseNo datasourseName, datasourseTable. Ну там разберётесь. Получите точно какой фильтр у вас есть. Без гадания на кофейной гуще. Последний раз редактировалось miklenew; 26.07.2007 в 18:25. |
|
|
За это сообщение автора поблагодарили: radya (1). |
26.07.2007, 18:23 | #12 |
Участник
|
Да , может быть я не поллностью раскрыл условия: qbds1 это экземпляр QueryBuildDataSource , Нельзя сопоставить qbds1 и query - это разные типы. Ваш вариант выдает ошибку несоответствия типов.
Под фильтром я понимаю то, что отображается при нажатии "воронки" |
|
26.07.2007, 18:28 | #13 |
Программатор
|
Всё правильно ругается. получите Query и тада с ним играйтесь как хотите. Зачем вам именно QueryBuildDataSource? query.dataSourceTable(tableNUm(PurchTable)).addRange().Value(); и поехали... А потом этот кверик обратно в PurchTable_ds передайте и екзекут квери()
Последний раз редактировалось Sada; 26.07.2007 в 18:30. |
|
26.07.2007, 19:08 | #14 |
Участник
|
Всем спасибо. Miklenew - особенно за вывод запроса в инфолог.
Задача решена PurchLine_ds.query(query); PurchLine_ds.ExecuteQuery(); |
|
26.07.2007, 20:47 | #15 |
Программатор
|
Собсна про ето я и писАл. Учим предназначение зелёных квадратиков ...
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Как сделать фильтр по группе пользователей? | 12 | |||
ERP-BLOG: Axapta, фильтр по сетке | 26 | |||
Иногда не работает фильтр | 0 | |||
Программируемый фильтр по Grid | 6 | |||
фильтр по связанной таблице | 13 |
|