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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2012, 15:29   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Свойство поля saveContent
Объясните, пожалуйста, что это такое?
Старый 22.05.2012, 15:43   #2  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Объясните, пожалуйста, что это такое?
Замечательная штука! Таблица в Аксапте будет иметь данное поле, а соотв. таблица в БД - нет. Соответственно, значение в этом поле не сохраняется при update/insert. Ещё ни разу не пригодилось

Предполагается, видимо, использовать данное поле для промежуточных вычислений. До первого сохранения.

Может кто поделится примерами удачного использования виртуально поля? Нашел пример только тут, но зачем оно там - непонятно.

Последний раз редактировалось Dark Light; 22.05.2012 в 16:03.
Старый 22.05.2012, 15:46   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Determines whether the field data is saved in the database or is treated as virtual field data. Virtual field data is calculated at run time when the field is displayed, and has no physical representation in the database.

Instead of virtual fields, you can use display and edit methods.
http://msdn.microsoft.com/en-us/libr...(v=ax.50).aspx

Цитата:
Сообщение от Dark Light Посмотреть сообщение
Может кто поделится примерами удачного использования виртуально поля?
Например, вместо дисплейного поля. Перекрываем метод postload и считаем в нем что нам надо. Не скажу, что пример удачный, просто вариант использования. Сам никогда не использовал.
Старый 22.05.2012, 16:31   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
I've opened for myself the new great property of the table fields - SaveContents.
Казалось бы, есть display и edit методы - так нет же, обязательно найдется какой-нибудь "первооткрыватель" и сделает все как обычно (через задницу)
Цитата:
Может кто поделится примерами удачного использования виртуально поля?
Себестоимость для OLAP так считается в старых версиях, см. \Data Dictionary\Tables\CustInvoiceJour\Fields\OLAPCostValue. Само значение себестоимости физически в БД не хранится, так как "плавает" и обновлять его каждый раз в накладной накладно (хм, каламбур), но поле в AOT используется при настройке куба и протянуто в списке "волшебных" "не-физических" полей в \Classes\OLAPCreateAmount\isSpecialCalcField (в итоге - рассчитывается, а не тянется из БД)
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: lev (3), S.Kuskov (1), Dark Light (1).
Старый 22.05.2012, 16:47   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Vadik Посмотреть сообщение
Казалось бы, есть display и edit методы - так нет же, обязательно найдется какой-нибудь "первооткрыватель" и сделает все как обычно (через задницу)
Тут можно добавить, что если вместо display метода использовать такие "виртуальные" поля, то фильтрация и сортировка по таким полям в интерфейсе для пользователя доступна будет, но реально работать не будет. Что может сильно сбить с толку.
За это сообщение автора поблагодарили: Vadik (1).
Старый 22.05.2012, 16:58   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Объясните, пожалуйста, что это такое?
устаревшее свойство, унаследованное из старых версий, когда еще не было Display/Edit методов.
предполагается, что программист переопределит метод postLoad и/или write.

Цитата:
Сообщение от oip Посмотреть сообщение
Например, вместо дисплейного поля. Перекрываем метод postload и считаем в нем что нам надо.
угу. но лучше пользоваться Display/Edit методами.

Цитата:
Сообщение от Vadik Посмотреть сообщение
Казалось бы, есть display и edit методы - так нет же, обязательно найдется какой-нибудь "первооткрыватель" и сделает все как обычно (через задницу)
Это свойство еще с Конкорда тянется, вроде.
__________________
полезное на axForum, github, vk, coub.
Старый 22.05.2012, 17:56   #8  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Я бы добавил. что это было актуально до изобретения cacheAddMethod() в версии 3.0. До этого, других способов закэшировать вычесленное значение не было. В некоторых случаях, вариант с postLoad и несохраняемым полем давал заметный выигрыш в производительности по сравнению с дисплейным методом. Хотя в некоторых случаях - заметный проигрыш, поскольку значение поле рассчитывалось при любых операциях и не только для тех записей которые выводились на экран.
В общем - в версии 2.5 я таким подходом иногда пользовался... Начиная с версии 3.0 - перестал
Старый 22.05.2012, 19:25   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
Я бы добавил. что это было актуально до изобретения cacheAddMethod() в версии 3.0. До этого, других способов закэшировать вычесленное значение не было. В некоторых случаях, вариант с postLoad и несохраняемым полем давал заметный выигрыш в производительности по сравнению с дисплейным методом. Хотя в некоторых случаях - заметный проигрыш, поскольку значение поле рассчитывалось при любых операциях и не только для тех записей которые выводились на экран.
В общем - в версии 2.5 я таким подходом иногда пользовался... Начиная с версии 3.0 - перестал
Можно сделать гибридный вариант.
Завести флажок, обозначающий что значения рассчитаны и умный дисплей метод, который при первом вызове рассчитывает значения, прописывает и взводит флажок.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Переименование поля kashperuk DAX: Программирование 0 19.07.2006 17:20
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Длина поля ax_f DAX: Программирование 5 24.09.2004 12:17
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Недопустимая комбинация поля/поля ссылки Berty Wooster DAX: Программирование 2 29.05.2003 16:31

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

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

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