|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.04.2008, 18:57 | #1 |
Пользователь
Регистрация: 19.04.2008
Сообщений: 10
|
Фильтр
Привет всем!
У меня ни как не получается фильтрование данных, пишит вот такую ошибку: 'Filter cannot be used for detail tables' Код: begin If Length(C1.Text)>0 then Form8.TableOcenki.Filtered:=True else Form8.TableOcenki.Filtered:=False; Form8.TableOcenki.Filter:='Semestr> '''+C1.Text+''''; end; Если кто знает помогите пожалуйста. |
29.04.2008, 08:22 | #2 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Цитата из книги Флёнова "Бииблия программиста"
Для поиска в компоненте TADOTable есть свойство Filter. В нём можно указывать условие, по которому будут отображаться данные. Например, ты можешь указать там отображение только записей, в которых поле «Фамилия» содержит значение «Сидоров». Но для того, чтобы фильтр заработал, надо ещё установить свойство Filtered нашей таблицы в true. После этого можно изменять свойство Filter и все изменения сразу же будут вступать в силу. Свойство Filter – это строка. В ней нужно писать текст условия в виде: Поле [Оператор сравнения] ‘Значение’ Например, если ты хочешь отобразить все записи, в которых поле «Фамилия» равно значению «Сидоров», то нужно написать: AdoTable1.Filter:=’Фамилия=’’Сидоро в’’’; Обрати внимание, что значение нужно указывать в одинарных кавычках. Но так как одинарные кавычки используются в Delphi для ограничения строк, то тут приходиться немного включить соображение. Чтобы внутри строки поставить одинарную кавычку, её нужно поставить дважды: ‘После этого текста будет одинарная кавычка’’ это продолжение текста’ Именно таким способом я ставлю перед значением одинарную кавычку. После значения мне нужно поставить одинарную кавычку и закрыть строку, поэтому я ставлю три одинарных кавычки (две для того, чтобы поставить кавычку для значения и одна для конца строки). Это был пример простейшего условие на равенство. Ты можешь использовать любые другие операторы сравнения (больше или меньше). А можно даже создавать составные операторы сравнения, в которых сравнивается сразу два или более значений. Например: AdoTable1.Filter:=’Фамилия=’’Сидоро в’’ or Телефон=’’3326523’’’; |
29.04.2008, 18:30 | #3 |
Пользователь
Регистрация: 19.04.2008
Сообщений: 10
|
не работает
такую же ошибку выдает |
29.04.2008, 23:29 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Инночка, я не спец, но, похоже, вы используете связь таблиц "Master - Detail" и для подчинённой таблицы нельзя задавать фильтрацию (если я правильно понял сообщение об ошибке!).
|
30.04.2008, 20:27 | #5 |
Пользователь
Регистрация: 19.04.2008
Сообщений: 10
|
Так и есть, ой спасибо. Нужно что нибудь другое прдумать.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фильтр приложений | One.Love | Общие вопросы Delphi | 7 | 08.09.2008 01:10 |
Запрос или Фильтр | wolfik0 | БД в Delphi | 3 | 02.05.2008 04:42 |
Фильтр в базе | Versifikator | БД в Delphi | 3 | 18.04.2008 10:35 |
фильтр в DBGrid | ГОСЕАН | БД в Delphi | 10 | 09.02.2008 12:51 |
Фильтр и поиск | emfw | БД в Delphi | 1 | 11.03.2007 11:01 |