powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress фильтр по вхождению %LIKE% в ColumnPopup
38 сообщений из 38, показаны все 2 страниц
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342360
Реализовал фильтр по вхождению %LIKE% в столбцах грида:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
procedure TFEOMainForm.cxGridDBBandedColumn6PropertiesChange(Sender: TObject);
var
  S: TcxLookupComboBox;
begin
  S := Sender as TcxLookupComboBox;
  AppFilt(S.Properties.DataController, S.Properties.ListFieldNames, S.Text);
end;



Теперь хочется сделать такой же в Попап-Меню (Grid.Filtering.ColumnPopup) столбца, там тоже есть стандартный инкрементальный фильтр, но типа LIKE%.
Никак не могу найти события изменения (Change, на котором должен сидеть фильтр LIKE%) этого Попап-Меню.
Кто-нибудь знает?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342466
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По картинке не понятно что и где должно быть. По тексту тем более
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342571
DimaBr,
Разъясняю, на картинке сверху показан фильтр типа %LIKE% в ячейке грида с properties - LookupComboBox, на событие столбца Properties.OnChange .

Хочу реализовать такую же систему тут:
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342594
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть, вы нажимаете "фильтр", переводите туда курсор и пишите фразу, по которой фильтруется грид ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342611
DimaBrТо есть, вы нажимаете "фильтр", переводите туда курсор и пишите фразу, по которой фильтруется грид ?
Да, именно так хочу.
Сейчас там есть стандартный фильтр типа LIKE% (начинаешь вводить и он переходит на строку).
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342632
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
type
TMycxGridFilterPopup = class(TcxGridFilterPopup)
  Edit: TcxTextEdit;
  procedure InitListBox; override;
  constructor Create(AGridView: TcxCustomGridView); override;
end;

TMycxGridTableController = class(TcxGridTableController)
  function GetFilterPopupClass: TcxGridFilterPopupClass;override;
end;

TcxGridTableView = class(cxGridTableView.TcxGridTableView)
  function GetControllerClass: TcxCustomGridControllerClass;override;
end;


{ TMycxGridTableView }

function TcxGridTableView.GetControllerClass: TcxCustomGridControllerClass;
begin
  Result := TMycxGridTableController;
end;

{ TMycxCustomGridTableController }

function TMycxGridTableController.GetFilterPopupClass: TcxGridFilterPopupClass;
begin
  Result := TMycxGridFilterPopup;
end;

{ TMycxGridFilterPopup }

constructor TMycxGridFilterPopup.Create(AGridView: TcxCustomGridView);
begin
  inherited ;
  Edit := TcxTextEdit.Create(self);
  Edit.Parent := self;
end;

procedure TMycxGridFilterPopup.InitListBox;
begin
//  inherited InitListBox;
end;
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342717
Arguer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В версии 16.1 это всё реализовали. Фича incremental filtering называется: https://www.devexpress.com/Subscriptions/New-2016.xml#exeditors
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342742
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arguer, причём тут "incremental filtering" для контролов и фильтр грида ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342746
DimaBrТо есть, вы нажимаете "фильтр", переводите туда курсор и пишите фразу, по которой фильтруется грид ?
Спасибо!
Edit классное решение, но я имел ввиду, что достаточно просто (см. картинку выше) набрать - инвентум - и он найдёт его и сфокусируется, а пользователь и сам может галочку нажать.
То есть также как сейчас (набираем с и он фокусируется на первом "с"), но только типа %LIKE%.

Для таких сложных фильтров я специально добавлял настройку фильтрации под "расширенных" пользователь, здесь нужно решение попроще с выбором из списка с галочками.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342757
Arguer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr, при этом: DevExpressIn addition, we've added this functionality to filter drop-down lists in the Grid Control and Pivot Grid.

Картинка из хэлпа на свойство TcxCustomGridTableItemOptions.FilteringPopupIncrementalFiltering:
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342758
И ещё, если в этом попапе нажать (Выбор...) появится пользовательский фильтр, в нём комбики, которые тянут все Properties настроек столбца, но не тянут события этих properties (LookUpComboBoxa в моём случае).

Поясняю, там же берётся датасет столбца, настройки все, но события как исполнять теже, что и в комбике, который вшит внутри грида настройками?

Как я уже писал, у меня на событии Properties.OnChange "сидит" фильтр типа %LIKE%, мне нужно его тоже исполнять и тут (см ниже).
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39342760
ArguerDimaBr, при этом: DevExpressIn addition, we've added this functionality to filter drop-down lists in the Grid Control and Pivot Grid.

Картинка из хэлпа на свойство TcxCustomGridTableItemOptions.FilteringPopupIncrementalFiltering:

Вот-вот-вот!
Нужно именно это.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39349596
Люди???
Никто совсем не знает как реализовать вот это:
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39349606
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот заготовка, реализовывай.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39349607
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты хочешь установить какое нибудь свойство и что бы всё заработало - ставь 16.1 или же ручками делай то, что они написали в 16.1
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39349611
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского лесаНикто совсем не знает как реализовать вот это:
Ну я знаю. Хотя тебе уже ответил Arguer. Могу разжевать: выставь в дизайнере у столбца Options.FilteringPopupIncrementalFiltering в True
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39350840
white_nigger,
DevExpress 14.1 у меня и, соответственно, нет такой настройки.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39350882
DimaBr,
Да, нет не хочу я "одну галочку" включить, чтобы всё работало.
Я знаю, что в моей версии DevExpressa, этого нет, хочу сам доработать.
Возможности купить DevEx 16 пока нет, пользуемся 14 с лицензией.
Короче легче всего взять 16 триал и посмотреть, как у них реализовано.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39350942
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть вы считаете что с триалом вам дадут исходники ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39350983
DimaBr,
Нет, но хотя бы посмотреть по событиям и свойствам как они организовали систему, чтобы заново велосипед не изобретать.
Тут опять же без своей разработки не обойтись.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39350999
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerМогу разжевать: выставь в дизайнере у столбца Options.FilteringPopupIncrementalFiltering в True
Вот свойство, сильно помогло реализовать ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351017
DimaBr,
Абсолютно не помогло.
А что Вы предлагаете? Вообще не ставить и не смотреть DevEx 16?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351021
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского леса,

сделать нормальный поиск из единого поля по всем полям, как во всех нормальных приложениях, и не извращаться с фильтрами по колонкам.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351029
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что я предлагаю, я уже предложил. Предложить ещё раз ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351054
JaDiХозяин русского леса,

сделать нормальный поиск из единого поля по всем полям, как во всех нормальных приложениях, и не извращаться с фильтрами по колонкам.
К сожалению, такой вариант заказчика не устраивает, так и было реализовано ранее, было поле туда вводилось что-то и фильтровало по всем столбцам, но сказали, что это неудобно. И пришло такое требование: Нужно сделать поиск по вхождению в выпадающих фильтрах по всей аналитике.
Пытался съехать пару раз, но требуют.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351085
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского леса,

Бывает еще один популярный вариант поиска с выбором конкретных значений -- кликаем правой кнопкой по ячейке в таблице и выбираем "поиск по значению/вхождению". И значение этой ячейки добавляется в фильтр. Это как раз использовалось тогда, когда не было всяких умных фильтров и галочек в заголовках.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351090
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского лесаПытался съехать пару раз, но требуют.
Скажи что такого функционала нет, хотят такой функционал, пусть покупают 16, делов то.
Завтра скажут что хотим, чтобы в Гриде была крутящаяся рулетка с сектором Приз на барабане и что ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351103
DimaBrТо что я предлагаю, я уже предложил. Предложить ещё раз ?
Я уже делал так как Вы показали, но заказчик хочет, чтобы ниже ещё был отфильтрованный список с галочками. Это ему не нравится. Сложно для него.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351121
JaDiХозяин русского леса,

Бывает еще один популярный вариант поиска с выбором конкретных значений -- кликаем правой кнопкой по ячейке в таблице и выбираем "поиск по значению/вхождению". И значение этой ячейки добавляется в фильтр. Это как раз использовалось тогда, когда не было всяких умных фильтров и галочек в заголовках.

Это не одно и тоже, что поиск по вхождению. Скопировал он ячейку '010203', она же не найдёт '020103', а ему надо ввести '01' и чтобы обе попали в фильтрацию.
Это всё цифровые коды, порядок их различный: есть, например, код 113. Он может быть 12.113.10 или 113.45.620, так вот он 113 введёт и все эти кода должно отфильтровать и уже из них он выберет своё.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351122
DimaBrХозяин русского лесаПытался съехать пару раз, но требуют.
Скажи что такого функционала нет, хотят такой функционал, пусть покупают 16, делов то.
Завтра скажут что хотим, чтобы в Гриде была крутящаяся рулетка с сектором Приз на барабане и что ?

Да жалко, просто все требования (около 50 пунктов) уже реализованы и из-за одной детали ругаться не хочется абсолютно.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351149
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского леса,

кстати, подобный поиск по кодам может быть значительно улучшен, если ввести скрытую колонку, парсить и писать в нее "улучшенные" значения кодов. А потом по ним же искать. Так, если в единой строке поиска вводится цифра или несколько цифр через пробел/точку/дефис -- мы можем сделать точный поиск по нескольким номерам. Например, номера "123.456.789" приводим к виду ".123.456.789." в таблице, после чего поиск "123 789" разбиваем на OR ".123." OR ".789."
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351197
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского лесаЯ уже делал так как Вы показали, но заказчик хочет, чтобы ниже ещё был отфильтрованный список с галочками. Это ему не нравится. Сложно для него.
Кто мешает добавить "ниже ещё отфильтрованный список с галочками" ?
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351218
JaDiХозяин русского леса,

кстати, подобный поиск по кодам может быть значительно улучшен, если ввести скрытую колонку, парсить и писать в нее "улучшенные" значения кодов. А потом по ним же искать. Так, если в единой строке поиска вводится цифра или несколько цифр через пробел/точку/дефис -- мы можем сделать точный поиск по нескольким номерам. Например, номера "123.456.789" приводим к виду ".123.456.789." в таблице, после чего поиск "123 789" разбиваем на OR ".123." OR ".789."

Я тоже в эту сторону смотрю...
Добавил FilterRow и пытаюсь все поля привести к виду %like%...or...
Но там сложность, что если у колонки есть properties (в моём случае это LookUpComboBox), то построитель фильтра не поддерживает %Like%, только строгое равно/неравно или пусто/не пусто... поэтому приходится создавать дополнительный столбец в котором делать фильтр %like% рисунок ниже.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351219
DimaBrХозяин русского лесаЯ уже делал так как Вы показали, но заказчик хочет, чтобы ниже ещё был отфильтрованный список с галочками. Это ему не нравится. Сложно для него.
Кто мешает добавить "ниже ещё отфильтрованный список с галочками" ?

Никто, просто я не умею и пока не понял как.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351229
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяин русского леса,

Для поиска можно сделать одну общую колонку и писать в нее на OnCalc значения из других полей, по которым нужен поиск. Получится что-то вроде колонки "везде", с которой можно работать в том же построителе фильтров от девок, но при этом все значения будут под нашим контролем. Например, я такую фишку использую, чтобы сделать поиск по разным вариантам написания номеров телефонов/заказов.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351236
JaDiХозяин русского леса,

Для поиска можно сделать одну общую колонку и писать в нее на OnCalc значения из других полей, по которым нужен поиск. Получится что-то вроде колонки "везде", с которой можно работать в том же построителе фильтров от девок, но при этом все значения будут под нашим контролем. Например, я такую фишку использую, чтобы сделать поиск по разным вариантам написания номеров телефонов/заказов.

! Это идея, спасибо. !
Про oncalc даже не думал, если честно.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39351506
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiДля поиска можно сделать одну общую колонку и писать в нее на OnCalc значения из других полей, по которым нужен поиск. Да! хорошая идея. Однажды хотел на клиенте. Но проще оказалась на сервере во вьюшке иметь вычисляемое поле и работать с ним.
Суть была в поиске названий, учитывая опечатки.
Удалял всё отличное от несогласных букв их и сравнивал также обработанным шаблоном поиска. Всё по-русскии в lowercase. Соглассные подряд заменялись одной. Сочетания а ля ДЖ , ДЗ заменялись на Д . Сумбурно?

Пример:ManufacturerINNTradenameSearch pattern User input CommentООО "КРКА-РУС" ЛОЗАРТАНЛОРИСТА НкркрслзртнлрстнkrkaПроизводитель латиницейOAO "АКРИХИН"МЕТОПРОЛОЛМЕЗОТОКмтпрллметапрололопечатка - выведет все метопродолы всех произвоводителей

Теперь уже не помню хитрость, как обходились с "БЕРЛИН-ХЕМИ", которая суть "BERLIN-CHEMIE".
Наверное, таблицей подстановки (таблицей синонимов), было что-то вроде
RUSNonRUSPatternБЕРЛИН-ХЕМИBERLIN-CHEMIEбрлнхмЧелленджерCallengerчлндр

С цифирью вообще проблем не вижу. Регулярно собак ищу по номерам родухи.
Они могут быть "буквенно-цифровыми" и разного "формата" в разных странах.
На это надо наплевать и искать только цыфирь, причём с конца. Можно и арифметикой (ещё быстрее).
Т.е. ввел 3 - получил всё кончающееся на 3.
Ввёл 73, получил всё с хвостом 73.
...
Рейтинг: 0 / 0
DevExpress фильтр по вхождению %LIKE% в ColumnPopup
    #39525681
Возрождаем тему!

Обновил я DevExpress до 16.1, включил этот FilteringPopupIncrementalFiltering.

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

Поясняю, вводим 0110 (без точки), но чтобы значение фильтра 01.10 было выделено. В общем, надо точку исключать всегда как-то.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress фильтр по вхождению %LIKE% в ColumnPopup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]