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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2005, 11:17   #1  
tischenko is offline
tischenko
Участник
 
35 / 10 (1) +
Регистрация: 12.01.2005
Адрес: Киев
? Вопрос по Query
Подскажите пожалуйста как на языке Query реализовать такую вещь: есть некая форма в которой в датасоурсах LedgerTrans, который собственно и нужно отфильтровать таким образом, что бы в нем отображались только те проводки у которых Voucher =(любому) VendTrans.Voucher. Вобщем нужно чтобы в LedgerTrans отобразились только те записи, документ ГК у которых присутствует в проводках по поставщиках.
Старый 15.04.2005, 11:29   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
PHP код:
Query query;
QueryBuildDataSource qbds;
;
query = new Query();
qbds query.addDataSource(tableNum(LedgerTrans));
qbds.addDataSource(tableNum(VendTrans));
qbds.addLink(fieldNum(LedgerTransVoucher), fieldNum(VendTransVoucher));
qbds.joinMode(JoinMode::ExistsJoin); 
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.04.2005, 11:42   #3  
tischenko is offline
tischenko
Участник
 
35 / 10 (1) +
Регистрация: 12.01.2005
Адрес: Киев
Спасибо. Это получилось.

А как сделать если есть

query1 = new Query();
qbds1 = query1.addDataSource(tableNum(LedgerTrans));

query2 = new Query();
qbds2 = query2.addDataSource(tableNum(VendTrans));
qbds2.addRange(чегото там);

И как отфильтровать или сделать линк Query1 только по тем Voucher-ам которые есть в Query2?
Старый 15.04.2005, 11:54   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Это два разных запроса получится.

А вам нужен один.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.04.2005, 12:26   #5  
tischenko is offline
tischenko
Участник
 
35 / 10 (1) +
Регистрация: 12.01.2005
Адрес: Киев
QueryRun LedgerTransQueryRun;
QueryRun VendTransQueryRun;

Query LedgerTransQuery;
Query VendTransQuery;

QueryBuildDataSource LedgerTransQBDS;
QueryBuildDataSource VendTransQBDS;

LedgerTrans ledgerTrans;
VendTrans vendTrans;
;

VendTransQuery = new Query();
VendTransQBDS = VendTransQuery.addDataSource(TableNum(VendTrans));
VendTransQBDS.addRange(FieldNum(VendTrans,AccountNum)).value('Ivanov');
VendTransQueryRun = new QueryRun(VendTransQuery);

LedgerTransQuery = new Query();
LedgerTransQBDS = LedgerTransQuery.addDataSource(TableNum(LedgerTrans));
ledgerTransQBDS.addRange(fieldnum(LedgerTrans,Crediting)).value(SysQuery::value(NoYes::No));

LedgerTransQueryRun = new QueryRun(LedgerTransQuery);
while (LedgerTransQueryRun.next())
{
ledgerTrans = LedgerTransQueryRun.get(TableNum(LedgerTrans));
info(ledgerTrans.AccountNum);
//
}

И вобщем нужно отфильтровать LedgerTransQuery согласно отфильтрованному VendTransQuery. Как можно такое реализовать?
Старый 15.04.2005, 12:55   #6  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,252 / 980 (37) +++++++
Регистрация: 03.04.2002
tischenko, Maxim Gorbunov вам уже все правильно сказал. Еще раз вчитайтесь в свой код, попытайтесь понять зачем используется тот или иной класс
__________________
Isn't it nice when things just work?
Старый 15.04.2005, 13:09   #7  
tischenko is offline
tischenko
Участник
 
35 / 10 (1) +
Регистрация: 12.01.2005
Адрес: Киев
Сам запутался. Но разобрался.
Спасибо за ответы.
Вот что мне нужно было:

PHP код:
QueryRun LedgerTransQueryRun;
Query LedgerTransQuery;
QueryBuildDataSource LedgerTransQBDS;
QueryBuildDataSource VendTransQBDS;
LedgerTrans ledgerTrans;
;
LedgerTransQuery = new Query();
VendTransQBDS LedgerTransQuery.addDataSource(TableNum(VendTrans));
VendTransQBDS.addRange(FieldNum(VendTrans,AccountNum)).value('Ivanov LTD');
LedgerTransQBDS VendTransQBDS.addDataSource(tableNum(LedgerTrans));
LedgerTransQBDS.addLink(fieldNum(VendTransVoucher),fieldNum(LedgerTransVoucher));
ledgerTransQBDS.addRange(fieldnum(LedgerTrans,Crediting)).value(SysQuery::value(NoYes::No));
LedgerTransQueryRun = new QueryRun(LedgerTransQuery);
while (
LedgerTransQueryRun.next())
{
    
ledgerTrans LedgerTransQueryRun.get(TableNum(LedgerTrans));
    
info(ledgerTrans.AccountNum);

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Очередной вопрос про Query rkrivov DAX: Программирование 45 16.10.2013 19:16
Вопрос по Query с агрегатной функцией Jarad DAX: Программирование 11 31.10.2006 21:10
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05
Вопрос по запросу (query) Александр_1975 DAX: Программирование 2 23.01.2004 17:35
Вопрос знатокам QBE и Query в AXAPTA Maxim Gorbunov DAX: Программирование 6 27.12.2002 13:19

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

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

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