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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2012, 13:13   #1  
Narayana is offline
Narayana
Участник
 
241 / 100 (4) +++++
Регистрация: 05.01.2009
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Немного сумбурно написано. В аксапте есть возможность отображать на форме или в отчёте результат вычисления метода, написанного непосредственно на X++. Если по вычисленному значению вам не нужно проводить фильтрацию сортировку или агрегацию, а нужно всего лишь отображать значение, то можно использовать механизм display-методов. Их можно реализовывать не только на формах но и на таблицах.

Если просто отображать вычисленное значение не достаточно, то стандартный подход - использовать временные таблицы для промежуточных вычислений. Есть ещё не стандартный способ создания нужного View, заключающийся в том чтобы подменять аксаптовский View на нужный на уровне БД. Правда, как и у всех нестандартных способов, и у этого есть свои проблемы Запрет синхронизации объекта АОТ
Написано, действительно, сумбурно, потому что про всякого рода дата-базные дела, вообще, очень сложно писать человеческим языком. Это связано со множественностью всякого рода отображений и неоднозначностью небольшого количества слов для описания явления. В общем, давно известный эффект, - лучшей моделью описываемого объекта является сам объект.

Отображение вычисляемых значений в полях форм и отчетов возможно и удобно с помощью методов, но нужно не это. Нужно готовый View, для того, чтобы передавать его как дата-сорс в Data Set для портала.
Не, ну это, вообще, чисто идейно кривой ход, вычисления делать уже в форме. Вся смысловая бизнес логика должна реализовывать в единой структуре данных.
И потом, это же Аксапта, а не 1С. В общем, недоработка. Причем, крупная.

А вот как использовать дисплей-методы для вычисления полей в таблице я не понял. В хелпе про это ничего нет. Только про формы и отчеты.
Если можно, приведите пример.

Здесь ведь в чем тонкость.
Просто создать в коде переменную для временной таблицы и вычислить для этой таблицы все поля, не сложно. Невозможно эту таблицу как объект в виде переменной привязать ко View. Ну, то есть, можно просто View не предлагает временную таблицу для подстановки в качестве дата-сорса.

То же самое и с запросом.
Вы можете выбрать временную таблицу в качестве дата-сорса, но когда этот запрос затолкаете во View, то он не будет отражаться в дата-сорсах для этого View.

Переходить ко вьшкам в базе, это уже выглядит извращением для такой простой задачи. Но, если ничего не получится, можно попробовать.
Хотя, наверное, проще переформатировать таблицы и перейти от горизонтальной агрегации в вертикальной, доступной.
Старый 07.11.2012, 14:10   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Narayana Посмотреть сообщение
А вот как использовать дисплей-методы для вычисления полей в таблице я не понял. В хелпе про это ничего нет. Только про формы и отчеты.
Если можно, приведите пример.
Это тоже самое. Разница только в области видимости. Если реализовать метод на уровне таблицы, то он будет доступен на всех формах и отчётах.

Цитата:
Сообщение от Narayana Посмотреть сообщение
Здесь ведь в чем тонкость.
Просто создать в коде переменную для временной таблицы и вычислить для этой таблицы все поля, не сложно. Невозможно эту таблицу как объект в виде переменной привязать ко View. Ну, то есть, можно просто View не предлагает временную таблицу для подстановки в качестве дата-сорса.

То же самое и с запросом.
Вы можете выбрать временную таблицу в качестве дата-сорса, но когда этот запрос затолкаете во View, то он не будет отражаться в дата-сорсах для этого View.
Посмотрите метод SetRecord
TmpTable в QueryRun
За это сообщение автора поблагодарили: Narayana (1).
Теги
query, архитектура, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление поля с определённым типом во всех таблицах. Corel DAX: Программирование 1 20.12.2008 13:37
Достаточно ли изменить дату в таблицах inventTrans, inventTransPosting, VendPackingSlipJour? DmitryS DAX: Программирование 3 18.09.2008 14:37
Проверки заполненных значений в связанных таблицах. miklenew DAX: База знаний и проекты 11 25.12.2007 14:40
Как не использовать relations на таблицах demetra DAX: Программирование 13 14.07.2006 11:00
Осторожнее с CTRL+S на таблицах mit DAX: Администрирование 7 25.07.2005 19:09

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

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

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