|
![]() |
#1 |
Участник
|
Я выявил такой запрос:
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(); } Последний раз редактировалось syl; 19.06.2015 в 16:04. |
|
![]() |
#2 |
Дмитрий Ерин
|
Запросы могут упаковываться/распаковываться (то есть хранить выбранные пользователем значения в промежутках между запусками). Смотрите методы pack(), unpack().
|
|
![]() |
#3 |
Участник
|
Цитата:
С самим запросом я походу разобрался, он формируется в методе query rLedgerSheetEngine_TurnoverVend, потом по ходу алгоритма на него накладываются фильтры. Затем в методе loopBalanceTrans rLedgerSheetEngine_TurnoverCustVend происходит расчет, fetchNextRows построчно добавляет данные. Последнее что осталось определить какие поля выводятся на конечную форму... Последний раз редактировалось syl; 19.06.2015 в 17:07. |
|
![]() |
#4 |
Участник
|
Посмотрите здесь: Кнопка Выбрать в окне диалога.
QueryRun - это переменная, определенная в родительском классе RunBase. Она создается на основе переменной Query (которая формируется в rLedgerSheetEngine.query()) + все те настройки, которые может добавить пользователь, нажав кнопку "Выбрать". Можно сказать так: query - настройки запроса по умолчанию при первом открытии диалога с пользователем, queryRun - реальные значения запроса, указанные пользователем в диалоге PS: Российская локализация ОСВ сильно "покорежила" стандартную идеологию работы с классами-наследниками RunBase. Как обычно, впрочем... Почему-то российские локализаторы всегда идут "своим путем" даже не пытаясь понять идеологию Axapta. ![]()
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|