:: Архив конференции по VFP до 2005 года
ComboBox в Gride
Kol'ka
Подскажите как в грид одну из колонок ссделать ComboBox-ом а данные в
ComboBox брать из другой таблицы
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Анатолий Широков
Автор

Сообщений: 4565
Откуда: Санкт-Петербург
Дата регистрации: 21.01.2002
Пусть имеется адресный реестр
address = (<b>addressid</b> i, <b><i>streetid</i></b> i, house c(10), block(10))
street = (<b>streetid</b> i, name c(50))
Необходимо отобразить Grid с улицей, домом и корпусом, причем для выбора улицы использовать ComboBox, учитывая <a href = "http://www.nsvisual.com/fox2/bug/view.php3?id=67">известный баг</a>.
Для этого необходимо:
1) Создать Grid с тремя колонками, назначив каждой соответствующий ControlSource: streetid, house, block. Как правило это делается путем перетаскивания таблицы address из среды данных на поле формы - в этом случае grid будет отображать все столбцы, лишние можно удалить. Другой способ, выделить в таблице address только требуемые столбы и начать перетаскивать нажав предварительно правую кнопку мыши, тогда при отпускании мыши на поле формы VFP уточнит Ваши намерения и Вы ответите ему, что хотите создать Grid. Третий способ - можно все это сделать в ручную, но об этом в другой раз.
2) Поместить в первую колонку ComboBox (выделить столбец grid-a, на панели Form Controls нажмите ComboBox, подведите курсор к столбу и нажмите левую кнопку мыши) настроив его в редакторе свойств следующим образом<pre>
.RecordSource = 'select name, str(streetid) from street order by 1 into cursor tstreet nofilter'
.RecordSourceType = 3 && SQL Statement.
.BoundColumn = 2
.Style = 2 && Drop-down List
.BoundTo = .t.</pre>
3) Далее в колонке с только что добавленным ComboBox выбираем в качестве CurrentControl - Combo1 (если не меняли умолчания) и требуем отображать ComboBox на каждой строке - Sparse = .f.

На этом создание нашего Grid-a окончено.
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Kol'ka
Большое спасибо.
Теперь другая проблема:
Как в колонках Grid-a с ComboBox, значения вносить вручную, не имеющихся в таблице ComboBox-а?
(Если вношу его вручную получается нулевое значение)
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Анатолий Широков
Автор

Сообщений: 4565
Откуда: Санкт-Петербург
Дата регистрации: 21.01.2002
Если все осталось как описано выше, то в этом случае, можно попробовать так (только для ручного редактирования, требуется изменить свойство Style с 2 на 0)
<pre>
ComboBox::Valid()
with This
if empty(.Value) && возможно ввели руками
if !empty(.DisplayValue) && да действительно введи
append blank in street
replace name with alltrim(.DisplayValue) in street
lnLastId = street.streetid
skip -1 in street && сняли блокировку если буферизация не используется
thisform.LockScreen = .t.
.Requery() && возможно займет продолжительное время
.Value = m.lnLastId && предполагается, что streetid распределяются автоматически
thisform.LockScreen = .f.
endif
endif
endwith
return 1 && отпустим его (пользователя) с богом
</pre>
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Urusov_Alex

Сообщений: 270
Откуда: Россия МО г.Домодедово
Дата регистрации: 13.09.2002
А могут ли сами фоксы автоматически распределять ID (типа счетчика в Access - e) или только руками в тригере добавления
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Burn

Сообщений: 5696
Откуда: Днепр
Дата регистрации: 02.01.2002
Неа, автоинкрементного поля в Фоксе нет Надо писать самому
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Saturn
Делается это так:

1- по правой кнопке мыши вызываем окно Properties
2- выбираем в нём оъект, который нужно удалить
3- не закрывая окна Properties, кликаем по заголовку окна Form Designer.
4- жмём клавишу Delete
5-кликаем на нужный объект из стандарных классов
6-Радуемся



Идея

"Cyrill Phomin" <cyrill@dci.mpei.ac.ru>
Organization: Moscow Power Engineering Institute
Date: Fri, 18 Dec 1998 21:32:19 +0300
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
AnatolyS

Сообщений: 4565
Откуда: Санкт-Петербург
Дата регистрации: 21.01.2002
СУПЕР!Что называется - "не прошло и два года", как получен ответ.
Ratings: 0 negative/0 positive
RE: ComboBox в Gride
Равиль

Сообщений: 6720
Откуда: Уфа
Дата регистрации: 01.08.2003
Точно, всего 1,5 года прошло ...




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive


Эта тема закрыта.

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

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