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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.06.2015, 15:37   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Я выявил такой запрос:

NAME:
qbds
VALUE: SELECT FIRSTFAST * FROM VendTrans WHERE ((TransDate<={ts '2014-12-31 00:00:00.000'})) AND ((Dimension[4] = N'GRUPPOTECN')) AND ((EmplAccount_RU = ' '))
TYPE: QueryBuildDataSource

Но я так и не понял где именно он формируется. Везде где в наследниках есть метод Query пытался дебажить, эти методы просто не вызываются. Я уже разобрал последовательность вызов и логику работы, но мне нужно найти где именно формируется запрос, и что он туда пихает и из каких таблиц. Либо дебагер перехватывает не все методы, либо я что то упустил...

X++:
//RLedgerSheetEngine.Run()
SysQueryRun     runQuery;
    ;

    this.initAccounts();
    runQuery = new SysQueryRun(this.initRunQuery());
    while(runQuery.next())
    {
        this.loopAction(runQuery);
    }

X++:
protected Query initRunQuery()
{
    return queryRun.query();
}
Где найти этот самый queryRun.query(), откуда он берет свое значение?

Последний раз редактировалось syl; 19.06.2015 в 16:04.
Старый 19.06.2015, 16:08   #2  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Запросы могут упаковываться/распаковываться (то есть хранить выбранные пользователем значения в промежутках между запусками). Смотрите методы pack(), unpack().
Старый 19.06.2015, 16:58   #3  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Цитата:
Сообщение от Ruff Посмотреть сообщение
Запросы могут упаковываться/распаковываться (то есть хранить выбранные пользователем значения в промежутках между запусками). Смотрите методы pack(), unpack().
А толку? Они то упаковываются, но увидеть что там внутри все равно нельзя. Никакой ясности это не вносит...

С самим запросом я походу разобрался, он формируется в методе query rLedgerSheetEngine_TurnoverVend, потом по ходу алгоритма на него накладываются фильтры.
Затем в методе loopBalanceTrans rLedgerSheetEngine_TurnoverCustVend происходит расчет, fetchNextRows построчно добавляет данные. Последнее что осталось определить какие поля выводятся на конечную форму...

Последний раз редактировалось syl; 19.06.2015 в 17:07.
Старый 20.06.2015, 18:03   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от syl Посмотреть сообщение
Где найти этот самый queryRun.query(), откуда он берет свое значение?
Посмотрите здесь: Кнопка Выбрать в окне диалога.

QueryRun - это переменная, определенная в родительском классе RunBase. Она создается на основе переменной Query (которая формируется в rLedgerSheetEngine.query()) + все те настройки, которые может добавить пользователь, нажав кнопку "Выбрать".

Можно сказать так: query - настройки запроса по умолчанию при первом открытии диалога с пользователем, queryRun - реальные значения запроса, указанные пользователем в диалоге

PS: Российская локализация ОСВ сильно "покорежила" стандартную идеологию работы с классами-наследниками RunBase. Как обычно, впрочем... Почему-то российские локализаторы всегда идут "своим путем" даже не пытаясь понять идеологию Axapta.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Универсальный изменятель значений полей wojzeh DAX: Программирование 17 26.09.2013 17:47
axforum blogs: Определение термина ERP и требования к ERP-системам Blog bot DAX Blogs 0 07.03.2012 18:12
16 и более полей в InventDim Ievgenii DAX: Функционал 12 13.10.2011 13:56
Изменение идентификаторов(id) полей Dron AKA andy DAX: База знаний и проекты 30 17.06.2009 10:11
очистка полей. простой вопрос Антон Солдатов DAX: Программирование 4 04.04.2003 10:28

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

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

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