![]() |
#1 |
MCTS
|
Метод, вызывающийся на изменение поля
Допустим, есть таблица. Допустим, на этой таблице перекрыт modifiedField(). Допустим код на изменение одного из полей должен отрабатывать только на определенной форме, и не должен работать при программной обработке данных. Как бы вы написали код на modifiedField(), чтобы это все реализовать правильно?
Последний раз редактировалось Eldar9x; 26.04.2012 в 12:58. |
|
![]() |
#2 |
Участник
|
Используйте modifiedField не на таблице а на филде датасурса
![]() P.S.: К стати и табличный modifiedField автоматически не вызывается при программной обработке, если только его не вызвать явно. |
|
|
За это сообщение автора поблагодарили: lev (1). |
![]() |
#3 |
MCTS
|
Надо как-то на методе таблицы. Запретили выносить бизнес-логику на форму. И modifiedField вызывают явно в коде.
|
|
![]() |
#4 |
Участник
|
Цитата:
Можно вот так: X++: FormDataSource FormDataSource; ; if (this.isFormDataSource()) { FormDataSource = this.dataSource(); if (FormDataSource.formRun().name() == formstr(MyForm)) { // TODO: info("test"); } } |
|
|
За это сообщение автора поблагодарили: Eldar9x (5). |
![]() |
#5 |
Роман Долгополов (RDOL)
|
может дело не в "определенных" формах таки, а в формах, отображающих немного разные сущности хранящиеся в одной таблице?
Тогда на таблице должен быть признак (енум) что же это за сущность (ну например как тип заказа на продажу) в зависимости от которого можно создать несколько классов обработчиков (SalesLineType, SalesTableType) и реализовать в них разное поведение в ответ на одно и то же событие. Если же отличия реально только в дизайне формы, то скорее всего тут и все modified должны срабатывать вне зависимости от того откуда оно вызвано. Иначе либо косяк архитектуры, либо что то совсем простое, чему явно место именно на форме, а не на таблице |
|
![]() |
#6 |
Ищущий знания...
|
Вот это
вот с этим не стыкуется ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#7 |
Роман Долгополов (RDOL)
|
Цитата:
![]() |
|
|
За это сообщение автора поблагодарили: gl00mie (2), someOne (3), pedrozzz (2). |
![]() |
#8 |
Участник
|
Цитата:
Сообщение от db
![]() это несомненно решение технической проблемы, но прежде чем так делать автору темы было неплохо таки выяснить у "запрещальщиков" что же они хотят добиться своими запретами и всё ли нормально с постановкой задачи. так как за такой код не в качестве примера, а в нормальной разработке необходимо лишать какой нито части тела
![]() |
|
![]() |
#9 |
Участник
|
По-моему, задача не могла быть поставлена таким образом, это ерунда какая-то; надо включить здравый смысл, и тогда все встанет на свои места. И еще: если задача ставится человеком, далеким от программирования в Аксапте, стоит критически воспринимать его "советы" относительно ее реализации в коде.
|
|
![]() |
#10 |
Участник
|
Цитата:
![]() |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |