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

Вниз

Не могу в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
14-1125395374
data
2005-08-30 13:49
2005.09.25
Телефоном i-Mate JAM ?


14-1125681754
lookin
2005-09-02 21:22
2005.09.25
Еврохоккей тур


3-1123759223
Juice
2005-08-11 15:20
2005.09.25
Join с параметром ХП


14-1125844158
Saint-Virus
2005-09-04 18:29
2005.09.25
Про спутниковый интернет


3-1123757311
Marat
2005-08-11 14:48
2005.09.25
Долгий поиск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский