08.09.2005, 12:16 | #1 |
Участник
|
значение checkBox
Есть в таблице Table поле Field1 - булевское - от EDT: NoYesID
В форме где эта таблица явл-ся одним из источников данных, выводим это поле на одной из закладок (не в гриде) получаем checkBox . ставим AllowDeclaration = Yes. Хочу, чтобы доступность другого контрола(Control1) в гриде, зависела от того, стоит галка в checkBox или нет. В методе active этого DS . Пишем : Control1.allowEdit(CheckBox.Value()) - но так не работает (((( Control1.allowEdit(Table.Field1) - а так работает. Почему? Причем , вариации типа : Control1.allowEdit(CheckBox.Value() == NoYes::Yes) или Control1.allowEdit(enum2str(CheckBox.Value() )) тоже не прокатывают. Судя по formControlValue значение checkBox берется именно с помощью Value(). |
|
08.09.2005, 12:30 | #2 |
Модератор
|
1) Правильнее завязываться на данный из таблицы, а не контролы.
2) После "super()" делаете или до? С Уважением, Георгий |
|
08.09.2005, 12:32 | #3 |
Участник
|
enum2str - стормозила, не из этой оперы, тип возвр значения тут не подходит
|
|
08.09.2005, 12:32 | #4 |
Участник
|
после супер.
|
|
08.09.2005, 12:37 | #5 |
Модератор
|
Хм. Не совсем понял задачу. Я бы как раз ориентировался на значение в таблице.
Control1.allowEdit(Table.Field1) Плюс перекрыл бы clicked контрола и добавил бы разрешение / запрет там. C Уважением, Георгий |
|
08.09.2005, 12:37 | #6 |
Участник
|
2George:
Спасию за совет, но вопрос сразу возник: Чем данные из таблицы лучше? Тем что , если устновлено DelayActive =yes . то в контролах не самые актуальные значения? или есть еще кие-нить причины, не связанные с обновлениями значений в контролах (хотя видимо, первого аргумента уже достаточно)? |
|
08.09.2005, 12:40 | #7 |
Участник
|
Видимо, вы правы, тк этот checkBox расположен не на первой закладке, то его значение не иниц-но на момент active, поэтому и не срабатывает проверка.
Спасибо. |
|
08.09.2005, 12:41 | #8 |
Модератор
|
Цитата:
Изначально опубликовано kitty
Чем данные из таблицы лучше? Тем что , если устновлено DelayActive =yes . то в контролах не самые актуальные значения? |
|
08.09.2005, 13:16 | #9 |
Участник
|
Вы что подразумеваете под актуализацией данных?
|
|
08.09.2005, 13:41 | #10 |
Модератор
|
Active отработает, когда данные из таблицы подтянуться и будут акткальными.
С Уважением, Георгий |
|
08.09.2005, 13:47 | #11 |
Участник
|
Ок, но почему значения в контролах не такие так в таблице (возвращаясь к subj)? почему предпочтительно брать значения из таблиц, а не контролов, если мои предположения на этот счет вы опровергаете,то скажите как есть на самом деле?
|
|
08.09.2005, 13:57 | #12 |
Модератор
|
Контрол - это средство ОТОБРАЖЕНИЯ значений в талице.
Значение в таблице - это АКСИОМА, т.е. истинное состояние данных. Изменение контрола может НЕ ОТОБРАЗИТЬСЯ на данных в таблице. (допустим, нажали F5 или ESC). Поэтому надо смотреть только на таблицу - мой совет. С Уважением, Георгий. |
|
08.09.2005, 14:22 | #13 |
Участник
|
Цитата:
Изначально опубликовано George Nordic
Это как это? Мне казалось, active отрабатывает, как только данные актуализированны. Если приведете обратный пример, буду крайне поражен Тем более, что в моем случае открывается форма и никаких посторонних действии помимо перемещения по записям над ней не производтся, поэтому все эти F5 Esc и тд тут ни при чем. То, что так не работает было ясно изначально (см subj) вопрос был почему. Тк если случай более тяжелый и к контролу не привязан DS, то что делать, как получить значение из контрола, если его значениям доверять нельзя? Но раз единственный ответ на почему это "делайть лучше так", то тему прежлагаю закрыть. Спасибо George. |
|
08.09.2005, 14:36 | #14 |
Участник
|
Eсли перейти на форме закладку с установленным значением в checkBox = true, а потом вернуться на первую закладку (там грид) и начать по гриду передвигаться по строкам,то при выводе в инфолог значения checkBox оно меняться не будет, то есть не смотря на то, что передвигаюсь по записям у которых значение поля = false, выводится true до тех пор пока не зайду на другой записи на закладку с checkBox.
|
|
08.09.2005, 14:58 | #15 |
Модератор
|
Не понял? Вот поэтому я и говорю, что контролам нельзя доверять. А попробуйте сделать Info(Таблица.Поле) и пробежаться по строкам.
Что, я неправ? |
|
08.09.2005, 15:28 | #16 |
Участник
|
Не, ну что непонятно?
Не актуализирует аксапта элементы визуализации, если они не видны. Экономит ресурсы, так сказать. В чём проблема то? Анекдот знаете? "Доктор, я когда спину левой рукой через правое ухо чешу, у меня вот тут колет.... - Ну так не чешите!... -Ой, доктор, помогло. Спасибо." |
|
08.09.2005, 17:01 | #17 |
Дмитрий Ерин
|
Цитата:
Изначально опубликовано kitty
То, что так не работает было ясно изначально (см subj) вопрос был почему. Тк если случай более тяжелый и к контролу не привязан DS, то что делать, как получить значение из контрола, если его значениям доверять нельзя? А на вопрос "почему" Вам правильно ответил xonix - зачем тратить время на обработку невидимых контролов?
__________________
|
|