17.10.2012, 10:26 | #1 |
Участник
|
Visible кнопки
При изменении свойства visible у кнопки, по задумке она должна показываться если chekbox выбран, а при снятии отметки кнопка должна скрываться. Меняю свойство Visible, затем вызываю метод update(), и ничего не происходит. Пытался делать redraw формы, тоже не помогло. Помогите разобраться.
|
|
17.10.2012, 11:02 | #2 |
северный Будда
|
вам же сказали уже - надо вызывать active на нужном датасоурсе
__________________
С уважением, Вячеслав |
|
17.10.2012, 11:21 | #3 |
Участник
|
Да, за помощь я благодарен. И вызываю aktive на Datasource, вот в обработке я и столкнулся с проблемой что у меня кнопка не перерисовывается. В этом и заключается мой вопрос.
|
|
17.10.2012, 11:36 | #4 |
северный Будда
|
ну так вызовите active в процессе обработки
__________________
С уважением, Вячеслав |
|
17.10.2012, 15:17 | #5 |
Участник
|
Общая схема работы должна быть примерно такая
1. Создается свой собственный метод формы в котором на основе текущего значения поля таблицы (которое отображается в CheckBox) кнопка делается либо видимой, либо нет X++: myButton.visible(MyTable.MyField == NoYes::Yes ? true : false); В качестве условия, разумеется, можно проверять значение CheckBox (объекта формы), а не поле таблицы-источника. Это уже зависит от постановки задачи 2. В методе DataSource MyTable.active() делаете вызов этого своего метода после super() 3. В методе CheckBox.modified() после super() делаете вызов своего метода. Без вызова active() DataSource. Идея заключается в том, что метод active() на DataSource, кроме собственно выполнения Вашего метода делает еще кое-что свое и это "свое" может вносить "помехи" в работу функционала. Поэтому выделение метода активации кнопок в отдельный метод позволяет разделить Ваши дейтсвия и дейтсвия системы.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: BokarevSS (1), kpoxa (0). |
17.10.2012, 15:45 | #6 |
Участник
|
В ряде случаев, если не требуется больше выполнять никаких операций с другими полями той же строки полсле установки/снятия галки, строку можно сразу же вывести из состояния редактирования и сохранить сделанные изменения в БД.
Т.е. в методе modified() поля датасурса отвечающего за галку нужно вызвать метод write() датасурса. Событие active() после этого выполниться автоматически. |
|
|
За это сообщение автора поблагодарили: BokarevSS (1). |