| ComboBox в Gride | |
|---|---|
|
Kol'ka |
Подскажите как в грид одну из колонок ссделать ComboBox-ом а данные в
ComboBox брать из другой таблицы |
| 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 окончено. |
| RE: ComboBox в Gride | |
|---|---|
|
Kol'ka |
Большое спасибо.
Теперь другая проблема: Как в колонках Grid-a с ComboBox, значения вносить вручную, не имеющихся в таблице ComboBox-а? (Если вношу его вручную получается нулевое значение) |
| 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> |
| RE: ComboBox в Gride | |
|---|---|
|
Urusov_Alex Сообщений: 270 Откуда: Россия МО г.Домодедово Дата регистрации: 13.09.2002 |
А могут ли сами фоксы автоматически распределять ID (типа счетчика в Access - e) или только руками в тригере добавления
|
| RE: ComboBox в Gride | |
|---|---|
|
Burn Сообщений: 5696 Откуда: Днепр Дата регистрации: 02.01.2002 |
Неа, автоинкрементного поля в Фоксе нет
Надо писать самому |
| 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 |
| RE: ComboBox в Gride | |
|---|---|
|
AnatolyS Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
СУПЕР!Что называется - "не прошло и два года", как получен ответ.
![]() |
| RE: ComboBox в Gride | |
|---|---|
|
Равиль Сообщений: 6720 Откуда: Уфа Дата регистрации: 01.08.2003 |
Точно, всего 1,5 года прошло ...------------------ Тяжело согнать курсором муху с монитора ... |
| © 2000-2026 Fox Club  |