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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.08.2011, 17:14   #1  
shogel is offline
shogel
Участник
MCBMSS
Соотечественники
 
132 / 169 (6) ++++++
Регистрация: 21.02.2007
Адрес: Finland
Чудеса DAX 2012
День был тяжелый, я наверное чего-то не понимаю. Встретил вот такое чудо в форме projUnpostedTransactionsListPage, метод ProcessButton.clicked();
X++:
            select prodJournalTable
                where prodJournalBOM.ProjTransId == projUnpostedTransView.TransId
                &&    prodJournalTable.JournalId == prodJournalRouteProj.JournalId;
Здесь projUnpostedTransView - это датасорс, а остальное - локальные табличные буферы. Внимание вопрос: как это может работать?
__________________
The 50-50-90 rule: Any time you have a 50-50 chance of getting something right, there’s a 90% probability you’ll get it wrong.
Старый 16.08.2011, 17:38   #2  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Прекрасно будет работать.
В этом контексте projUnpostedTransView.TransId вернет литерал (константу), которая и будет передана в запрос.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 16.08.2011, 17:51   #3  
shogel is offline
shogel
Участник
MCBMSS
Соотечественники
 
132 / 169 (6) ++++++
Регистрация: 21.02.2007
Адрес: Finland
В запросе используются 3 табличных буфера - prodJournalTable, prodJournalBOM и prodJournalRouteProj (на момент выполнения запроса они все пустые).
Как будут сформированы связи между ними - автоматически по табличным relation?? По условиям в разделе where - полный запрос не построить.

p.s.
prodJournalTable.getSQLStatement() вернул пустую строку
__________________
The 50-50-90 rule: Any time you have a 50-50 chance of getting something right, there’s a 90% probability you’ll get it wrong.

Последний раз редактировалось shogel; 16.08.2011 в 18:25.
Старый 16.08.2011, 18:32   #4  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Я тут вижу как минимум одну связку: prodJournalTable.JournalId == prodJournalRouteProj.JournalId;
Видимо, есть еще какой-то контекст, но из приводимых выдержек пока непонятно в чем дело.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 16.08.2011, 18:56   #5  
shogel is offline
shogel
Участник
MCBMSS
Соотечественники
 
132 / 169 (6) ++++++
Регистрация: 21.02.2007
Адрес: Finland
В том то и чудо, что это не выдержки - это полный текст запроса. Вот так выглядит сам метод :
X++:
void clicked()
{
    Args                            menuArgs = new Args();
    MenuFunction                    menuFunction;
    ProdJournalRouteProj            prodJournalRouteProj;
    ProdJournalTable                prodJournalTable;
    ProdJournalBOM                  prodJournalBOM;

    menuArgs.caller(element);

    switch (projUnpostedTransView.UnionAllBranchId)
    {
        case 8:     //projProdJournalBOMUnpostedView
            select prodJournalTable
                where prodJournalBOM.ProjTransId == projUnpostedTransView.TransId
                &&    prodJournalTable.JournalId == prodJournalRouteProj.JournalId;
            menuArgs.record(prodJournalTable);
            menuFunction = new MenuFunction(menuitemDisplayStr(ProdJournalTableAll), MenuItemType::Display);
            break;
    }

    menuFunction.run(menuArgs);
}
__________________
The 50-50-90 rule: Any time you have a 50-50 chance of getting something right, there’s a 90% probability you’ll get it wrong.
Старый 16.08.2011, 19:35   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
мне кажется будет работать как
if (prodJournalBOM.ProjTransId == projUnpostedTransView.TransId)
select prodJournalTable
where prodJournalTable.JournalId == prodJournalRouteProj.JournalId;
Особых чудет то нет
Старый 16.08.2011, 19:43   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от shogel Посмотреть сообщение
Как будут сформированы связи между ними - автоматически по табличным relation??
Ничего подобного происходить не должно. Я думаю это банальная опечатка. Компилироваться такой код будет, выполняться тоже, но вот только результат будет отличен от задумываемого

Цитата:
Сообщение от trud Посмотреть сообщение
мне кажется будет работать как
if (prodJournalBOM.ProjTransId == projUnpostedTransView.TransId)
select prodJournalTable
where prodJournalTable.JournalId == prodJournalRouteProj.JournalId;
Особых чудет то нет
Да, именно так. Только абсурдность ситуации в том что prodJournalBOM не инициализирован
Старый 16.08.2011, 20:11   #8  
shogel is offline
shogel
Участник
MCBMSS
Соотечественники
 
132 / 169 (6) ++++++
Регистрация: 21.02.2007
Адрес: Finland
И я боюсь, что это не чудо. Сейчас насчитал еще 4 таких запроса. Вот такой вот "Zero Bug Release".
__________________
The 50-50-90 rule: Any time you have a 50-50 chance of getting something right, there’s a 90% probability you’ll get it wrong.
Старый 16.08.2011, 22:23   #9  
shlyopin is offline
shlyopin
MCTS
MCBMSS
 
21 / 14 (1) ++
Регистрация: 05.09.2005
Адрес: Россия
Проверил для релиза 6.0.947.61. ситуация такая же.
P.S.: Думаю ситуация будет похожа на пословицу: Чем дальше в лес, тем толще партизаны. Ждём SP10, пока очень сыро.
За это сообщение автора поблагодарили: shogel (1).
Теги
ax2012, bug, select, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dax-lessons: Valid Time State Tables in Dynamics AX 2012 [ValidTimeStateFieldType] Blog bot DAX Blogs 0 10.08.2011 16:11
Dynamics AXBR: DAX 2012 – Relations agora são definidas apenas nas tabelas Blog bot DAX Blogs 0 03.08.2011 09:11
dax-lessons: Free Text Invoices allows to add Qty and unit price in Dynamics AX 2012 Blog bot DAX Blogs 0 25.07.2011 16:11
dax-lessons: Deactivating configuration key will not affect the table any more [Dynamica AX 2012] Blog bot DAX Blogs 1 06.07.2011 08:17
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35

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

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

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