Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Блокировка ячейки таблицы / 5 сообщений из 5, страница 1 из 1
05.09.2003, 16:20
    #32257257
Mishel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ячейки таблицы
Уважаемые программисты
У меня возникла ситуация: в столбец Грида я вставил CheckBox. Все работает нормально, но иногда возникает ситуация, когда пользователь не должен иметь возможность переключить CheckBox какой-либо строки, например по какому-то условию. Пробовал задействовать Enabled, при этом блокируется весь столбец. Как заблокировать строку? (VFP 3.0)

Заранее спасибо

С уважением
Михаил
...
Рейтинг: 0 / 0
05.09.2003, 16:38
    #32257280
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ячейки таблицы
А что Valid уже не устраивает?
...
Рейтинг: 0 / 0
05.09.2003, 16:54
    #32257308
Alexander Korolev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ячейки таблицы
Еще можно в столбце завести два CheckBox - Enabled и Disabled. Переключать по DynamicCurrentControl
...
Рейтинг: 0 / 0
07.09.2003, 14:21
    #32257809
Mishel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ячейки таблицы
Прошу прощенья за поздний ответ - выходные.
Кстати VALID-ом я и пользовался. Вкратце о сути: мой проект работает в реальном режиме времени. Пришел человек - оператор фиксирует CheckBox-ом это событие. Далее человеку дается задание и он выполняет. Это фиксируется в другой таблице, а оператор не должен случайно выключить его из списка пришедших. Для этого в таблице людей ставится метка о том , что он работает в столбце fio.work

В начале у меня был такие строки на Valid CheckBox-а, который связан с логическим полем присутствие человека

if fio.work
return
endif

Система работала нормально, но CheckBox ПЕРЕКЛЮЧАЛСЯ. Поскольку я первоначально считал, что CheckBox и поле Fio.prixod тесно связаны, и значение таблицы меняются, поэтому я ввел новую строку

if fio.work
replace fio.prixod with .t.
return
endif

Все равно CheckBox переключался. (Профессионалы наверно сразу заметят ошибку).
После долгих размышлений я сделал открытие (прошу не смеяться, мне никто не подсказывал, а если где я ошибся - пусть поправят):
Связь объекта с переменной памяти (поле таблицы и др) ОДНОСТОРОННЯЯ. Т.е. смена состояния объекта (CheckBox и др) приводит к смене значения переменной, но программное изменение переменной на связанный объект никак не влияет. Приходится вручную изменять этот объект, вписывая параметры в их Value или рефрешируя. После чего строки стали такими:
if fio.work
replace fio.prixod with .t.
thisform.grid1.column5.check1.value = 1
return
endif

Конечно, на блокировку строки это не похоже, скорей всего это самовосстановление, но для пользователя этого достаточно.
Но вопрос остается открытым - как заблокировать строку таблицы?
(Статья ВладимираМ о Grid мне известна)

Спасибо, что прочитали.
С уважением
Михаил
...
Рейтинг: 0 / 0
08.09.2003, 12:11
    #32258259
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ячейки таблицы
Вообще-то о Grid я не писал. Скорее всего речь идет о статье Влада Гринчишина.

А в Вашем случае попробуйте запретить вход в столбец с ChekBox написав условие в WHEN этого объекта:

IF <Условие запрета модификации>
RETURN .F.
ENDIF

Такое условие записанное на сам объект CheckBox позволит сделать динамический запрет на модификацию в зависимости от содержимого строки.

Насчет взаимосвязи отображаемых объектов и ControlSource Вы не правы. Связь двухсторонняя. Просто объект CheckBox в этом смысле очень специфичен. Если есть возможность, лучше заменить его на ComboBox с двумя значениями "Да"/"Нет". В нужном Вам смысле ComboBox более управляем.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Блокировка ячейки таблицы / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]