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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.09.2010, 15:42   #1  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Цитата:
Сообщение от Evgeniy2020 Посмотреть сообщение
а как эти изменения внести в код Query который указан выше (предыдущий пост) ?
никак - упустил такой момент - две одинаковые таблицы
стандартно не знаю способа, да и нет кажется
но есть один "хитрый" путь
создать вьюху PurchLineView1 с полями PurchId, PurchStatus, Blocked, RecId1, ItemId и в моем джобе сделать так
PHP код:
    qbds                qbdsPurchTable.addDataSource(tableNum(PurchLineView1));
    
qbds.joinMode(joinMode::NoExistsJoin);
    
qbds.fetchMode(QueryFetchMode::One2One);
    
qbds.relations(true);
    
qbr                 sysQuery::findOrCreateRange(qbds,fieldNum(PurchLineView1,ItemId));
    
qbr.value(queryValue(#itemIdParm));
    
qbr                 sysQuery::findOrCreateRange(qbds,fieldNum(PurchLineView1,RecId));
    
qbr.value(strFmt('((%1.%2 != "%3") || (%4.%5 == "%5"))',
                        
qbds.name(),
                        
fieldId2name(tableNum(PurchLineView1),fieldNum(PurchLineView1,PurchStatus)),
                        
queryValue(PurchStatus::Backorder),
                        
qbds.name(),
                        
fieldId2name(tableNum(PurchLineView1),fieldNum(PurchLineView1,Blocked)),
                        
queryValue(NoYes::Yes)
                     )
             )       ; 
иногда очень, очень редко пользуюсь, если "ооочень" надо
Старый 24.09.2010, 02:57   #2  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Регистрация: 23.10.2008
Цитата:
Сообщение от titov Посмотреть сообщение
никак - упустил такой момент - две одинаковые таблицы
стандартно не знаю способа, да и нет кажется
почему же, есть способ - вторым параметром указываете имя таблицы:

X++:
qbds = qbdsPurchTable.addDataSource(tableNum(PurchLine), 'PurchLine_1_1');
потом берете в условии qbds.name()
Старый 24.09.2010, 10:24   #3  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Цитата:
Сообщение от vanokh Посмотреть сообщение
почему же, есть способ - вторым параметром указываете имя таблицы:

X++:
qbds = qbdsPurchTable.addDataSource(tableNum(PurchLine), 'PurchLine_1_1');
потом берете в условии qbds.name()
qbds.name() действительно вернет то, что нужно.
Но речь о том, что возвращает info(qbdsPurchLineSum.toString());
а именно:
SELECT SUM(PurchQty) FROM PurchLine WHERE ((PurchStatus = 1)) AND ((ItemId = N'123')) EXISTS JOIN * FROM PurchTable WHERE PurchLine.PurchId = PurchTable.PurchId AND ((PurchStatus = 1)) NOTEXISTS JOIN * FROM PurchLine WHERE PurchTable.PurchId = PurchLine.PurchId AND ((ItemId = N'123')) AND ((((PurchLine_1_1.PurchStatus != 1) || (PurchLine_1_1.Blocked == 1))))
даже если применить qbds = qbdsPurchTable.addDataSource(tableNum(PurchLine), 'PurchLine_1_1');
4.0 и ах2009
Старый 24.09.2010, 14:51   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от titov Посмотреть сообщение
Но речь о том, что возвращает info(qbdsPurchLineSum.toString());
Это проблема только отображения текста запроса. Выполняться всё равно будет правильный запрос.
Старый 25.09.2010, 10:55   #5  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Это проблема только отображения текста запроса. Выполняться всё равно будет правильный запрос.
Действительно работает. Но вьюха взята не с потолка, именно она очень давно помогла выполнить "замысловатый" запрос. Не могу вспомнить ситуацию, может это было на тройке, или на форме.
Старый 23.09.2010, 16:40   #6  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
ну сам запрос получился лучше с View и как запрос select отрабатывает правильно, но через Query и QueryRun система не возврщает записи,
значит что то работает не правильно.

да, я мог бы долго мучаться с такими ограничениями, но решил поинтересоваться там где я действительно не пользовался View.

но увы задачу пока что это не решает, хотя я самостоятельно упростил
первоначальное условия выборки.

но пока что цель не достигнута, и я пока не знаю как это сделать в одном запросе, хотя теоритически может и возможно.

а вот QueryRun не возвращает значений на 4-ке почему то не работает и через вьюшку а сам запрос я проверил получается правильный.

так что задачка по прежнему не решена. я лишь пока что убедился,
что в один запрос ее как не решить.

так как даже в такой выборке запрос не вернет тех закупок где строк с такой номенклатурой нет.

так что только двумя запросами знаю как решить, но одним не получается.
Старый 23.09.2010, 17:14   #7  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Цитата:
Сообщение от Evgeniy2020 Посмотреть сообщение
ну сам запрос получился лучше с View и как запрос select отрабатывает правильно, но через Query и QueryRun система не возврщает записи,
значит что то работает не правильно.
до этого писал только "рыбу" без проверки, важно было направление
ниже "проверенный" код

X++:
    qbr.value(strFmt('((%1.%2 != %3) || (%4.%5 == %6))',
                        qbds.name(),
                        fieldId2name(tableNum(PurchLineView1),fieldNum(PurchLineView1,PurchStatus)),
                        enum2int(PurchStatus::Backorder),
                        qbds.name(),
                        fieldId2name(tableNum(PurchLineView1),fieldNum(PurchLineView1,Blocked)),
                        enum2int(NoYes::Yes)
                     )
             )       ;
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Слетают SecurityKey. Что можно сделать? chanchala DAX: Программирование 9 16.02.2009 17:14
Где можно почитать про RFID в Аксапте Hans DAX: Функционал 7 19.12.2008 10:43
Можно ли в аксапте реализовать такой SQL запрос: Sergey_1972 DAX: Программирование 14 18.03.2004 16:33
Сводное планирование в Аксапте PSA DAX: Функционал 2 02.02.2004 15:24
можно ли сделать с помощью join следующий запрос: SergAY DAX: Программирование 1 29.07.2003 11:39
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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