:: Visual Foxpro, Foxpro for DOS
Как блокировать для ввода отдельные строки в грид?
seg856

Сообщений: 272
Дата регистрации: 23.09.2010
Курсор - источник грид. В нем есть поле, в котором 0- запрет ввода, 1 - ввод разрешен.
Как в соответствии с этим запретить ввод в отдельных строках грид?
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Вы же вроде в клиент - сервере?
А редактирование через грид?
Если отдельная форма, то просто ее вызов, в зависимоти от значения этого поля.
Если все же в гриде...
попробуйте в aftercolchange
В зависимости от поля
grid.setall('readonly',.T.,column)
grid.setall('readonly',.F.,column)
Может сработает.


------------------
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Кинуть в колонку еще идин котрол. Реадонли установить. В колонке прописать Динамиккуррентконтрол.
Ratings: 0 negative/1 positive
Re: Как блокировать для ввода отдельные строки в грид?
seg856

Сообщений: 272
Дата регистрации: 23.09.2010
Клиент-сервер, но там нужно вводить много статистических данных. Для быстроты выбрал этот способ.
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
seg856
нужно вводить много статистических данных. Для быстроты выбрал
Фигня какая-то
Они вам навводят.
Ну да хозяин - барин.
Кстати проверил
IF vol=1
this.column1.ReadOnly=.t.
ELSE
this.column1.ReadOnly=.f.
ENDIF
Работает

Просто любопытно, а сохраняете как, когда?


------------------




Исправлено 1 раз(а). Последнее : Аспид, 10.02.17 18:52
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
В классе для textbox, например, добавить св-ва OldValue и DynamicReadonly
На gotfocus
this.oldValue=this.VALUE

На InteractiveChange
WITH This
IF VARTYPE(.dynamicreadonly)='C' AND EVAL(.dynamicreadonly)
.Value = .oldvalue
RETURN
ENDIF

У меня на MouseUp и Keypress тоже стоит код для DynamicReadonly, но там моя специфика
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Собственно ReadOnly текстбокса "не канает" поскольку перебивается настройкой ReadOnly самой колонки. Дёргать же из ARCC именно ReadOnly колонок... Ну я бы сказал что это ненадёжно.
Кстати, если речь идёт про "курсор", то вполне себе можно воспользоваться его буфером (конечно же в таблично-буферизованном режиме, никак не в "строчном") - банально "откатывая" все изменения из записей которые не следует изменять. Да, сами их в гриде неплохо бы и подкрашивать, чтобы пользователь сразу понимал что тут "нечего ловить"


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
На KeyPress текстбокса тоже получается глушить.
Бывает надо для числовых текстбоксов глушить его нативные символы, а разные буковки использовать для частных функций по задаче.
ReadOnly не поможет, он вообще, в гриде какой-то убогий
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Да по большому счету поскольку речь про запись, то skip`ать ее пока не будет if Enabled.
Не нравится мне идея менять/возвращать данные, шунтировать в том числе и прочее.
Если есть возможность простого запрета ввода. Как в моем примере. Или есть конкретные возражения.

Не спора ради. Познания для.
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Поскольку сам такого никогда не пользовал, то приведенный мной пример, протестировал на обычном гриде.
Всего 3 строки)
Работает.
Поле, которое управляет ReadOnly по любому должно быть.
Taran у тя коду поболе будет)
Taran
Не спора ради. Познания для.
Присоединяюсь)
Поскольку тест маленький, возможно не выявил чего то.
Но... ничего не выявил, работает


------------------
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
Burn

Сообщений: 5643
Откуда: Днепр
Дата регистрации: 02.01.2002
Igor Korolyov
Собственно ReadOnly текстбокса "не канает" поскольку перебивается настройкой ReadOnly самой колонки.
Никогда бы не подумал - ReadOnly колонки имеет выше приоритет чем ReadOnly GRID-а. Думал по аналогии что у текстбокса приоритет выше чем у колонки

ЗЫ ReadOnly текстбокса никогда не использовал но все равно спасибо
Ratings: 0 negative/0 positive
Re: Как блокировать для ввода отдельные строки в грид?
pasha_usue
Автор

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Аспид
Поскольку сам такого никогда не пользовал, то приведенный мной пример, протестировал на обычном гриде.
Всего 3 строки)
Я сталкивался с тем, что когда дёргаешь ReadOnly колонки, при стохастических движениях мышью и клавиатурой, иногда некорректно дисаблился контрол. Не скажу точно, это фича 8-ки, или какого-то из билдов 9-ки. Но факт, когда я на это напоролся, я перешёл на DynamicCurrentControl.
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 Sejko  (Гостей: 7)

© 2000-2024 Fox Club 
Яндекс.Метрика