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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.01.2009, 16:33   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от hated8 Посмотреть сообщение
вся проблема была в том что я делал:
qbds.addDataSource(tablenum(RAssetLocation));
qbds.addRange(fieldNum(RAssetLocation, recid)).value('((RAssetTransferTable.NewLocation==Location) || (RAssetTransferTable.OldLocation==Location))');
поменял qbds на this.query().dataSourceTable(tablenum(RAssetLocation)) и стало счастье!)
Вся проблема была в том, что range сначала помещался не в тот датасорс. Вызов fieldNum(RAssetLocation, recid) вносил визуальную путаницу и казалось, что range строится для датасорса от таблицы RAssetLocation. Но в параметрах функции fieldNum для поля RecId можно было бы указать совершенно произвольную таблицу, хоть LedgerTable - все равно датасорс, к которому добавлялся это range определялся бы текущим состоянием переменной qbds, а в ней в тот момент был датасорс от таблицы RAssetTransferTable. Поэтому использование просто "Location" без квалификатора датасорса от RAssetLocation вызывало ошибку, так как в таблице RAssetTransferTable поле Location отсутствует.

Оператор this.query().dataSourceTable(tablenum(RAssetLocation)).addRange(...) добавлял диапазон уже к датасорсу от RAssetLocation, в которой поле Location присутствует и поэтому счастье стало возможным и без имени датасорса.

Если же сейчас то попробовать "==Location" с именем датасорса, то, почти уверен, что "==RAssetLocation.Location" вызовет ошибку, а "==RAssetLocation_1.Location" отработает нормально. Попробуете? (для завершенности эксперимента).

Вы меня спросите, а почему же работает без _1 имя RAssetTransferTable? Я отвечу: "Она приезжала в Москву в командировку!" (шутка!) Я отвечу: потому что, вероятно, имя датасорса от таблицы RAssetTransferTable было исправлено на "без _1" в том таинственном this.query(), к которому всё пристраивается. Либо это датасорс формы, в котором _1 не добавляется при перетаскивании в него таблицы (первого экземпляра! а ко второму (!) уже добавляется "единичка", но без подчеркинания).

Впрочем, если это 4-ка и там всё не так, как я думаю про _1, и прав ZVV - про "одну таблицу", то два предыдущих абзаца нужно будет воспринять с точностью до наоборот. P.S. Ну вот и выяснили
За это сообщение автора поблагодарили: ZVV (1).
Старый 16.01.2009, 16:49   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Gustav Посмотреть сообщение
...Впрочем, если это 4-ка и там всё не так, как я думаю про _1, и прав ZVV - про "одну таблицу", то два предыдущих абзаца нужно будет воспринять с точностью до наоборот.
Не, ZVV таки похоже был неправ, даже не знаю откуда у него сложилось такое впечатление..
__________________
Zhirenkov Vitaly
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как преобразовать запрос в SQL-инструкцию Oloops DAX: Программирование 7 07.07.2008 20:38
Поймать SQL запрос при формировании отчета Qaz Qwerty DAX: Программирование 7 12.06.2008 01:46
SQL мониторинг + прямой запрос к SQL Alex_KD DAX: Программирование 17 29.05.2007 03:58
SQL Запрос Александр Костоусов DAX: Программирование 5 24.09.2004 12:15
Собственный SQL запрос в FormDataSource Alexey DAX: База знаний и проекты 0 20.12.2001 00:35

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

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

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