:: Visual Foxpro, Foxpro for DOS
Grid и элемент combobox
seg856
Автор

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

Сообщений: 34580
Дата регистрации: 28.05.2002
Поместить в колонку столько комбобоксов, сколько имеется различных "источников данных" и переключать их через DynamicCurrentControl.

А вообще это плохой вариант интерфейса. Не следует в грид помещать комбо...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
На манипулировании источника комбобокса - может и никак.

Для изображения можно применить источник колонки - UDF(Поле, Поле_отвечающее_за_источник), менять значение можно например, в событии DblClick этого TextBox. По DblClick пусть инвертируется значение в "Поле"
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Такие таблицы-справочники объединяются в одну таблицу с добавлением еще одного ключевого поля.
Но работать с Combo в колонке действительно будет некомфортно, при любом щелчке будут одновременно с текущей записью переобновляться все Combo, и лучше будет использовать "всплывающее" при клике Combo.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
seg856
Автор

Сообщений: 272
Дата регистрации: 23.09.2010
of63, а что это за источник колонки?
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
ColumnX.ControlSource


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
seg856
Автор

Сообщений: 272
Дата регистрации: 23.09.2010
Использовать UDF - значит просто менять функцией значение "Обнаружен" на "Положительный"?
Но наверное, могут быть случаи, когда принимаемых значений для анализа может быть не два, а три или четыре, и нельзя установить соответствие с обнаружен/не обнаружен.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Может быть и не два выбора, тогда можно вывешивать на экране POPUP-менюшку с выбором.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
А что вы вообще хотите получить, зачем вам нужно заключать combobox в грид?
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
На GotFocus переопределять список комбобокса
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Тогда он переопределится и для не текущих строк грида, и в них будет изображено не то.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
Возможно подойдет такой вариант - вместо комбобокса по клику на ячейку грида динамически генерировать shortcut-меню с нужным наполнением.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Sawradym
Возможно подойдет такой вариант - вместо комбобокса по клику на ячейку грида динамически генерировать shortcut-меню с нужным наполнением.
Плюс UDF для первоначального заполнения.


------------------
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
Sawradym
Возможно подойдет такой вариант - вместо комбобокса по клику на ячейку грида динамически генерировать shortcut-меню с нужным наполнением.
Плюс UDF для первоначального заполнения.

Ну и как вы себе представляете это наполнение?
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Igor Korolyov

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


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
И что должно отображаться в данной колонке?
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
lulgu
И что должно отображаться в данной колонке?
А самому подумать... не?)))


------------------
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
lulgu
И что должно отображаться в данной колонке?
А самому подумать... не?)))

Я даже не представляю, чем вы ее можете наполнить, пути господни неисповедимы ...
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
lulgu
Аспид
Sawradym
Возможно подойдет такой вариант - вместо комбобокса по клику на ячейку грида динамически генерировать shortcut-меню с нужным наполнением.
Плюс UDF для первоначального заполнения.

Ну и как вы себе представляете это наполнение?
Да хошь так:
FUNCTION MyUDF
LPARAMETERS lnKod, lnType
LOCAL lcResult, lnSaveSelect
lcResult = "NULL"
lnSaveSelect = SELECT()
SELECT("CurSpr")
LOCATE FOR Kod = lnKod AND Type = lnType
IF FOUND()
lcResult = CurSpr.Name
ENDIF
SELECT(lnSaveSelect)
RETURN lcResult
ENDFUNC
А можно и CASE'ами, как вы любите.
Ratings: 0 negative/0 positive
Re: Grid и элемент combobox
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
pasha_usue
Ваш код дает ошибку вот в этой строчке:
LOCATE FOR Kod = lnKod AND Type = lnType
Ratings: 0 negative/0 positive


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

On-line: 15 (Гостей: 15)

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