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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.09.2017, 08:59   #1  
BokarevSS is offline
BokarevSS
Участник
 
56 / 12 (1) ++
Регистрация: 13.01.2009
Обращение к таблице
Здравствуйте. Может это и обсуждалось, я не смог найти. Скажите пожалуйста, какой метод нужно перекрыть, чтобы перехватить обращение к таблице. Не к DataSource, а именно к таблице.
Ax3.0SP5FP2
Старый 21.09.2017, 09:40   #2  
JuniorAx is offline
JuniorAx
Участник
 
129 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Под обращением к таблице вы понимаете вставку, удаление, апдейт записи ???
Если так, то соответствующие методы таблицы (Insert, delete, update ) и надо перекрывать.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 09:43   #3  
BokarevSS is offline
BokarevSS
Участник
 
56 / 12 (1) ++
Регистрация: 13.01.2009
Нет, под обращением я понимаю выборку в таблице каким-либо классом.
Старый 21.09.2017, 09:49   #4  
Pandasama is offline
Pandasama
Участник
 
77 / 16 (1) ++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Нет, под обращением я понимаю выборку в таблице каким-либо классом.
.postLoad() попробуйте
а в версиях позже 3йку есть ещё .aosValidateRead()
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 09:54   #5  
online
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,611 / 3396 (171) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Здравствуйте. Может это и обсуждалось, я не смог найти. Скажите пожалуйста, какой метод нужно перекрыть, чтобы перехватить обращение к таблице. Не к DataSource, а именно к таблице.
Ax3.0SP5FP2
бывают разные обращения к таблице.
и из разных мест.

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

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

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

посмотреть все методы вы можете встав на ветке methods таблицы,
нажав правую кнопку мыши
и выбрав пункт overwrite
вы получите список методов, которые так или иначе вызываются ядром при тех или иных событиях в системе
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 09:57   #6  
online
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,611 / 3396 (171) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Pandasama Посмотреть сообщение
.postLoad() попробуйте
неееет!
ни в коем случае.
postLoad является устаревшим даже в акс3.
postLoad пришел из предыдущей версии платформы - из Конкорда.
postLoad использовался тогда для эмуляции display методов совместно с полями, у которых свойство savable=no.
postLoad в аксапте всегда НЕ рекомендовался, поскольку очень сильно снижает производительность.

в аксапте поздних версий postLoad остался только в одном месте - отображение "сдвига" для кредитовых MST-сумм.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 21.09.2017, 10:08   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
341 / 301 (11) ++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от mazzy Посмотреть сообщение
неееет!
ни в коем случае.
postLoad является устаревшим.
Он вечно молод! Активно используется в virtual field для data entity в текущей версии.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 21.09.2017, 11:38   #8  
BokarevSS is offline
BokarevSS
Участник
 
56 / 12 (1) ++
Регистрация: 13.01.2009
postLoad() работает, но когда я открываю grid этой таблицы. А моя задача следующая: мне нужно при печати любых бухгалтерских документов выяснять какой банк ставится на место моей организации, и если документ после 1,10,2017 то брать другой банк. Я не прошу решения, сам сделаю. И для этого я спрашивал как мне перехватить событие выбора банка, чтобы изменить банк при условии. Метод postLoad() на таблице банков отрабатывает только если я список банков вывожу.
Старый 21.09.2017, 11:50   #9  
Pandasama is offline
Pandasama
Участник
 
77 / 16 (1) ++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
postLoad является устаревшим даже в акс3.
Почему устаревшим?
То есть этот метод не выполняется 100% при выборке из таблицы?
Я им изредка пользовался чтобы отловить в сложных местах, где идет загрузка записи (аналогично тому, как я использую для этого .aosValidateInsert всякие) - и вроде пока он не подводил.
Старый 21.09.2017, 12:03   #10  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
341 / 301 (11) ++++++
Регистрация: 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,324 / 778 (28) +++++++
Регистрация: 22.07.2003
Адрес: МО
Лучше сразу свой счет подставляйте
Старый 21.09.2017, 13:20   #12  
online
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,611 / 3396 (171) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от skuull Посмотреть сообщение
Активно используется в
вот-вот... *мат поскипан*

Цитата:
Сообщение от Pandasama Посмотреть сообщение
Почему устаревшим?
потому что об этом писали рекомендации еще Дамгаарды.
вместо postLoad в аксапте появились dispaly и edit методы.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 21.09.2017, 13:23   #13  
online
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,611 / 3396 (171) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Pandasama Посмотреть сообщение
То есть этот метод не выполняется 100% при выборке из таблицы?
метод выполняется.
но когда есть этот метод то выключаются выключались все оптимизационные механизмы, кэши и групповые recordset операции, раньше не работал RLS и отвратительно работает работал DatabaseLog.
я не знаю как обстоят дела в последних релизах.

сам метод - выполняется. )
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 21.09.2017 в 13:39.
За это сообщение автора поблагодарили: Logger (3).
Старый 21.09.2017, 13:42   #14  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,339 / 828 (30) +++++++
Регистрация: 13.01.2004
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
А моя задача следующая: мне нужно при печати любых бухгалтерских документов выяснять какой банк ставится на место моей организации, и если документ после 1,10,2017 то брать другой банк.
Если печать документов стандартная или кастомизация стандарта, то обычно для выбора банка используется такая же стандартная иерархия классов. Вот в эту иерархию и встраивайтесь

На вскидку, не вспомню, как эти классы называются. Помню только, что там все хитрО было закручено
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 20.10.2017, 10:45   #15  
Perc is offline
Perc
Участник
 
135 / 26 (1) +++
Регистрация: 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
 
1,681 / 843 (32) +++++++
Регистрация: 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, время: 22:42.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.