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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2014, 13:06   #1  
Maria_A is offline
Maria_A
Участник
 
2 / 10 (1) +
Регистрация: 16.12.2014
Angry QueryBuildRange условия при соединении двух таблиц
Здравствуйте! Помогите новичку)!
AX2009
Нужно при активном чекбоксе оставить только тех клиентов на форме, у которых в связанной таблице операции клиентов, в поле тип операции значение = "услуга".

У меня пока что только получается, что он показывает ВСЕХ клиентов, но в их операциях оставляет только услуги. Я не знаю, как правильно связать таблицы по условиям.

while select clients
outer join transact
where (transact.ClientId == clients.ClientId)
&& (transact.Type == 1)

я пишу так(помимо этого еще два фильтра здесь же организованы, но с ними все в порядке работают):

public void executeQuery()
{

QueryBuildDataSource qbd;
QueryBuildDataSource qbdT;
QueryBuildDataSource qbdT2;

QueryBuildRange qbrClient;
QueryBuildRange qbrStatus;
QueryBuildRange clientId;


;
qbd = Client_ds.query().dataSourceTable(tablenum(Clients));
qbdT = Transactions_ds.query().dataSourceTable(tablenum(Transactions));
qbdT2 = qbd.addDataSource(tablenum(Transactions));
qbdT2.addLink(fieldnum(Clients, ClientID), fieldnum(Transactions, ClientID));
qbdT2.joinMode(JoinMode::OuterJoin);

qbrClient = SysQuery::findOrCreateRange(qbd, fieldnum(Clients, ClientId));
qbrClient.value(clientFilter.valueStr());

qbrStatus = SysQuery::findOrCreateRange(qbd, fieldnum(Clients, Type));
qbrStatus.value(ShowClients.valueStr() == enum2str(MyTypeOfClients::External) ? ShowClients.valueStr() : ShowClients.valueStr());

clientId = qbdT2.addRange(fieldnum(Transactions,Type));
clientId.value("( Type == 1)");




super();
}

не знаю как сделать, чтоб заработало..
Старый 16.12.2014, 13:45   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Maria_A Посмотреть сообщение
У меня пока что только получается, что он показывает ВСЕХ клиентов, но в их операциях оставляет только услуги.
У вас на форме два связанных грида? В первом показываются клиенты, а во втором операции?
Старый 16.12.2014, 13:52   #3  
Maria_A is offline
Maria_A
Участник
 
2 / 10 (1) +
Регистрация: 16.12.2014
все верно
Старый 16.12.2014, 14:36   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
При установке галки для фильтрации первого грида вам нужно к его датасорсу присоединять ещё один датасорс с типом связи ExistsJoin (при снятии галки соответственно отсоединять). А тот датасурс, который используется для отображения операций не трогайте, он пусть всегда будет привязан типом Dalayed.
Теги
join, qbds, qbr, querybuilddatasource, querybuildrunge

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
GRID из двух таблиц и поиск нужной строчки demianimp DAX: Программирование 4 12.03.2014 13:34
Выборка сумм из двух таблиц propeller DAX: Программирование 8 24.02.2012 15:37
Связь двух таблиц AngelDominantes DAX: Программирование 7 27.01.2012 18:53
Как получить записи двух таблиц в виде одной таблицы? chi DAX: Программирование 32 16.12.2004 11:44
Невидимая связь двух таблиц в формах ArturK DAX: Программирование 11 11.03.2004 18:18
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:01.