LookUpCombo в IBObjects 4.5 в гриде
Модератор: kdv
LookUpCombo в IBObjects 4.5 в гриде
Так и не понял, как засунуть в IB_Grid компонент IB_LookUpCombo (использую библиотеку IBObjects 4.5). В хелпе довольно подробно рассказано, как затолкать грид в комбо. Или LookUpList. А вот как сделать наоборот - так и непонятно.
Может, кто сталкивался? Напоминаю, что речь идет о библиотеке IBO.
Может, кто сталкивался? Напоминаю, что речь идет о библиотеке IBO.
-
- Сообщения: 41
- Зарегистрирован: 27 окт 2004, 11:06
Re: LookUpCombo в IBObjects 4.5 в гриде
Все довольно просто:solo писал(а):Так и не понял, как засунуть в IB_Grid компонент IB_LookUpCombo (использую библиотеку IBObjects 4.5). В хелпе довольно подробно рассказано, как затолкать грид в комбо. Или LookUpList. А вот как сделать наоборот - так и непонятно.
Может, кто сталкивался? Напоминаю, что речь идет о библиотеке IBO.
1) Ложишь на форму IB_Grid и IB_Query+IB_DataSource для грида
(QGrid, DSGrid)
2) Ложишь на IB_Grid IB_LookupCombo и IB_Query+IB_Datasource для Lookup`a (QLook, DSQ)
3) Пишешь для QGrid Update,Insert,Delete SQL
4) Ставишь у QLook KeySource=DSGrid и прописываешь KeyLinks
5) Вводишь отображаемое поле IB_Lookup1.DisplayField:=???;
Пример:
Пусть есть 2 таблицы:
Код: Выделить всё
/*ошибки пользователя*/
CREATE TABLE ER( ID integer, /*PK*/
ERRDATE DATE,
ERRDESCRIPT varchar(100),
STATE integer); /*FK на ESREF*/
/*состояние (справочник)*/
CREATE TABLE ESREF (ID integer, /*PK*/
ETYPENAME varchar(100));
Код: Выделить всё
QGrid.SQL.Text:='SELECT ER.ID, ER.ERRDATE,ER.ERRDESCRIPT,ER.STATE, ESREF.ETYPENAME FROM ER, ESREF WHERE ER.STATE=ESREF.ID ';
Код: Выделить всё
QLook.SQL.Text:='SELECT * FROM ESREF';
QLook.KeySource:=DSGrid;
QLook.KeyLinks.Add('ESREF.ID=ER.STATE');
IBLook.DisplayField:='ETYPENAME';
-
Re: LookUpCombo в IBObjects 4.5 в гриде
Dmitry Beloshistov писал(а):...
Надеюсь, обьяснил доходчиво...

Re: LookUpCombo в IBObjects 4.5 в гриде
Dmitry Beloshistov писал(а): Пример:
Пусть есть 2 таблицы:Код: Выделить всё
/*ошибки пользователя*/ CREATE TABLE ER( ID integer, /*PK*/ ERRDATE DATE, ERRDESCRIPT varchar(100), [b]STATE integer); /*FK на ESREF*/ [/b] [/quote] Что-то не могу создать форин-ключ (использую IBExpert). Больше в этот момент базу никто не использует, и сама Delphi закрыта вообще. Может быть, ключевые поля должны рядом находиться? У меня так: Главная таблица TARIFS имеет 4 поля: ID - первичный ключ S_NAME (varchar 50) - наименование услуги S_PRICE (дабл пресижн) - Стоимость услуги [b]NUM_SPOS[/b] (integer) - номер способа расчета LооkUp-ная таблица SPOSOB (то-есть как раз способы расчета) [b]NUM_SPOS[/b] (Первичный ключ PK_SPOSOB) NAM_SPOS (varchar 50) - наименование способа Пытаюсь сделать FK для таблицы TARIFS с поля NUM_SPOS на таблицу SPOSOB на поле NUM_SPOS (там другого и нет). Он и скрипт формирует без ошибки, но при попытке запуска скрипта кричит, что Violation на ключе PK_SPOSOB
-
- Сообщения: 41
- Зарегистрирован: 27 окт 2004, 11:06
Re: LookUpCombo в IBObjects 4.5 в гриде
1. Для примера в принципе FK можно и не создавать.solo писал(а): Что-то не могу создать форин-ключ (использую IBExpert).
Больше в этот момент базу никто не использует, и сама Delphi закрыта вообще.
Может быть, ключевые поля должны рядом находиться?
2. Delphi тут вообще никаким боком не касается
3. Расположение ключевых полей тоже пофигу - у меня есть таблицы у которых 7-10 FK и разбросаны поля как бог (тьфу, я - как sysdba

4. Попробуй переконектиться к базе перед созданием FK.
Re: LookUpCombo в IBObjects 4.5 в гриде
Все-таки создалDmitry Beloshistov писал(а):solo писал(а): 1. Для примера в принципе FK можно и не создавать.
2. Delphi тут вообще никаким боком не касается
3. Расположение ключевых полей тоже пофигу - у меня есть таблицы у которых 7-10 FK и разбросаны поля как бог (тьфу, я - как sysdba) на душу положит.
4. Попробуй переконектиться к базе перед созданием FK.

Вставить LookUpCombo в грид тоже получилось, правда, он пустой, но кажется, я допер - туда надо IB_LookUpList или другой грид вставлять.
Ну, вроде вопрос закрыт. Спасибо
