|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
Отсеивание данных18.11.2012, 19:36. Показов 3396. Ответов 30
Метки нет (Все метки)
Здравствуйте всем! Помогите пожалуйста с такой проблемой: есть таблица (ADOTable) размещенная на форме с помощью DBGrid. Ее нужно отфильтровать последовательно сужая диапазон значений. То есть хочется так: клик по радиогруппе - таблица отфильтровалась, клик еще раз по радиогруппе - таблица отфильтровала оставшиеся после первой фильтрации данные и так далее. пробовал различные вариации фильтрации (в частности с оператором and) ничего не вышло, потому что при этом способе определяю кучу условий в одну строку, а таблица фильтруется только по первому клику, по второму уже нет... Может есть у кого какие мысли по этому поводу? Если есть поделитесь пожалуйста.
0
|
|
| 18.11.2012, 19:36 | |
|
Ответы с готовыми решениями:
30
Типизированный файл: сортировка, отсеивание и поиск последовательное отсеивание данных фильтрами в dbgrid |
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 18.11.2012, 20:59 | |
|
0
|
|
|
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
|
||||||||||||
| 19.11.2012, 06:01 | ||||||||||||
|
FroZko, похоже, с ADOTable так не получится, т.к. набор данных не накапливается. Нужно на первый выбор повесить одно условие, а на второй уже первое и сужающее второе и т.д. Название поля и текст условия задавать через переменные.
Думаю, надо что-то типа этого соорудить уже для сужающего условия:
0
|
||||||||||||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 19.11.2012, 07:30 [ТС] | |
|
а как вам пример того, когда вы приходите к терапевту и он начинает задавать вам вопросы по поводу вашего здоровья, на которые вы последовательно отвечаете и тем же отсеивающим методом терапевт определяет что болит и отправляет к нужному врачу. попробуйте представить что будет если терапевт будет задавать вопросы в другом порядке. я думаю к своему врачу вы не попадете.
Добавлено через 21 секунду но в любом случае спасибо за код)
0
|
|
|
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
|
|||
| 19.11.2012, 07:49 | |||
|
Допустим, алгоритм работал бы так, как вы хотели, т.е. формировал бы список по первому фильтру, а потом по второму. Вот вам список: Вася Иванов Коля Сидоров Коля Иванов Вариант 1. Фильтруем по "Коля", получим: Коля Сидоров Коля Иванов Фильтруем по Иванов, получим: Коля Иванов Вариант 2. Фильтруем по Иванов, получим: Вася Иванов Коля Иванов Фильтруем по Коля, получим? Коля Иванов. В обоих вариантах получился Коля Иванов.
0
|
|||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 19.11.2012, 10:21 [ТС] | |
|
пример как раз таки корректный. мое задание в итоге написать экспертную систему. думаю вам объяснять что это такое нет смысле. эта система будет осуществлять подбор автомобилей по характеристикам. 25 характеристик (марка, кузов, кпп и т.д.) записей в бд примерно 2500 автомобилей. давайте попробуем отфильтровать их сначала по одному случайному набору параметров (КПП, кузов, цвет, привод, турбо, аварийность, расход на 100 летом, разгон до 100, клиренс) и по другому набору параметров, который вы делаете уже осмысленно, и ранжируете эти параметры в зависимости от их важности для вас (привод, кузов, кпп, клиренс, разгон до 100, турбо, расход на 100 летом, аварийность, цвет). да записей получится одинаковое количество, но во втором варианте записи будут расположены в порядке соответствия вашим параметрам и дадут более точный результат чем в первом варианте. конечно можно и разбирать каждый вариант из получившихся примерно 200-250 записей и затратить много времени, как в принципе и делается на любом сайте по продаже автомобилей, а можно и посмотреть первые 10-20 и определиться со своим выбором.
0
|
|
|
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
|
|
| 19.11.2012, 11:20 | |
|
Я прошу прощения, но может быть приведете конкретный пример, где результат зависит от порядка применения фильтра? А то создается впечатление, что вы замахнулись на экспертную систему, а простейшие вещи не понимаете.
0
|
|
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
||
| 19.11.2012, 18:19 | ||
|
mss, фиксировано, это в первом варианте кода, а после я предложил аналогичный вариант фильтру, только хуже тем, что постоянно придется дергать БД запросом, вместо того чтобы использовать локальный фильтер.
Добавлено через 9 минут FroZko,
Кликаешь на radiobutton - "Фамилия" в radioGroup с именем "Сотрудники", вбиваешь в Edit "Иванов" = сортирует и выводит всех "Иванов". Кликаешь на radiobutton - "Имя" в radioGroup с именем "Сотрудники", вбиваешь в Edit "Вася" = сортирует и выводит всех с именем "Вася" и фамилией "Иванов" . так надо?
0
|
||
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
| 19.11.2012, 18:24 | |
|
PS. можешь попробовать DBGridEh из библиотеки EhLiB, там есть встроенная фильтрация.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 19.11.2012, 21:41 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 20.11.2012, 09:50 [ТС] | |
|
объяснить как работает механизм у меня не получится, прилагаю свой проект, что бы наглядно показать что я хочу сотворить. посмотрите пожалуйста, может у кого какие мысли возникнут.
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
|
|
| 20.11.2012, 09:51 [ТС] | |
|
stupidstudent, да, нужно так же
0
|
|
| 20.11.2012, 09:51 | |
|
Отсеивание массивов Отсеивание в элементе
Отсеивание по дате. Программа на отсеивание 4х значных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|