Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.01.26;
Скачать: [xml.tar.bz2];

Вниз

"Искаю" Фильтр для датасета. Готовое или идея   Найти похожие ветки 

 
[ВладОшин] ©   (2013-07-24 08:57) [0]

Необходимо пользователю дать возможность задавать сложный фильтр на данные.

Вот хорошая реализация
http://www.fotolink.su/v.php?id=990c374c010dc4fca6a713272504ac5e
Но не устраивает.

Нужно что бы было примерно то же самое, но что бы можно было задавать больше критериев (у них если бесплатно(а я бесплатно:), то без исходников и всего два критерия, как на картинке). Пробовал писать руками в строку где шапка (рис.2, синим шрифтом в title)- игнорирует третий и последующие критерии

Поэтому надо что-то придумать.
Понятно, что потом оно все просто в DS.Filter присваивается. И мы быстро напишем все руками, но не пользователь.

Желательно что-то как на картинке (2), но не больше 3х
Но!
Это не главное..

Главное, что бы потом пользователь мог как-то регулировать условия как ему надо, а не как правила логики

Например, если написано
A or B and C
то по правилам логики  А или (B и С)
а пользователь имел ввиду (А или B) и С

т.е. надо помимо условий, ставить скобки. Но юзер не должен их ставить(или пусть ставит, но опционально), а должен как-то  группировать условия визуально

Воот..

Есть такое?
Или велосипедничать начинать?


 
ReindeerMossEater   (2013-07-24 09:10) [1]

Самое прямое что видел из желаемого - ехлиб большакова.
с небольшими доработками используется уже лет 15.

нет дебильных "мастеров" и "визардов" которые только на первый взгляд кажутся логичными и необходимыми.

фильтры визуально "двусторонние". то есть то что введено непосредственно видно и к введенному можно вернуться и дополнить условие (следствие п.1).

независимы от используемого движка (как сервера так и библиотеки доступа)


 
[ВладОшин] ©   (2013-07-24 09:12) [2]


> Желательно что-то как на картинке (2), но не больше 3х

=

> Желательно что-то как на картинке (2), но 3 и больше что бы можно было задавать


 
[ВладОшин] ©   (2013-07-24 09:13) [3]


> ReindeerMossEater   (24.07.13 09:10) [1]

на картинке и есть EhLib.
Или это в новых (платных) версиях?


 
Алканавт расправил плечи   (2013-07-24 09:16) [4]


> Самое прямое что видел из желаемого - ехлиб большакова.с
> небольшими доработками используется уже лет 15.
ППКС


> нет дебильных "мастеров" и "визардов" которые только на
> первый взгляд кажутся логичными и необходимыми.
А вот это у нас таки приделано :-) Как ни странно, чрезвычайно удобно.


 
ReindeerMossEater   (2013-07-24 09:19) [5]

Нет. Была допилена древняя фриварная версия.
Выглядит вот так:

https://www.dropbox.com/s/v6s5kagwzknj900/ehlib.png

То есть фильтрация делается прямо в заголовках столбцов.


 
ReindeerMossEater   (2013-07-24 09:20) [6]

А вот это у нас таки приделано :-) Как ни странно, чрезвычайно удобно.


Когда ничего другого не видел, все кажется удобным.


 
[ВладОшин] ©   (2013-07-24 09:20) [7]

покажите хоть как выглядит


 
[ВладОшин] ©   (2013-07-24 09:21) [8]


> https://www.dropbox.com/s/v6s5kagwzknj900/ehlib.png

ну там один фильтр
а если
A or B and C


 
ReindeerMossEater   (2013-07-24 09:36) [9]

нет разницы.
вводишь выражения и получаешь что надо.
кроме фильтрации вводом в заголовок есть фильтрация по значению поля.

допустим встаем на строку грида на желаемую колонку.
там написано "вилы" жмем горячую кнопку, получаем все строки с вилами.
если горячие нажать несколько раз (на вилах, лопатах и топорах) - получим вилы лопаты и топоры.

есть множественный выбор по уникальному полю (добавить в выборку вот "эту" строку)


 
брат Птибурдукова   (2013-07-24 10:17) [10]


> Когда ничего другого не видел, все кажется удобным.
ой-вэй, громкие заявления…


 
Anatoly Podgoretsky ©   (2013-07-24 11:14) [11]

Легче указать скобки.


 
[ВладОшин] ©   (2013-07-24 12:50) [12]

пока что придумал

Как на картинке, имеем ПОЛЕ -- УСЛОВИЕ -- ЗНАЧЕНИЕ только еще +ПРЕДИКАТ(и/или) и кнопку добавить.
Выбрал, выбрал, набил, выбрал, добавить

добавленное попадает в ListBox, строчкой
ПРЕДИКАТ --  ПОЛЕ -- УСЛОВИЕ -- ЗНАЧЕНИЕ

по др.кнопке в рабочую область окна добавляется GroupBox.
Группбокс - это скобки.
В этот группбокс методом "тащить" накидываются из листбокса условия.
внутри GroupBox действует логика, поэтому что там имел юзер - пофиг. Он предупрежден, что:

что если юзеру надо "вне логики", то он может добавит еще один группбокс и перетащить этот группбокс в новый, равно как и строки из ListBox.
И т.д.

Группбокс внутри группбокса идет по умолчанию  с предикатом AND, если не изменить (например, даблкликом по заголовку или через popupmenu)

Примерно, так.

Результат всегда виден в виде строки, так что если юзеру надоест - может выучить правила и сразу быстро писать операторами и скобками.


 
[ВладОшин] ©   (2013-07-24 12:54) [13]

ps
целевой аудитории сего монстра до it еще очень далеко, даже со скоростью света если побегут :)


 
Пит   (2013-07-25 13:35) [14]

на картинке фильтр из cxGrid ! )

По-моему, в корпоративном ПО на дельфи уже грид в виде cxGrid стал стандартом де-факто. Очень мощная штука и вся фильтрация там есть уже.


 
[ВладОшин] ©   (2013-07-27 14:33) [15]

нет, там eh

ну, я уж, в любом случае, уже начал химичить визард
за отпуск, думаю, нарисую


 
[ВладОшин] ©   (2013-08-06 12:38) [16]

не нарисовал
получилась ерунда, не юзабельно ни разу
плюс тормозит на слабых компах (из-за вычислений (кого несут, над кем несут, какого типа они добавят условие и т.п.))


 
[ВладОшин] ©   (2013-08-06 13:20) [17]

а вот, надо еще с TTreeView попробовать
где уровень будет означать скобки

например,
-root
-- все
-- И условие1
что переделываем в
where 1=1
  AND условие1
(nb! у меня не sql, просто для понятности :))

или:
-- все
-- И условие1
-- ИЛИ условие2
что переделываем в
where 1=1
  AND условие1
  OR условие2

или:

-- все
-- И условие1
    -- ИЛИ условие2
-- ИЛИ условие3
       -- И условие4

что переделываем в
where 1=1
  AND (условие1 OR условие2)
  OR (условие3 AND условие4)

или:

-- все
-- И условие1
    -- ИЛИ условие2
        -- И Условие21
-- ИЛИ условие3
       -- ИЛИ условие4
       -- И условие41

что переделываем в
where 1=1
  AND (условие1 OR (условие2 AND условие21))
  OR (условие3 ИЛИ условие4 AND условие41)

думаю, наглядно должно быть..


 
Пит   (2013-08-06 14:05) [18]


> нет, там eh

хм... Ты говоришь, что это Eh: fotolink.su/v.php?id=990c374c010dc4fca6a713272504ac5e

А вот cxGrid: http://img-fotki.yandex.ru/get/9316/222899064.0/0_cfda0_3d1ea1d4_XL.jpg

А вот он же в режиме customize: http://img-fotki.yandex.ru/get/9495/222899064.0/0_cfda2_30ad07ca_XL.jpg

Невозможно не заметить родство) Видимо, EhLib продался в свое время DevExpress"у или кто-то у кого-то очень нагло скопипастил.

Девки стали уже стандартом де факто, особенно cxGrid, зачем изобретать свой велосипед - непонятно.
Ты, наверное, еще и Forms не пользуешься, делаешь окна на WinApi, чтобы сэкономить 200 КБ размера exe"шника )))


 
[ВладОшин] ©   (2013-08-06 14:10) [19]


> вот он же в режиме customize: http://img-fotki.yandex.ru/get/9495/222899064.
> 0/0_cfda2_30ad07ca_XL.jpg

вот чего ты сразу не показал это?!


> Ты, наверное, еще и Forms не пользуешься

нет, я пользую все что быстрее делает задачу :)
и что бесплатно


 
Пит   (2013-08-06 14:39) [20]


> вот чего ты сразу не показал это?!

а что, должен был?)


> я пользую все что быстрее делает задачу :)
> и что бесплатно

ты delphi то купил, конечно?)


 
[ВладОшин] ©   (2013-08-06 14:47) [21]


> а что, должен был?)

обязан :)


> ты delphi то купил, конечно?)

естественно.
Но не я, а шарага, естественно :)


 
Dennis I. Komarov ©   (2013-08-06 21:19) [22]

Посмотри как в IBSO сделано, если найдешь...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2014.01.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.002 c
15-1375978567
s4user
2013-08-08 20:16
2014.01.26
На Galaxy S4 спешит время


15-1376425778
Разведка
2013-08-14 00:29
2014.01.26
И снова сверхестественное


15-1375173189
vl1639
2013-07-30 12:33
2014.01.26
Нужно написать ехе-шник, запуская который


15-1374987146
TUser
2013-07-28 08:52
2014.01.26
Совсем закопирастились


2-1363876673
jacksotnik
2013-03-21 18:37
2014.01.26
Помогите с FastReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский