|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Немного сумбурно написано. В аксапте есть возможность отображать на форме или в отчёте результат вычисления метода, написанного непосредственно на X++. Если по вычисленному значению вам не нужно проводить фильтрацию сортировку или агрегацию, а нужно всего лишь отображать значение, то можно использовать механизм display-методов. Их можно реализовывать не только на формах но и на таблицах.
Если просто отображать вычисленное значение не достаточно, то стандартный подход - использовать временные таблицы для промежуточных вычислений. Есть ещё не стандартный способ создания нужного View, заключающийся в том чтобы подменять аксаптовский View на нужный на уровне БД. Правда, как и у всех нестандартных способов, и у этого есть свои проблемы Запрет синхронизации объекта АОТ Отображение вычисляемых значений в полях форм и отчетов возможно и удобно с помощью методов, но нужно не это. Нужно готовый View, для того, чтобы передавать его как дата-сорс в Data Set для портала. Не, ну это, вообще, чисто идейно кривой ход, вычисления делать уже в форме. Вся смысловая бизнес логика должна реализовывать в единой структуре данных. И потом, это же Аксапта, а не 1С. В общем, недоработка. Причем, крупная. А вот как использовать дисплей-методы для вычисления полей в таблице я не понял. В хелпе про это ничего нет. Только про формы и отчеты. Если можно, приведите пример. Здесь ведь в чем тонкость. Просто создать в коде переменную для временной таблицы и вычислить для этой таблицы все поля, не сложно. Невозможно эту таблицу как объект в виде переменной привязать ко View. Ну, то есть, можно просто View не предлагает временную таблицу для подстановки в качестве дата-сорса. То же самое и с запросом. Вы можете выбрать временную таблицу в качестве дата-сорса, но когда этот запрос затолкаете во View, то он не будет отражаться в дата-сорсах для этого View. Переходить ко вьшкам в базе, это уже выглядит извращением для такой простой задачи. Но, если ничего не получится, можно попробовать. Хотя, наверное, проще переформатировать таблицы и перейти от горизонтальной агрегации в вертикальной, доступной. |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
Сообщение от Narayana
![]() Здесь ведь в чем тонкость.
Просто создать в коде переменную для временной таблицы и вычислить для этой таблицы все поля, не сложно. Невозможно эту таблицу как объект в виде переменной привязать ко View. Ну, то есть, можно просто View не предлагает временную таблицу для подстановки в качестве дата-сорса. То же самое и с запросом. Вы можете выбрать временную таблицу в качестве дата-сорса, но когда этот запрос затолкаете во View, то он не будет отражаться в дата-сорсах для этого View. TmpTable в QueryRun |
|
|
За это сообщение автора поблагодарили: Narayana (1). |
Теги |
query, архитектура, как правильно |
|
|