Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

Выпадающий список в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.047 c
2-1163938652
YesWa=>rOFF
2006-11-19 15:17
2006.12.10
Ошибка


15-1164079730
Slider007
2006-11-21 06:28
2006.12.10
С днем рождения ! 21 ноября


2-1164136349
tototo
2006-11-21 22:12
2006.12.10
Array of Char


2-1164300895
dreamse
2006-11-23 19:54
2006.12.10
Передача и получение строк из DLL


2-1164117819
d122342
2006-11-21 17:03
2006.12.10
Как получить хендлы кнопок чужой программы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский