On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 55
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 06.04.12 11:51. Заголовок: Помогите с реализацией задумки


Привет всем ! Есть задача .
Имеется DBF-ка :
A ,B ,C, D, - числовые поля (геометрические размеры)
CODE - код товара

Необходимо сделать фильтрацию по введенным полям да ещё и "приправить " дополнительными формами ввода (от /до)
-------------------------------------------------------------------------------------------
| Размер А от [ ] до [ ]
| Размер B от [ ] до [ ]
| Размер C от [ ] до [ ]
| Размер D от [ ] до [ ]
|
| [Искать] [Выход]
|
--------------------------------------------------------------------------------------------
Вводим числовые параметры ... По кнопке [Искать] - должно быть отфильтровано по введённым полям
Пока продумываю как это лучше реализовать : Форма ввода и алгоритм фильтрации .... Поиск может быть при разном количестве заполненных полей . Разумеется - если поле не заполнено - то оно и не участвует в поиске ....
Буду признателен за какие-то примерчики вашей реализации подобного задания ...


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 26 , стр: 1 2 All [только новые]


постоянный участник




Пост N: 2166
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.04.12 09:37. Заголовок: ММК пишет: Пользуюс..


ММК пишет:

 цитата:
Пользуюсь именно этим методом :) Берем базу с разными полями (числ., стр., дата...) .Хочется в ней сделать какую-то выборку,
Причем сразу может быть и не ясны конкретные "рамки" . Другими словами ставим один "фильтр" потом по рузультату второй и т.д.



Я тоже пользуюсь этим методом с 1996 года !
Но в данном случае имеется всего 4 поля. И Пашин метод лучше для этого варианта.

Красивая картинка. На чем сделано: МиниГуи или FiveWin ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2345
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.04.12 09:49. Заголовок: ММК пишет: Пользуюс..


ММК пишет:

 цитата:
Пользуюсь именно этим методом :) Берем базу с разными полями (числ., стр., дата...) .Хочется в ней сделать какую-то выборку,
Причем сразу может быть и не ясны конкретные "рамки" . Другими словами ставим один "фильтр" потом по рузультату второй и т.д.
( кстати , временный условный индекс создается только раз, далее в него просто добавляются условия )
Вот на картинке бровс с базой с выбранным индексом по коду. Можно "щелкнуть" по наменованию -индекс сменится. Теперь выбираем любое интересующее нас поле и по правой клавише мыши выбираем условие выборки .К примеру больше нуля. Вот один фильтр :) Теперь повторяем операцию и берез значение меньше 10. Вот уже второй ... Становимся на другое поле ... и т.д. Все наглядно и быстро
Приблизительно так...



Это все-таки немного другое, custom-индекс это не тоже самое, что индекс с условием for. Но зато в коде наглядно видно, как строится такой индекс: посредством dbeval, то есть выборки всех до единой записей таблицы. Такой способ быстрым быть не может, наоборот, это самый медленный способ из всех возможных.
Единственное его преимущество - это то, что после построения такого индекса записи, которые присутствуют в индексе, будут выбираться быстро.
Преимущество custom-индекса перед индексом с for то, что при построении второго выполняется сортировка ключей, а первого - ключи просто добавляются в индекс, что немного быстрее.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 88
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 14.04.12 10:25. Заголовок: Pasha пишет: Это вс..


Pasha пишет:

 цитата:
Это все-таки немного другое, custom-индекс это не тоже самое, что индекс с условием for. Но зато в коде наглядно видно, как строится такой индекс: посредством dbeval, то есть выборки всех до единой записей таблицы. Такой способ быстрым быть не может, наоборот, это самый медленный способ из всех возможных.


Именно ,что другое :)Если бы речь шла о статике , то да. Мы ведь не сравниваем скорости отдельных операций , а ищем удобное решение для конкретной задачи .
Может он и не самый быстрий , но уж точно не самый медленный. Каждый раз выборка идет в уже отобранной базе . Мы же не говорим о еденичной операции :))
Andrey пишет:

 цитата:
Но в данном случае имеется всего 4 поля. И Пашин метод лучше для этого варианта.


Может и лучше :) Смысл в том ,что строится один индекс , а не четыре. И не имеет значение сколько полей будет использоваться для выборки.
Если я правильно понял Пашино предложение , чем больше полей тем больше индексов надо построить , а потом еще на них наложить те или иные выборки...
Пользуюсь я и тем и другим способом ( скопе , индекс , фильтр ) , но при работе с таблицей , которая должна быть наглядной и выборки НЕ ПРЕДСКАЗУЕМЫ это самый оптимальный вариант :)
Хотя ,если что-то еще придумаете будет очень интересно :))
Да и не надо забывать ,что речь идет о достаточно маленьких базах.
Написано на FWH



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2167
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.04.12 11:09. Заголовок: ММК пишет: Да и не ..


ММК пишет:

 цитата:
Да и не надо забывать ,что речь идет о достаточно маленьких базах.



Это уж точно.
Еще это и более простой способ написания кода под такие задачки !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2346
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.04.12 13:37. Заголовок: ММК пишет: Именно ,..


ММК пишет:

 цитата:
Именно ,что другое :)Если бы речь шла о статике , то да. Мы ведь не сравниваем скорости отдельных операций , а ищем удобное решение для конкретной задачи .
Может он и не самый быстрий , но уж точно не самый медленный. Каждый раз выборка идет в уже отобранной базе . Мы же не говорим о еденичной операции :))



Маленький совет: перед dbeval делать dbSetOrder(0)
Тогда выборка записей будет последовательной, что немного быстрее, чем с использованием индекса. А если выборка идет из файла, открытого по сети - то намного быстрее, так как не выполняется блокировка индекса, которая может замедлить выборку в разы.
А насчет сортировки в custom индексе я оказался неправ - там тоже сортировка делается.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 89
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 14.04.12 14:19. Заголовок: Pasha пишет: Малень..


Pasha пишет:

 цитата:
Маленький совет: перед dbeval делать dbSetOrder(0)


За маленький совет -большое спасибо! :)))

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 26 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 24
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет