![]() |
|
|
![]()
|
|
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
Доброго времени суток.
Что делать если простой способ фильтрации не прокатывает
а sql использовать ну никак нельзя? Думаю, что можно брать строку из Ed_Filter.Text, по ней фильтровать справочник, а уже по полученным данным (id-ам) фильтровать основную таблицу. Но код получится палевый. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
1. Ощущение, что появится куча багов.
2. Думал может есть способ обойти этот момент. (чтобы tado не заметил подмены 3. Мне надо сделать поиск по 8 полям.. для каждого справочника надо будет создавать лист сортировки (список id-ов). и только потом отображать именно эти id-ы в основной таблице. Это сообщение отредактировал(а) DenisTv - 21.5.2009, 11:05 |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
...а мне вместе не надо =) Я ещё буду выбирать по какому полю фильтровать. А по поводу "волков бояться...", то зачем изобретать велосипед, если кто нибудь уже сталкивался и решил эту проблему. Вопрос на засыпку: "ЧЕм отличается обычное поле от лукапа?". Нельзя ли принудительно "посчитать" лукап перед вызовом, чтобы можно было обращаться как к обычному? |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
что-то вроде... лукап поле отображает значение "чужого" поля для значения своего поля... по аналогии с методом - отобразить значение поля A из набора 1, если поле B в наборе 2 = X... то есть отбражает значения из другого набора данных... Это сообщение отредактировал(а) Kbl4AH - 21.5.2009, 11:30 |
|||
|
||||
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
оно изменяет отображаемое значение при изменение значение кляючевого поля?... что значит посчитать лукап? нет значения в поле - отображается весь возможный список, есть значение в поле - отображается соответствующее значение... |
|||
|
||||
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
Дык то, что lookup - это полессылка понятно.
Подскажите каким образом реализуется событие OnFilterRecord компонента adotble. Конкретно как скрываются ненужные нам поля(не проходящие критерий). Допустим я получил список id-ов которые проходят критерий, теперь надо скрыть все остальные записи. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
| DenisTv |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
хх) Поиск ничего не дал.
Внимание! Возможно вопрос неправильно понят, ибо я написал НЕ "Как использовать onliteredrecord", а
это значит, что мне интересно, может кто знает, как работает модуль adodb, в котором находится компонент adotable. И в котором есть обработчик данного события (т.е. OnFilterRecord). Докопался только до массива FilterGroup, в который помещаеются записи, прошедшие критерий. А как скрытваются остальные найти не могу. ps/ нашел, много подобных сообщений, но ничего лучше как создать лукап поля в доп временном файле не придумано. Хотелось бы уже разобраться, при вашей помощи в сути вопроса, чтобы появилась хотя бы одна альтернатива существующему решению. Это сообщение отредактировал(а) DenisTv - 24.5.2009, 19:38 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
:\ раз два три четыре - фильтрация данных в Delphi OnFliterRecord работает во всех датасетах одинаково, в том числе и у TAdoTable. Если я ошибаюсь, то поправьте меня. DenisTv, покажи свой код, какие проблемы, что не работает? Добавлено через 3 минуты может
|
|||
|
||||
| DenisTv |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
Два и три одно и тоже?
Akella, обычный способ фильтрации не действует на лукап поля. Вылетает ошибка "не удается найти объект в семействе...". Или я чего то недопонимаю? Добавлено через 6 минут и 4 секунды Не думаю, что код поможет, но всё же..
|
||||
|
|||||
| Akella |
|
||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
ты думаешь, что больше поможет пустая дискуссия? Добавлено @ 11:04 DenisTv, советую использовать или фильтр или onfilerRecord Добавлено @ 11:05
Вначале присвой условие свойству Filter, а затем уже включай фильрацию: Ado_Table_zak.Filtered:=true Добавлено через 4 минуты и 48 секунд
можно заменить на:
или
Добавлено через 12 минут и 31 секунду Какие значения "живут" в лукап-поле?? Можешь привести? Master_s и Clients_s - это и есть лукап-поля? Где, в какой строке ошибка. Блин, пока всю инфу из тебя вытащишь, отпадёт всё желание помогать Это сообщение отредактировал(а) Akella - 25.5.2009, 11:06 |
||||||||
|
|||||||||
![]()
|
| Правила форума "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. |