![]() |
|
|
![]()
|
|
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
Имеется DbGrid и DbLookUpComboBox, DbLookUpComboBox должен брать данные из другой таблицы и передавать их в главную, но при выборе значения в главном DbGrid'е просто показывается та строка какое и значение у DbLookUpComboBox, а при выборе значения в DbGrid'е меняется значение DbLookUpComboBox на такое же как в DbGrid. Как устранить ошибку, чтобы при выборе значения надо было бы нажать кнопку чтобы значение из DbLookUpComboBox перенеслось в DbGrid, а без её нажатия просто показывались бы её значения ? и как сделать чтобы значения имеющиеся в главном гриде не отображались в DbLookUpComboBox ?
|
|||
|
||||
| sexton |
|
|||
![]() sexton=Пономарь (eng) ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 5.5.2004 Где: Ульяновск Репутация: нет Всего: 9 |
А почему нельзя комбобокс в грид встроить? DBGridEh это умеет...
|
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Value, просто не указывай у DBlookupComboBox свойства DataSource и DataField. А по нажатию на кнопку, считывай значение из DBLookupComboBoxю.KeyValue и сохраняй в нужное поле DBGrida
|
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
как сделать чтобы значения имеющиеся в главном гриде не отображались в DbLookUpComboBox ?
|
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Чтобы отфильтровать какие-либо значения воспользуйся фильтром =) (свойство Filter и Filtered у компонента TTable/TQuery, из которого DBLookupComboBox берёт значения) |
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
установил filtered в true подскажите примерный код свойства filter чтобы в лукапе значения не отображались...
|
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
насколько я понимаю там используется синтаксис аналогичный заданию условий в Where части SQL-запроса.
например MyDataset.Filter:='name <>'+ QuotedStr('Вася') + 'AND name <>'+QuotedStr('Петя'); MyDataset.Filtered:=True; MyDataset.Refresh; В лукапе не будут отображаться записи у которых поле name равно "Вася" или "Петя". |
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
а можно написать вот так ?
if MyDataset.Filter=DbLookUpComboBox1.keyvalue then MyDataset.Filtered:=True else MyDataset.filtered:=false; MyDataset.Refresh; |
|||
|
||||
| sexton |
|
|||
![]() sexton=Пономарь (eng) ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 5.5.2004 Где: Ульяновск Репутация: нет Всего: 9 |
Нет, так нельзя. В Filter должно быть хоть какое-то условие.
|
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
но ведь пользователь не будетзнать какие значения есть а каких нет
а нужно если в в главном гриде есть эти значения то их не должно быть в лукапе, значит надо переделать строку MyDataset.Filter:='name <>'+ QuotedStr('Вася') + 'AND name <>'+QuotedStr('Петя'); |
|||
|
||||
| sexton |
|
|||
![]() sexton=Пономарь (eng) ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 5.5.2004 Где: Ульяновск Репутация: нет Всего: 9 |
Именно
|
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
как тогда 'name <>'+ QuotedStr('Вася') + 'AND name <>'+QuotedStr('Петя'); переделать ?
|
|||
|
||||
| sexton |
|
||||
![]() sexton=Пономарь (eng) ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 5.5.2004 Где: Ульяновск Репутация: нет Всего: 9 |
1. Формируем фильтр 1-й раз
2. Для дальнейшей фильтрации:
где ID - ключевое поле датасета. А вообще можно другим путем пойти - реализовать фильтрацию через sql-запросы. Если конечно у тебя датасеты для грида и комбобокса разные... |
||||
|
|||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
Вот ещё вопрос...
Хочу ввести лукап со странами, мне для неё создавать новую таблицу и вводить все страны или есть какой нибудь способ полегче ? |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
таблицу всё-таки придётся создать, а вот список стран вручную составлять совершенно необязательно. В интернете можно найти практически любые списки в csv или txt файлах, и импортировать эти данные в свою таблицу. |
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
ещё вопрос с DbLookUpComboBox.
создал две таблицы в одну из которых надо просто ввести название цветка(1), а в другую надо ввести его описание(2). создал отдельную форму для поиска где установил DbLookUpComboBox и radiobutton, при выборе radiobutton в лукапе отображается выпадаемый список со значениями (1). вопрос 1: Можно ли вводить в DbLookUpComboBox текст, чтобы при этом фильтровались значения (1) (а то когда я в коде ввожу dblookupcombobox1.text дельфи ругается "Can not assign to a read-only property"). для вывода результатов поиска создал форму в котором присутствует dbgrid и dbimage, грид сваязал с таблицей (2). выбрав значение в лукапе нажимаю форму чтобы мне открылась форма вывода результата, но мне выдаёт ошибку "Could not convert variant of type (String) into type (Duoble)" Вопрос 2: в чём здесь моя ошибка ? Пример кода для кнопки
Это сообщение отредактировал(а) Value - 22.12.2005, 17:03 |
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
если не отвечаете то тогда другой вопросик. Как в лукапе сделать чтобы было сразу видно первое значение выпадающего списка или значение (своя нвдпись) по умолчанию ? а то у меня он пустой сразу появляется а пробуя изменить свойство Text ругается "Can not assign to a read-only property"
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |