Показать сообщение отдельно
Старый 17.10.2012, 15:17   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,713 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Общая схема работы должна быть примерно такая

1. Создается свой собственный метод формы в котором на основе текущего значения поля таблицы (которое отображается в CheckBox) кнопка делается либо видимой, либо нет

X++:
myButton.visible(MyTable.MyField == NoYes::Yes ? true : false);
Обратите внимание, что менять значение надо всегда. Вне зависимости от значения CheckBox.

В качестве условия, разумеется, можно проверять значение CheckBox (объекта формы), а не поле таблицы-источника. Это уже зависит от постановки задачи

2. В методе DataSource MyTable.active() делаете вызов этого своего метода после super()

3. В методе CheckBox.modified() после super() делаете вызов своего метода. Без вызова active() DataSource.

Идея заключается в том, что метод active() на DataSource, кроме собственно выполнения Вашего метода делает еще кое-что свое и это "свое" может вносить "помехи" в работу функционала. Поэтому выделение метода активации кнопок в отдельный метод позволяет разделить Ваши дейтсвия и дейтсвия системы.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: BokarevSS (1), kpoxa (0).