|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
Отсеивание данных18.11.2012, 19:36. Показов 3130. Ответов 30
Метки нет (Все метки)
Здравствуйте всем! Помогите пожалуйста с такой проблемой: есть таблица (ADOTable) размещенная на форме с помощью DBGrid. Ее нужно отфильтровать последовательно сужая диапазон значений. То есть хочется так: клик по радиогруппе - таблица отфильтровалась, клик еще раз по радиогруппе - таблица отфильтровала оставшиеся после первой фильтрации данные и так далее. пробовал различные вариации фильтрации (в частности с оператором and) ничего не вышло, потому что при этом способе определяю кучу условий в одну строку, а таблица фильтруется только по первому клику, по второму уже нет... Может есть у кого какие мысли по этому поводу? Если есть поделитесь пожалуйста.
0
|
|
| 18.11.2012, 19:36 | |
|
Ответы с готовыми решениями:
30
Типизированный файл: сортировка, отсеивание и поиск последовательное отсеивание данных фильтрами в dbgrid |
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 18.11.2012, 20:12 | |
|
Использовать для формирования составного условия фильтрации единственную радиогруппу - затея для истинных извращенцев.
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:15 [ТС] | |
|
я бы тоже хотел сказать это в лицо преподавателю)
Добавлено через 1 минуту при чем с радиогруппой как раз и не возникает проблем)
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 18.11.2012, 20:17 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:19 [ТС] | |
|
проблема не в радиогруппе а в том как составить фильтр
Добавлено через 1 минуту у меня по клику радиогруппы ставиться ADOTable1.Filtered:=True;
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|||
| 18.11.2012, 20:25 | |||
|
Как ты его забубенишь - с использованием радиогруппы или без оной - это уже не столь важно и не принципиально. Добавлено через 1 минуту ADOTable1.Filtered:=False; ADOTable1.Filter := .. новое условие фильтрации .. ADOTable1.Filtered:=True;
0
|
|||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:28 [ТС] | |
|
вот конкретно здесь и проблема. мне при следующем клике радиогруппы не нужно ADOTable1.Filtered:=False; Вот только я начинаю догадываться что это не реально. У меня смысл в том что бы программа фильтровала, фильтровала и т.д. что бы оставалось все меньше и меньше данных в таблице с каждым шагом.
0
|
|
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|||||||
| 18.11.2012, 20:34 | |||||||
|
FroZko,
Добавлено через 3 минуты
1
|
|||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 18.11.2012, 20:34 | ||
|
Установил фильтр 'Имя'='Вася' - получил 10 записей. Установил другой фильтр 'Имя'='Вася' и "Фамилия"="Пупкин" - получил 5 записей. Установил третий фильтр 'Имя'='Вася' и "Фамилия"="Пупкин" и "Статус"="Школоло" - получил 2 записи. Чем тебе не последовательное использование условий фильтрации ?
1
|
||
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
| 18.11.2012, 20:35 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:38 [ТС] | |
|
stupidstudent, спасибо попробую проглотить Ваш вариант.
mss, очень хорошая мысль про последовательность, сейчас буду думать как старый фильтр прилепить к новому. спасибо всем!
0
|
|
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|||||||
| 18.11.2012, 20:40 | |||||||
|
пробуй так
Добавлено через 1 минуту
0
|
|||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 18.11.2012, 20:41 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:41 [ТС] | |
|
хм хорошая мысль, только проблема в том, что я заведомо не знаю ко какому критерию буду фильтровать (имя, фамилия, отчество). может быть и такое что сначала отчество, потом имя, а потом фамилия.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 18.11.2012, 20:44 | ||
|
Ты вообще ерунду предложил, ибо автору по его же словам нужно по клику усложнить условия отбора, опираясь на ранее задававшиеся условия. А у тебя каждый клик приводит к заданию какого-то одного из трех различных фиксированных условий.
0
|
||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:48 [ТС] | |
|
mss, ход мыслей очень подходит. а как это реализовать допустим в клик кнопки? может запихать 1-й фильтр в переменную, на следующем шаге сделать filter:=1-й фильтр+новый фильтр? и т.д.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 18.11.2012, 20:48 | ||
|
Что так что эдак - получишь в результате те же самые N записей. Ты не путай кислое с зеленым - этот порядок влияет на сортировку записей в возвращаемом НД. а не на собственно отбираемые записи.
0
|
||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:50 [ТС] | |
|
тут Вы не много не правы. Если фильтровать таблицу из 200 допустим записей сначала по Ивановым, а потом по Александрам, то результат будет один, а если сначала фильтровать по Александрам, а потом по ивановым то результат уже другой будет.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 18.11.2012, 20:53 | ||
|
кликнул кнопку, инкрементировал индекс i, в цикле пробежал по всем записям из FltConds от самой первой до i-ой, построил новый фильтр, отфильтровал по нему таблицу вуаля.
0
|
||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 18.11.2012, 20:57 [ТС] | |
|
благодарю!
0
|
|
| 18.11.2012, 20:57 | |
|
Помогаю со студенческими работами здесь
20
Отсеивание массивов Отсеивание в элементе
Отсеивание по дате. Программа на отсеивание 4х значных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|