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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.09.2017, 08:59   #1  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
Обращение к таблице
Здравствуйте. Может это и обсуждалось, я не смог найти. Скажите пожалуйста, какой метод нужно перекрыть, чтобы перехватить обращение к таблице. Не к DataSource, а именно к таблице.
Ax3.0SP5FP2
Старый 21.09.2017, 09:40   #2  
JuniorAx is offline
JuniorAx
Участник
 
134 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Под обращением к таблице вы понимаете вставку, удаление, апдейт записи ???
Если так, то соответствующие методы таблицы (Insert, delete, update ) и надо перекрывать.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 09:43   #3  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
Нет, под обращением я понимаю выборку в таблице каким-либо классом.
Старый 21.09.2017, 09:49   #4  
Pandasama is offline
Pandasama
Участник
 
448 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Нет, под обращением я понимаю выборку в таблице каким-либо классом.
.postLoad() попробуйте
а в версиях позже 3йку есть ещё .aosValidateRead()
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 09:57   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Pandasama Посмотреть сообщение
.postLoad() попробуйте
неееет!
ни в коем случае.
postLoad является устаревшим даже в акс3.
postLoad пришел из предыдущей версии платформы - из Конкорда.
postLoad использовался тогда для эмуляции display методов совместно с полями, у которых свойство savable=no.
postLoad в аксапте всегда НЕ рекомендовался, поскольку очень сильно снижает производительность.

в аксапте поздних версий postLoad остался только в одном месте - отображение "сдвига" для кредитовых MST-сумм.
__________________
полезное на axForum, github, vk, coub.
Старый 21.09.2017, 10:08   #6  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от mazzy Посмотреть сообщение
неееет!
ни в коем случае.
postLoad является устаревшим.
Он вечно молод! Активно используется в virtual field для data entity в текущей версии.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 20.10.2017, 10:45   #7  
Perc is offline
Perc
Участник
 
193 / 44 (2) +++
Регистрация: 05.03.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
неееет!
ни в коем случае.
postLoad является устаревшим даже в акс3.
postLoad пришел из предыдущей версии платформы - из Конкорда.
postLoad использовался тогда для эмуляции display методов совместно с полями, у которых свойство savable=no.
postLoad в аксапте всегда НЕ рекомендовался, поскольку очень сильно снижает производительность.

в аксапте поздних версий postLoad остался только в одном месте - отображение "сдвига" для кредитовых MST-сумм.
и тем не менее этот postload в ledger cust vend trans все живет вплоть до двенашки точно. Самые что называется "невостребованные" таблицы не нуждающиеся в оптимизации) В мс вредители
Да и вообще удобны кому то эти сдвинутые суммы? и все возможный комбинации +- перед суммой. вечно меняющие знак при копировании в ексель
Старый 21.09.2017, 09:54   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Здравствуйте. Может это и обсуждалось, я не смог найти. Скажите пожалуйста, какой метод нужно перекрыть, чтобы перехватить обращение к таблице. Не к DataSource, а именно к таблице.
Ax3.0SP5FP2
бывают разные обращения к таблице.
и из разных мест.

частые методы:
  • insert
  • update
  • delete

также ядром вызываются:
  • validateWrite
  • validateField
  • initValue

также можно переопределить поведение при помощи
  • doInsert
  • doUpdate
  • doDelete

посмотреть все методы вы можете встав на ветке methods таблицы,
нажав правую кнопку мыши
и выбрав пункт overwrite
вы получите список методов, которые так или иначе вызываются ядром при тех или иных событиях в системе
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 11:50   #9  
Pandasama is offline
Pandasama
Участник
 
448 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
postLoad является устаревшим даже в акс3.
Почему устаревшим?
То есть этот метод не выполняется 100% при выборке из таблицы?
Я им изредка пользовался чтобы отловить в сложных местах, где идет загрузка записи (аналогично тому, как я использую для этого .aosValidateInsert всякие) - и вроде пока он не подводил.
Старый 21.09.2017, 13:23   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Pandasama Посмотреть сообщение
То есть этот метод не выполняется 100% при выборке из таблицы?
метод выполняется.
но когда есть этот метод то выключаются выключались все оптимизационные механизмы, кэши и групповые recordset операции, раньше не работал RLS и отвратительно работает работал DatabaseLog.
я не знаю как обстоят дела в последних релизах.

сам метод - выполняется. )
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 21.09.2017 в 13:39.
За это сообщение автора поблагодарили: Logger (3).
Старый 21.09.2017, 13:06   #11  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Лучше сразу свой счет подставляйте
Старый 20.10.2017, 10:58   #12  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
В DAX2009 еще и для EmplTable postLoad перекрыт. Эстонцам, видимо показалось, что Акса слишком быстро работает. Почему бы еще и не записывать в лог любой select.
Что раздражает - на этот postLoad skip* методы не действуют.
За это сообщение автора поблагодарили: Ace of Database (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрование записей при "переходе к основной таблице" demID DAX: Программирование 10 18.11.2015 12:52
Переименование полей в одной таблице на основе данных из другой niksen DAX: Программирование 1 14.09.2011 12:34
Обращение к таблице... V777 DAX: Программирование 22 17.06.2009 14:13
Программное обращение к группе полей в таблице vodnev DAX: Программирование 2 30.10.2006 17:22
фильтр по связанной таблице mick_777 DAX: Программирование 13 21.08.2002 16:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:47.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.