![]() |
|
|
![]()
|
|
| Uxas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Здравствуйте. Как обработать клик вы выпадающем списке lookop поля?. Расскажу для чего это мне нужно, может можно сделать как то иначе. У меня есть таблица языков, первое поле код страны, второе - код языка. Код страны в этом случае будет одно и то же число (я редактирую данные о стране в отдельном окне) у одной страны несколько языков, надо сделать так чтобы нельзя было выбрать в поисковом поле тот язык который уже есть у данной страны, то есть надо как то проверить есть ли такая запись уже в таблице если есть то выдать сообщение об ошибке. Или как то сделать чтобы те языки которые уже есть вообще не отображались в выпадающем списке.
|
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Можно проверку написать в событие BeforPost компонента АдоКвери или Адотабле или что там используется
Это сообщение отредактировал(а) chip_and_dayl - 22.2.2011, 00:27 -------------------- Фсё будет хорошо!!! |
|||
|
||||
| Uxas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Можно поподробнее?
|
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Должно выйти что-то типа
Как делать проверку я думаю сможете? считать данные которые выбрал пользователь и найти совпалдение -------------------- Фсё будет хорошо!!! |
|||
|
||||
| Uxas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Я еще плохо соображаю в этих делах, можете расписать подробно как сделать проверку? как выцепить значение которое пользователь выбрал в выпадающем списке?
|
|||
|
||||
| chip_and_dayl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Вам в принципе нужно не на поле Lookup опираться.
В момент когда пользователь выбрал из списка язык и кликнул допустим по другой ячейке, что вызывает автоматически метод Пост. Так вот, если перед моментом сохранения сделать проверку поле Язык (это делается в BeforePost), то можно отменить операцию сохранения Одним словом сделайте следующее в BeforePost вставте следующий код
То в момент сохранения вы увидете язык который ввел пользователь. Увидите до того, как запись еще сохранена в базе. А теперь если сделать следующее:
То беж у нас есть ф-ция FuncValidate, которая делает проверку, а не задан уже этот язык для этой страны. Как реализовать эту ф-цию? Ну способов множество. Один из вариантов , ф-ция принимает код страны, и код языка. А в теле ф-ции выполняется запрос, который смотрит в базу, есть ли уже такое сочетание данных Это сообщение отредактировал(а) chip_and_dayl - 22.2.2011, 17:59 -------------------- Фсё будет хорошо!!! |
||||
|
|||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 1 Всего: 15 |
А не проще ли использовать параметризированный запрос, по клику на контроле страны?
что - то типа;
|
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Контрол рисует ДбГрид поэтому так просто не сделать. Точнее не подсунуть ему свой запрос
-------------------- Фсё будет хорошо!!! |
|||
|
||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 1 Всего: 15 |
ещё раз: пользователь выбирает в lookup язык, в этот момент отправляем серверу запрос, подобный описанному выше и lookup заполниться нужными нам значениями. Или ещё лучший вариант - использовать фильтр датасета. Каким боком эдесь грид и отрисовываемый им контрол? Как мне кажется, здесь надо работать с наборами данных. |
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
cat512
ММм, здесь же используется не компонент DBLookUP, а поле типа LookUp -------------------- Фсё будет хорошо!!! |
|||
|
||||
![]()
|
| Правила форума "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. |