AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.07.2007, 17:25   #1  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
Исполнить сформированный фильтр
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  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Мне кажется нужно сделать что то типа
qbds1 = PurchTAble_ds.query();

и тд
Старый 26.07.2007, 17:37   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вообще то этот код обычно в executeQuery пишут. this.query(). Дай запрос. Дай датасорс запроса, дай или создай range, ну и т.д. А на tabchange вызывать через refresh.
Старый 26.07.2007, 17:46   #4  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
Можно запрос и самому сформировать. До сих пор я так и делал. Потом говорил ExecuteQuery() и аллилуйя - все работало. Много писанины , да и зачем дублировать то , что можно сформировать мышкой. Я уверен - есть волшебный метод ! : )
Старый 26.07.2007, 17:53   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Надо не ExecuteQuery вызывать, а refresh. Тем более что refresh как раз вызывает в том числе ExecuteQuery. ExecuteQuery только фильтр формирует.
Старый 26.07.2007, 18:01   #6  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
нет , рефреш не помог горю.
Старый 26.07.2007, 18:07   #7  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
Sada , направление мыслей у меня такое-же. А вот что делать дальше ?
Старый 26.07.2007, 18:10   #8  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
а потом играетесь как хотите с qbds1 и после purchTable_ds.query(qbds1); вызовите executeQuery всем назло
Старый 26.07.2007, 18:13   #9  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
query = PurchLine_ds.query();
PurchLine_ds.executeQuery();
Это сбрасывает фильтр,- задача не решена
Старый 26.07.2007, 18:15   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
читайте внимательней, что вы имеете ввиду под фильтром? Кстати мы Вам не решаем задачу, мы помогаем найти Вам решение.

Последний раз редактировалось Sada; 26.07.2007 в 18:18.
Старый 26.07.2007, 18:18   #11  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от radya Посмотреть сообщение
help!!
1) при этом фильтр устанавливается (есть запись в форме фильтра), но записи в форме не фильтруются.
2) ExecuteQuery на датасурсе напрочь сносит сформированный фильтр. нужно принудительно применить этот фильтр.
1) если у вас 1 получился, то совет sada вам не нужен, т.к. query вы уже получили. Иначе бы у вас фильтр не получился.
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  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
Да , может быть я не поллностью раскрыл условия: qbds1 это экземпляр QueryBuildDataSource , Нельзя сопоставить qbds1 и query - это разные типы. Ваш вариант выдает ошибку несоответствия типов.
Под фильтром я понимаю то, что отображается при нажатии "воронки"
Старый 26.07.2007, 18:28   #13  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Всё правильно ругается. получите Query и тада с ним играйтесь как хотите. Зачем вам именно QueryBuildDataSource? query.dataSourceTable(tableNUm(PurchTable)).addRange().Value(); и поехали... А потом этот кверик обратно в PurchTable_ds передайте и екзекут квери()

Последний раз редактировалось Sada; 26.07.2007 в 18:30.
Старый 26.07.2007, 19:08   #14  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
Всем спасибо. Miklenew - особенно за вывод запроса в инфолог.
Задача решена
PurchLine_ds.query(query);
PurchLine_ds.ExecuteQuery();
Старый 26.07.2007, 20:47   #15  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Собсна про ето я и писАл. Учим предназначение зелёных квадратиков ...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сделать фильтр по группе пользователей? Zabr DAX: Программирование 12 08.04.2009 11:40
ERP-BLOG: Axapta, фильтр по сетке Blog bot DAX Blogs 26 05.02.2009 15:56
Иногда не работает фильтр chel DAX: Функционал 0 09.10.2004 19:08
Программируемый фильтр по Grid ArturK DAX: Программирование 6 01.03.2004 09:23
фильтр по связанной таблице mick_777 DAX: Программирование 13 21.08.2002 16:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.