Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
ВнизОпять о DBGrid и выпадающем списке Найти похожие ветки
← →
Thor234 (2008-11-14 18:23) [0]Добрый вечер мастера.
Перечитал кучу факов, делаю все как в этом факе
Итак, есть две таблицы, одна из них содержит ссылку (числовой 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)
Data set --> откуда мы будем брать строки описания, т.е Table2 Looku pKeys --> Ключевое поле Table2
ResultField --> наименование профессии из Table2
Жмем ОК
Теперь в DBGrid для Table1 данное поле будет содержать выпадающий список
с профессиями из Table2
В результате записям о человеке из таблицы1 верно соответствуют записи о проффессии из таблицы2, это то все верно, НО я не получаю выпадающего списка как должно быть, а получаю просто поля, хотя ведь выставляю, что поле должно быть Loockup
Использую IBDatabase, IBQuery, DataSource и DBGrid, СУБД FireBird
Помогите пожалуйста разобраться
← →
sniknik © (2008-11-14 19:14) [1]> НО я не получаю выпадающего списка как должно быть,
> а получаю просто поля, хотя ведь выставляю, что поле должно быть Loockup
а где смотришь? программу надо выполнить (т.е. не в режиме дизайна) и смотреть при редактирования поля, т.е. кликнуть на него мышкой или выделить и нажать ентер.
по описанию все правильно, и раз поле с профессией соответствует значит название верно "подтянулось" из второй таблицы, а раз так то и остальное должно работать.
← →
Thor234 (2008-11-14 19:20) [2]Вот в том то и дело, что я уже кучу факов перечитал, делаю все верно, уже несколько раз новый проект создавал- результат один: притягивается все верно, но без выпадающего списка...уже начинаю грешить на IBQuery или еще что-нибудь, я уже хз...
← →
sniknik © (2008-11-14 19:24) [3]может поставил полю readonly? или рекордсет получился "неживым"/не редактируемым, и тогда, не входя в редактирование, ты просто не можешь увидеть лукап в действии...
← →
Thor234 (2008-11-14 19:32) [4]sniknik
Проверил ридонли стоит False - отпадает
"или рекордсет получился "неживым"/не редактируемым" - а вот тут можно поподробней пожалуйста, что-то не понял как это проверить и что смотреть...
← →
sniknik © (2008-11-14 19:38) [5]проверить, попробуй другие поля по редактировать, результат сохраняется? если закрыть/открыть программу будут уже новые значения?
проверять лучше то поле которое у редактируется лукапом в таблице один, т.е.
> KeyFields --> имя числового поля Table1
его руками если оно рядом с лукапным в гриде стоит можешь изменить?
нет смысла если у тебя другие поля редактируемые а это нет.
← →
Thor234 (2008-11-14 20:00) [6]и действительно не одно поле я отредактировать не могу хотя записи выделяются и свойство DBGrid dgEditing - true, однако поле не редактируется вообще...ума не приложу в чем загвоздка
← →
Thor234 (2008-11-14 21:50) [7]Ребят ну может кто сталкивался помогите плиз.
Попробовал вместо IBQuery использовать IBTable и все замечательно работает, есть выпадающий список, хотя делаю тоже самое!
Видимо дело и вправду в том, что при использовании IBQuery таблица не редактируется, как решить эту проблему?
← →
AndreyV © (2008-11-14 22:07) [8]> [7] Thor234 (14.11.08 21:50)
TIBDataSet
← →
sniknik © (2008-11-14 22:20) [9]> Ребят ну может кто сталкивался помогите плиз.
а если не сталкивался, а просто разумный человек, и догадывается в чем там может быть дело, можно помочь? ;)
ты вообще там запросы на обновления прописал? это же фича IB компонент, многими превозносящаяся как самое удобное и естественное (можно сказать интуитивно понятное. ???)...
в списке используемого
> Использую IBDatabase, IBQuery, DataSource и DBGrid, СУБД FireBird
IBUpdateSQL нет.
может тебе сразу на ibase.ru ?
> TIBDataSet
да там пофигу, имхо, это же не ADO.
← →
Johnmen © (2008-11-14 22:39) [10]
> sniknik © (14.11.08 22:20) [9]
Просто аффтар залил пивом F1. Что извинительно.
Но, думается, он просто тормоз...:)
← →
AndreyV © (2008-11-14 23:04) [11]> [9] sniknik © (14.11.08 22:20)
> > TIBDataSet
> да там пофигу, имхо, это же не ADO.
Пусть сразу и пропишет в TIBDataSet без IBQuery и IBUpdateSQL.
← →
Thor234 (2008-11-15 03:14) [12]Johnmen
Вместо того, чтобы оскорблять, Вы лучше бы что-нибудь умное сказали, а если сказать нечего то лучше вообще молчать.
Всем остальным мастерам большое спасибо, во всем разобрался, очень выручили, спасибо!
← →
Германн © (2008-11-15 03:39) [13]
> Thor234 (15.11.08 03:14) [12]
Советую идти на север, Там точно никто не помешает!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.044 c