Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61

Отсеивание данных

18.11.2012, 19:36. Показов 3396. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте всем! Помогите пожалуйста с такой проблемой: есть таблица (ADOTable) размещенная на форме с помощью DBGrid. Ее нужно отфильтровать последовательно сужая диапазон значений. То есть хочется так: клик по радиогруппе - таблица отфильтровалась, клик еще раз по радиогруппе - таблица отфильтровала оставшиеся после первой фильтрации данные и так далее. пробовал различные вариации фильтрации (в частности с оператором and) ничего не вышло, потому что при этом способе определяю кучу условий в одну строку, а таблица фильтруется только по первому клику, по второму уже нет... Может есть у кого какие мысли по этому поводу? Если есть поделитесь пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2012, 19:36
Ответы с готовыми решениями:

Отсеивание нажатых клавиш
Доброго времени суток! Нужна срочно ваша помошь, дело вот в чем я написал универсальную программу которая переводит из одной сс в другую,...

Типизированный файл: сортировка, отсеивание и поиск
у меня задание работа с типизированным файлом сортировка отсеивание и поиск как это все делать и как создать типизированный файл? это все...

последовательное отсеивание данных фильтрами в dbgrid
Здравствуйте Имеется форма, в которой есть dbgrid и несколько фильтров. Фильтры закинуты в RadioGroup. Есть одна проблема: сначала...

30
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
18.11.2012, 20:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от FroZko Посмотреть сообщение
то результат уже другой будет
Это какой же "другой" ?
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.11.2012, 06:01
FroZko, похоже, с ADOTable так не получится, т.к. набор данных не накапливается. Нужно на первый выбор повесить одно условие, а на второй уже первое и сужающее второе и т.д. Название поля и текст условия задавать через переменные.
Думаю, надо что-то типа этого соорудить уже для сужающего условия:
Delphi
1
2
3
4
5
6
7
8
9
with ADOTable1 do
  begin
     Active:=False;
     TableName:='*tablename*';
     Active:=True;
     Filtered:=false;
     filter:='*поле1*='+QuotedStr('*значение_фильтра_1*')+' AND '+'*поле2*='+QuotedStr('*значение фильтра2*')+'';
     Filtered:=true;
  end;
Соответственно, для предыдущего условия будет все то же самое, только до оператора AND
Delphi
1
2
3
4
5
6
7
8
9
with ADOTable1 do
  begin
     Active:=False;
     TableName:='*tablename*';
     Active:=True;
     Filtered:=false;
     filter:='*поле1*='+QuotedStr('*значение_фильтра_1*')+'';
     Filtered:=true;
  end;
Добавлено через 8 часов 36 минут
Цитата Сообщение от FroZko Посмотреть сообщение
тут Вы не много не правы. Если фильтровать таблицу из 200 допустим записей сначала по Ивановым, а потом по Александрам, то результат будет один, а если сначала фильтровать по Александрам, а потом по ивановым то результат уже другой будет.
Может я вас удивлю, но результат будет одинаковым, т.к. ищется одновременно и Иванов, и Александр. Возможно, порядок записей в отображаемой таблице может поменяться, и то не факт.
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
Цитата Сообщение от FroZko Посмотреть сообщение
а как вам пример того, когда вы приходите к терапевту и он начинает задавать вам вопросы по поводу вашего здоровья, на которые вы последовательно отвечаете и тем же отсеивающим методом терапевт определяет что болит и отправляет к нужному врачу. попробуйте представить что будет если терапевт будет задавать вопросы в другом порядке. я думаю к своему врачу вы не попадете.
Пример не совсем корректный. И зачем опускаться до таких примеров, давайте не множить сущности?
Допустим, алгоритм работал бы так, как вы хотели, т.е. формировал бы список по первому фильтру, а потом по второму.

Вот вам список:
Вася Иванов
Коля Сидоров
Коля Иванов

Вариант 1.
Фильтруем по "Коля", получим:
Коля Сидоров
Коля Иванов

Фильтруем по Иванов, получим:
Коля Иванов

Вариант 2.
Фильтруем по Иванов, получим:
Вася Иванов
Коля Иванов

Фильтруем по Коля, получим?
Коля Иванов.

В обоих вариантах получился Коля Иванов.

Цитата Сообщение от FroZko Посмотреть сообщение
Добавлено через 21 секунду
но в любом случае спасибо за код)
Да, пожалуйста.
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
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
19.11.2012, 18:19
mss, фиксировано, это в первом варианте кода, а после я предложил аналогичный вариант фильтру, только хуже тем, что постоянно придется дергать БД запросом, вместо того чтобы использовать локальный фильтер.

Добавлено через 9 минут
FroZko,
То есть хочется так: клик по радиогруппе - таблица отфильтровалась, клик еще раз по радиогруппе - таблица отфильтровала оставшиеся после первой фильтрации данные и так далее.
Пример:
Кликаешь на radiobutton - "Фамилия" в radioGroup с именем "Сотрудники", вбиваешь в Edit "Иванов" = сортирует и выводит всех "Иванов".
Кликаешь на radiobutton - "Имя" в radioGroup с именем "Сотрудники", вбиваешь в Edit "Вася" = сортирует и выводит всех с именем "Вася" и фамилией "Иванов" .

так надо?
0
 Аватар для stupidstudent
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
Цитата Сообщение от FroZko Посмотреть сообщение
думаю вам объяснять что это такое нет смысле
Тем более бредоносной выглядит твоя идея-фикс засандалить механизм фильтрации с использованием радиогруппы в единственном числе.
0
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
20.11.2012, 09:50  [ТС]
объяснить как работает механизм у меня не получится, прилагаю свой проект, что бы наглядно показать что я хочу сотворить. посмотрите пожалуйста, может у кого какие мысли возникнут.
Вложения
Тип файла: rar kurs.rar (599.2 Кб, 1 просмотров)
0
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 61
20.11.2012, 09:51  [ТС]
stupidstudent, да, нужно так же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2012, 09:51

Отсеивание массивов
Уже второй день я мучаюсь с программой, почти доделал. Осталось только сделать отсеивание массивов. import java.util.Scanner; import...

Отсеивание в элементе
Приветствую форумчане. Обращаюсь с просьбами о помощи. не могу понять как это можно реализовать. есть БД предположим студенты. в таблице ...

Отсеивание по группам
Добрый день, у меня или сложная задача или я туплю. Есть такая таблица. 1 A1 Y 1 A2 Y 1 A3 N 2 B1 N 2 B2 Y 3 C1...

Отсеивание по дате.
Подскажите пожалуйста что можно сделать. Имеется таблица с двумя полями (Фамилия, дата рождения) Нужно сделать запрос, который бы...

Программа на отсеивание 4х значных
Номер автомобиля 4-х значный. Делиться без остачи на 2,7,11. В номере есть одинаковые цифры и сумма цифр = 30. Узнать это число и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Часы электронные
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 реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru