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

Вниз

Не могу в DBGridEh сделать выбор из другой таблицы в виде ComboBo   Найти похожие ветки 

 
AloneAli ©   (2005-08-12 11:48) [0]

Не могу в DBGridEh сделать выбор из другой таблицы в виде ComboBox.
Смотрю пример, но не получается что-то...
БД: Interbase, Delphi6.


 
ANB ©   (2005-08-12 11:50) [1]

Это не в гриде, а в дейтасете надо делать. А грид автоматом сам затянет.


 
AloneAli ©   (2005-08-12 11:54) [2]


> ANB ©   (12.08.05 11:50) [1]

А что в DataSet"е нужно делать?


 
AloneAli ©   (2005-08-15 11:27) [3]

Сделал то, что хотел.
Единственное, что не получается, это, чтобы в lookup"ом поле отображалось текущее значение. А оно не отображается. Только, когда нажимаешь на стрелочку, данные появляются, причем текущее значение выделено.

Ясно выразился?


 
sniknik ©   (2005-08-15 11:41) [4]

> Ясно выразился?
нет.
ясно - это когда по твоим словам можно повторить эффект, как это не работает (если ктото вдруг захочет тебе помочь и попытается воспроизвести именно так как у тебя. потому как если он будет делать по своему то у него все заработает... и неясно будет в чем же отличие).

p.s. сам спросил.


 
AloneAli ©   (2005-08-15 12:25) [5]


> sniknik ©   (15.08.05 11:41) [4]

Ок.
Есть две таблицы. Условно обозначим

I-й этап:
1. Первая - JobTitle (Должность)
        Поля:
           ID - integer primary key  
           Name - varchar(50)

2. Вторая - Jober (Работник)
        Поля:
           ID - integer primary key
           FIO - varchar(60)
           fJobTitle - integer foreign key JobTitle(ID)
Т.е. приведенные мною таблицы связаны полем fJobTitle

II-й этап:
1. Для первой таблицы
    ibdsJobTitle : TIBDataSet;
    dsJobTitle: TDataSource;
    Запрос на выборку: select * from JobTitle

2. Для второй таблицы
    ibdsJober : TIBDataSet;
    dsJober: TDataSource;
    Запрос на выборку: select * from Jober

III-й этап:
1. В ibdsJober завожу lookup-поле: JobTitle: TStringField
              LookupDataSet     : dsJobTitle;
              LookupKeyField    : ID;
              LookupResultField : Name;  
              KeyField          : fJobTitle

2. На форму кидаю dbgeJober: TDBGridEh. Добавляю Columns. Нас интересует JobTitle:
              ListSource : dsJobTitle;
              ListField  : Name;
              KeyField   : ID;
              DataField  : fJobTitle;

IV-й этап:
По логике у нас DBGrid дожлен выглядеть так:
|ФИО          | Должность            |
|Иванов       |    Президент РФ   \/ |

Но у меня выглядит так:                        
|ФИО          | Должность            |
|Иванов       |                   \/ |

Когда я щелкаю по стрелочке (\/), т.е. по полю "Должность", то высвечивается следующим образом:
|                            \/ |
|          Дворник              |
|          Сапожник             |
|         Президент РФ          |
|           Мэр                 |
|         Программист           |

Вопрос: почему у меня высвечивается поле "Должность" именно так, как я описал?

Надеюсь, ясно выразился?

Сам просил...


 
sniknik ©   (2005-08-15 13:43) [6]

> 2. На форму кидаю dbgeJober: TDBGridEh. Добавляю Columns. Нас интересует JobTitle:
>              ListSource : dsJobTitle;
>              ListField  : Name;
>              KeyField   : ID;
>              DataField  : fJobTitle;
вот это попробуй исключить. все что надо ты в датасетах сделал, незачем дублировать в гриде (не в курсе что это в DBGridEh значит, думаю аналог PickList или подобное)
в общем не делай никаких манипуляций с гридом, максимум добавить все поля и оставить все по умолчанию. а лучше вообще не заполняй грид полями.

и еще попробуй LookupCache поставить в труе
в дополнение к
> 1. В ibdsJober завожу lookup-поле: JobTitle: TStringField
(на случай если компоненты не закачивают данные до прямого обращения к ним)

и 3-е, жди спеца по DBGridEh/IB6, не по DBGrid/ADO ;о)). на этот раз понятно написано, должны разобраться (если захотят ;).


 
AloneAli ©   (2005-08-16 12:02) [7]

Заработало.

Решил все заново переделать:
1. Удалил dgeJober и поставил новый. Не помогло.
2. Удалил ibdsJober и dbgeJober. Поставил новые. Заработало.

Видно, какую-то галочку зря включил.



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1125627631
SergProger
2005-09-02 06:20
2005.09.25
Сообщения Windows


1-1125938184
Дмитрий_05
2005-09-05 20:36
2005.09.25
Какая версия Delphi лучше, D7 или D2005?


2-1124318172
Гриха
2005-08-18 02:36
2005.09.25
полный экран


3-1123583139
Juice
2005-08-09 14:25
2005.09.25
Сист. таблицы, узнать constraint некоего поля


2-1124396570
vitovt
2005-08-19 00:22
2005.09.25
E-mail