Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле со списком в DBGrid [D6, D7]


VS2002 ©   (2002-12-29 06:32:00) 

Имеется таблица №1 (Oracle) со след. структурой:
Поле1
Поле2
...
Код сотрудника(Числовое)

В таблице №2 хранится список сотрудников со след. структурой:
Код (Числовой)
Фамилия (Текстовый)
Имя (Текстовый)
Отчество (Текстовый)
...

Необходимо в DBGrid для таблицы №1, поле "Код сотрудника", сделать выбор фамилий из списка из таблицы №2 таким образом, чтобы в списке отображались фамилии, а реально заносился в таблицу код сотрудника.


stranger71   (2002-12-29 09:38:00) [1]

ИМХО
TQuery в этом смысле (lookup-поля) ничем не отличается от TTable.

Сортировать по лукапу можно, если использовать подобный запрос:
Select T1.*
from Table1 T1, Table2 T2
where t1.Cod=t2.Cod
order by T2.FIO

З.Ы. Метод, предложенный Sergey13 ничуть не хуже, хотя есть свои нюансы реализации


Sergey13   (2002-12-29 09:25:00) [2]

2Lord Warlock © (29.12.02 09:09)
TTable для Оракла, ИМХО, не есть гут.

2VS2002 (29.12.02 06:32)
Можно конечно и лукапом, но я бы не стал такого делать. Особенно если число людей в списке больше 10-20 - заморишься выбирать из такого списка. Лучше это(смену человека) реализовать через отдельную форму. А в имеющейся форме добавить поле с фамилией в текст запроса. Кроме всего прочего по лукапу нельзя сортировать, а в случае с фамилиями это наверняка потребуется.


Lord Warlock   (2002-12-29 09:09:00) [3]

Это стандартная ситуация для создания LookUp поля, где вместо номера подставляется поле из другой таблицы. В этом случае лучше использовать компонент TTable, функциональность, которую ты хочешь будет реализована автоматически. В случае с использованием TQuery я не уверен, не пробовал. Может быть сработает, а может и нет...


BorisUK   (2002-12-29 07:35:00) [4]

Select *.T1, *.T2 from Table1 T1, Table2 T2 where t1.Cod=t2.Cod
А в гриде поставь Visible = flse для колонок, оторые ты не хочешь показывать юзеру...
Или тебе надо отображать таблу 1 , но только вместо кода ФИО...
Просто непонятно.... Перерисовывай с подстановкой чего надо...
Ну лучше Query (как выше написал) и лишние поля сразу в Query исключи или потом видимость настрой..

Или тебе надо чтоб в Гриде по этому полю LookUp на ФИО работал...
Вроде тоже не проблема... возьми EhGrid к примеру

Что надо то?


Наверх

Титульная страница Поиск, карта сайта Написать письмо