Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

Выпадающий список в DBGrid   Найти похожие ветки 

 
ZiTrAX ©   (2006-11-03 00:26) [0]

Как реализовать выпадающий список в ячейке DBGrid (или DBGridEh)? Есть вариант - поверх ячейки помещать ComboBox в момент получения фокуса, но это слишком трудоёмкий для меня процесс (нужно находить координаты ячейки, динамически создавать ComboBox и т.д.). Мне интересно, а как это реализовано в IBExpert?


 
Германн ©   (2006-11-03 01:09) [1]

Как в IBExpert не знаю, а для DBGrid есть PickList.
DBGrid.Columns.Items[].PickList


 
unknown ©   (2006-11-03 01:20) [2]


> ZiTrAX ©   (03.11.06 00:26)
> Мне интересно, а как это реализовано в IBExpert?

В IBExpert используются компоненты DevExpress.
Как сделать в DBGridEh можно посмотреть в демке.


 
Германн ©   (2006-11-03 01:45) [3]


> unknown ©   (03.11.06 01:20) [2]
>
>
> > ZiTrAX ©   (03.11.06 00:26)
> > Мне интересно, а как это реализовано в IBExpert?
>
> В IBExpert используются компоненты DevExpress.

А на чём собсс-но основывается данное утверждение?


 
unknown ©   (2006-11-03 02:39) [4]


> Германн ©   (03.11.06 01:45) [3]
> А на чём собсс-но основывается данное утверждение?

Я знаком с компонентами DevExpress, по этому определил визуально :)
Можно, конечно и в ресурсах программы посмотреть:
object Grid: TdxDBGrid
...
   object gcFile: TdxDBGridButtonColumn
...
   object gcSize: TdxDBGridSpinColumn

и т.д.


 
Sergey13 ©   (2006-11-03 08:32) [5]

> [0] ZiTrAX ©   (03.11.06 00:26)

Если список, который выпадает - данные из другой таблицы, то это можно сделать через лукап-поля.


 
ZiTrAX ©   (2006-11-03 19:59) [6]


> Если список, который выпадает - данные из другой таблицы,
>  то это можно сделать через лукап-поля.

Сорри за глупый вопрос, а можно поподробнее здесь?


 
Desdechado ©   (2006-11-03 20:33) [7]

Lookup Fields + F1


 
Chort ©   (2006-11-03 20:58) [8]


> ZiTrAX ©   (03.11.06 19:59) [6]
>
> > Если список, который выпадает - данные из другой таблицы,
>
> >  то это можно сделать через лукап-поля.
>
> Сорри за глупый вопрос, а можно поподробнее здесь?

"Библия программиста"-решение и подробное описание такой задачи.


 
ZiTrAX ©   (2006-11-11 17:10) [9]

"Библия программиста"- а где можно найти эту книгу в электронном варианте (желательно, чтоб весила не много).
А теперь вопрос по поводу DBGridEh: где там находятся эти LookUp-поля? И если не трудно, подскажите, где в исходнике DEMO1 находится обработчик выпадающего списка в DBGridEh1 на PageControl1 (колонка VendorName)? Или как его обрабатывать? Что там надо делать? Я уже весь исходник просмотрел, но не могу понять, как оно делается :-(((. Мож, кто в нете видел конкретный разобранный пример работы с этим компонентом.
Помогите, PLEASE!


 
Desdechado ©   (2006-11-11 19:05) [10]

Лукапные поля там же, где и остальные поля - в датасете, а не в гриде. Грид - это просто рамка для визуализации датасета.
Примеры лукапов можно найти здесь
"C:\Program Files\Borland\Delphi7\Demos\Db\"
И не забывать нажимать F1 на непонятных словах :)


 
ZiTrAX ©   (2006-11-24 00:27) [11]

Народ! Помогите с этими лукапными полями!!! Сижу, как баран, перед исходником и не могу понять, в каком месте задаётся этот выпадающий список в DBGridEh. В датасете я ничего не нашёл ( а мож, плохо искал). Ну подскажите, плиззззззззз, как с ними бороться. А то я крышей так двинусь:-(((


 
Sergey13 ©   (2006-11-24 08:48) [12]

> [11] ZiTrAX ©   (24.11.06 00:27)

Чукча не читатель, чукча писатель? Или кнопка Ф1 начисто отсутствует? Так за 3 недели !!! можно было и клавиатуру поменять.


 
EIen ©   (2006-11-24 09:35) [13]

Можно примерно так:

1. Дважды щелкнуть на DBGrid
2. Добавить колонку
3. Указать поле которое будет показываться (свойство FieldName)
4. Заполнить список (свойство PickList)

А можно в место заполнения списка подключить сразу таблицу?

Да можно, Вам нужно в компоненте данных сделать Lookup поле.

1. Дважды щелкнуть мышкой на допустим TTable появится редактор полей
2. В редакторе полей правой кнопкой и New Field
3. Появится диалог в нем тип поля Lookup, настоить остальные св-ва

(если надо подробнее про другие свойства пишите).

Если не затруднит, то от описания я бы не отказался

Итак, есть две таблицы, одна из них содержит ссылку (числовой ID)
на вторую, где есть текствое описание чего-либо. Допустим - это таблица
человек и его специальность.
Наша цель - сделать так, чтобы при вводе/редактировании ФИО человека итд
в DBGrid из выпадающего списка можно было выбрать специальность.
Таблица человек --> Table1
Таблица специальности --> Table2
Путь решения - создание Lookup поля в Table1. Этапы
1. Вызываем редактор полей Table1, Click мышой
2. В редакторе полей правой кнопкой и New Field -> видим диалог
3. В диалоге
Name --> Profession (или как Вы его обзовете)
Type --> String
Size --> длина наименования профессии в Table2
FieldType --> Lookup
KeyFields --> имя числового поля Table1, в которое связывает нас с
Table2 (например prof_id)
Dataset --> откуда мы будем брать строки описания, т.е Table2
LookupKeys --> Ключевое поле Table2
ResultField --> наименование профессии из Table2
Жмем ОК
Теперь в DBGrid для Table1 данное поле будет содержать выпадающий список
с профессиями из Table2


 
ZiTrAX ©   (2006-11-24 20:37) [14]

to EIen: Большое спасибо за подробное объяснение. Теперь вроде разобрался.
to Sergey13: Что за долбаная привычка всех опускать??? Не знаешь ответа, не можешь ответить, не хочешь отвечать - так не отвечай вообще. Прочитал, мысленно выругался и оставил своё мнение при себе!!!



Страницы: 1 вся ветка

Текущий архив: 2006.12.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.033 c
15-1163946111
tesseract
2006-11-19 17:21
2006.12.10
Кредитка, нормальная


15-1163994028
Slider007
2006-11-20 06:40
2006.12.10
С днем рождения ! 19 ноября


2-1164008669
novice_man
2006-11-20 10:44
2006.12.10
Количество элементов ....


9-1139482424
VolanD666
2006-02-09 13:53
2006.12.10
Collision Detection II.


15-1163675742
ArtemESC
2006-11-16 14:15
2006.12.10
На речке, на речке, на том бережо--ооочке...