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:54   #5  
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, 09:57   #6  
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   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от mazzy Посмотреть сообщение
неееет!
ни в коем случае.
postLoad является устаревшим.
Он вечно молод! Активно используется в virtual field для data entity в текущей версии.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 11:38   #8  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
postLoad() работает, но когда я открываю grid этой таблицы. А моя задача следующая: мне нужно при печати любых бухгалтерских документов выяснять какой банк ставится на место моей организации, и если документ после 1,10,2017 то брать другой банк. Я не прошу решения, сам сделаю. И для этого я спрашивал как мне перехватить событие выбора банка, чтобы изменить банк при условии. Метод postLoad() на таблице банков отрабатывает только если я список банков вывожу.
Старый 21.09.2017, 11:50   #9  
Pandasama is offline
Pandasama
Участник
 
448 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
postLoad является устаревшим даже в акс3.
Почему устаревшим?
То есть этот метод не выполняется 100% при выборке из таблицы?
Я им изредка пользовался чтобы отловить в сложных местах, где идет загрузка записи (аналогично тому, как я использую для этого .aosValidateInsert всякие) - и вроде пока он не подводил.
Старый 21.09.2017, 12:03   #10  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
А моя задача следующая: мне нужно при печати любых бухгалтерских документов выяснять какой банк ставится на место моей организации, и если документ после 1,10,2017 то брать другой банк. Я не прошу решения, сам сделаю. И для этого я спрашивал как мне перехватить событие выбора банка, чтобы изменить банк при условии.

Либо сузьте круг документов с "любых" до списка по котором можно пройтись и реализовать эту логику там, либо обновите данные, если банк реально не правильный, либо убедите "заказчика" так не делать.

Последний раз редактировалось skuull; 21.09.2017 в 12:06.
Старый 21.09.2017, 13:06   #11  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Лучше сразу свой счет подставляйте
Старый 21.09.2017, 13:20   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от skuull Посмотреть сообщение
Активно используется в
вот-вот... *мат поскипан*

Цитата:
Сообщение от Pandasama Посмотреть сообщение
Почему устаревшим?
потому что об этом писали рекомендации еще Дамгаарды.
вместо postLoad в аксапте появились dispaly и edit методы.
__________________
полезное на axForum, github, vk, coub.
Старый 21.09.2017, 13:23   #13  
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:42   #14  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
А моя задача следующая: мне нужно при печати любых бухгалтерских документов выяснять какой банк ставится на место моей организации, и если документ после 1,10,2017 то брать другой банк.
Если печать документов стандартная или кастомизация стандарта, то обычно для выбора банка используется такая же стандартная иерархия классов. Вот в эту иерархию и встраивайтесь

На вскидку, не вспомню, как эти классы называются. Помню только, что там все хитрО было закручено
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 20.10.2017, 10:45   #15  
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 все живет вплоть до двенашки точно. Самые что называется "невостребованные" таблицы не нуждающиеся в оптимизации) В мс вредители
Да и вообще удобны кому то эти сдвинутые суммы? и все возможный комбинации +- перед суммой. вечно меняющие знак при копировании в ексель
Старый 20.10.2017, 10:58   #16  
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, время: 14:45.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.