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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.01.2007, 17:55   #1  
Shakr
Гость
 
n/a
Pack() "убил" линк в запросе
Развитие темы про количество записей
Есть форма, на которой расположены данные из 2 таблиц. Table1, table2. Table2 связана с table1 через JoinDatasource. Захотелось посчитать количество записей в table2, для этого перекрыл ExecuteQuery()

X++:
    QueryRun    qr;
    ;
    super();

    qr  =   table2_qr;
    print SysQuery::countTotal(qr);
получается следующее: до того, как вызывается countTotal, QueryBuildDataSource содержит запрос со связью на table1.
Как только происходит
X++:
    container c = sysQuery::countPrim(_queryRun.pack(false));
в SysQuery::countTotal и
X++:
    countQueryRun   = new QueryRun(_queryPack);
в SysQuery::countPrim

Связь table2 с table1 пропадает.

В чём я неправ, когда пытаюсь так посчитаться?
Старый 15.01.2007, 19:14   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
На всякий случай: А какой тип связи между этими двумя источниками? LinkType свойство источника
Старый 15.01.2007, 22:46   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вот код - работает.

X++:
    Query q = new Query();
    QueryBuildDataSource qbds = q.addDataSource(tableNum(PurchTable));
    QueryBuildDataSource qbds2 = qbds.addDataSource(tableNum(PurchLine));
    QueryRun    qr;
    ;
    qbds2.relations(true);
    qr = new QueryRun(q);
    info(strFmt("%1", SysQuery::countLoops(qr)));
Судя по приведенной вами информации - связь между вашими таблицами - Active или Delayed

А что это значит?

Что запроса у вас на самом деле 2 а не один. А соответственно все верно отработало - просто неверно считаете.
Старый 16.01.2007, 11:37   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shakr Посмотреть сообщение
Захотелось посчитать количество записей в table2
См. также http://forum.mazzy.ru/index.php?showtopic=300
__________________
полезное на axForum, github, vk, coub.
Старый 16.01.2007, 15:01   #5  
Shakr
Гость
 
n/a
Цитата:
Сообщение от mazzy Посмотреть сообщение
По этим ссылкам уже бегал, скачивал, проверял, спасибо. Дело не в реализации метода CountTotal.
Иван: спасибо, буду глядеть. Пока сделал реализацию некрасивую Выдрал кусок реализации CountPrim
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В запросе "слиплись в кучу измерения", как выйти из положения? Shakr DAX: Программирование 5 24.11.2006 12:48
Можно ли в инамическом запросе использовать "group by"? yooshi DAX: Программирование 26 23.09.2005 16:35
Сортировка в запросе "В Наличии" linney DAX: Программирование 16 20.01.2005 20:01
Номнклатура без запасов в запросе "В наличии" Van DAX: Функционал 2 03.03.2004 14:26
Склейка по "ИЛИ" в запросе Andrew Besedin DAX: Программирование 8 20.08.2002 05:56
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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