Расширенные возможности фильтрации данных

Есть ли в luxms элементы со следующим функционалом:

  1. с возможностью расширенной фильтрации по атрибутам измерения (текстовым полям). Пример на картинке ниже.

  1. с возможностью расширенной фильтрации по мерам (числовым значениям). Пример на картинке ниже.

  1. с возможностью фильтрации значений дэшборда вставкой столбца значений из Экселя в какое-либо поле? Как пример, плагин для PBI “Filter by List”: https://devscope.net/2022/02/17/filter-by-list-is-back-on-microsofts-appsource/

Добрый день!

Вопрос №1. Фильтрация текста реализована в Управляющем Дэше
Работает с использование оператора ILIKE, то есть при вводе какого-то значения - система ищет все варианты, в которых это значение встречается, например:

1.1 В строку поиска ничего не введено:

1.2 Введем символ “B”

Выводятся все варианты, в которых есть эта буква

1.3 Введем слово “Beer”

Выводятся все варианты с искомым словом

1.4 Введем отсутствующее слово “Ошибка”

Получаем подпись “Ничего не найдено”

Вопрос №2. Фильтрация числовых (и не только) значений с использованием вкладки “Фильтры” в конструкторе дэша

Фильтры можно настроить как с использованием графического интерфейса, так и с помощью json конфигурации (далее примеры будут с обеими вариациями)

2.1 Внешний вид и создание фильтра
После нажатия на кнопку “+” выбирается параметр, по которму необходимо отфильтровать данные

GUI

JSON

2.2 Операторы

Вы можете использовать следующие операторы: “=”; “!=”; “>”; "< "; “>=”; “<=” “between”.

Важное уточнение: в GUI при использовании нескольких значений нельзя использовать пробелы, то есть если вы, к примеру передаете несколько фильтров или используете “between”: это будет записано так: “330,568”

Некоторые примеры:

GUI

JSON

Вопрос №3. К сожалению, в данный момент подобный функционал отсутствует. Для передачи нескольких значений вы можете вписать их через запятую без пробелов

1 лайк

Спасибо за развёрнутый ответ.

_1. Вижу, что в текущей версии LIKE фильтрация работает как у управляющего дэша, так и для Pivot Table. Такой поход покрывает случаи “Equals” и “Contains”. Есть ли возможность выполнять “Does not Equal”, “Begins with”, “Ends With” и “Does not contain”?

_2.2. Насколько я понимаю, вы описываете статическую фильтрация дэша, т.е. после прописывания фильтров и их сохранения предполагается, что указанное поведение будет применяться всегда и для всех пользователей данного отчёта.
Есть ли возможность расширенной фильтрации по числам с применением операторов для какого-либо дэша без входа в режим редактирования дэшборда только в текущей пользовательской сессии?

_3. Попробовал в поле поиска в Pivot Table и в управляющем дэше вписать несколько значений через запятую - не работает.

Управляющий дэш:

Pivot Table:

_4. Попробовал режим LIKE фильтрации, возникли ещё вопросы. Все действия я выполнял внутри Pivot Table. Заметил следующие особенности:

_4.1. Если начать вводить шаблон поиска и остановиться, то через пару секунд он будет автоматически применён, меню поиска закроется, значения не только таблицы, но и всего дэшборда будут отфильтрованы.
Так и задумывалось? Есть ли возможность скорректировать поведение поиска таким образом, чтобы он начинался только по нажатию на кнопку “Enter” или элемент GUI и не закрывался самостоятельно?

_4.2. При вводе шаблона фильтрации вида “_00” отфильтровываются как значения, содержащие “_00”, так и содержащие “00”.

Выходит, что поиск в режиме LIKE возможен не только по набору символов, но и с заданием маски поиска.
Есть ли возможность описать все возможности LIKE поиска?

_4.3. После того, как шаблон поиска применяется к таблице, меню поиска самостоятельно закрывается, результаты отбора применяются к управляющему дэшу и весь дэшборд перестраивается с новыми условиями фильтрации. При этом если в таблице открыть список значений для отфильрованного поля, то пользователь увидит только те, что отфильтрованы сейчас. Получается, что непосредственно из интерфейса таблицы пользователь не сможет скорректировать условия поиска простыми кликами мыши и не сможет понять, что таблица была отфильтрована по полю, если не заглянет в управляющий дэш.
Есть ли возможность для таблицы всегда отбирать список всех значений поля, но в самом верху группировать выбранные, а под ними в неактивном режиме выводить остальные доступные для выбора значения?

_4.4. Если после фильтрации таблицы в GUI нажать “Очистить фильтры”, то предыдущие условия фильтрации не будут отменены.
Так изначально и задумывалось? Есть ли возможность непосредственно из таблицы, не применяя управляющий дэш, сбросить все условия фильтраций, которые применены к таблице?

Добрый день!

Есть ли возможность выполнять "Does not Equal", "Begins with", "Ends With" и "Does not contain"?

К сожалению сейчас отдельно выполнять такие случаи не представляется возможным

Есть ли возможность расширенной фильтрации по числам с применением операторов для какого-либо дэша без входа в режим редактирования дэшборда только в текущей пользовательской сессии?

Опять же, в данный момент - нет, такой возможности нет, однако есть функции в конфигурации дэша, которые позволят по клику на тот или иной факт отфильтроваться по нему, в качестве примера приведу функцию onClickDataPoint:

Получается, что кликнув на ячейку в графе “year” - данные отфильтруются по значению, на которое произошел клик, иными словами, нажимая на “1985-2002” - вы отфильтруете данные по этому признаку (формально, произойдет следующий фильтр: year = ‘1985-2002’), однако сбросить такой фильтр можно только обновлением страницы

_3. Попробовал в поле поиска в Pivot Table и в управляющем дэше вписать несколько значений через запятую - не работает.

Вписывать несколько значений через запятую пока можно только в установке фильтров из п.2

_4.1. Если начать вводить шаблон поиска и остановиться, то через пару секунд он будет автоматически применён, меню поиска закроется, значения не только таблицы, но и всего дэшборда будут отфильтрованы.
Так и задумывалось? Есть ли возможность скорректировать поведение поиска таким образом, чтобы он начинался только по нажатию на кнопку "Enter" или элемент GUI и не закрывался самостоятельно?

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

_4.2. При вводе шаблона фильтрации вида "_00" отфильтровываются как значения, содержащие "_00", так и содержащие "00".

Не совсем, по сути дела, это часть SQL синтаксиса, когда вы обрамляете свой поиск нижним подчеркиванием - вы игнорируете то, что было до или после введенного текста, например:

  • “_00” - выдает вам такие результаты потому что она ищет 00, игнорируя все то, что идет до них
  • в общем случае на сайте PostgreSQL есть вот такой пример:
'abc' LIKE '_b_'    true
  • в случае если поиск бы шел среди отдельных слов, например “material xxxxxxxx” - “_” могло бы отделять слова до или после искомого элемента
 Есть ли возможность описать все возможности LIKE поиска?

Предыдущий фрагмент частично отвечает на этот вопрос. Надо понимать, что по сути ILIKE может предложить только три варианта:

'abc' LIKE 'abc'    true
'abc' LIKE 'a%'     true
'abc' LIKE '_b_'    true

“%” по сути позволяет искать не полностью слово, а проверяет наличие введенного фрагмента (contains), но ввести его в поле ввода нельзя, потому что эта обертка применяется по умолчанию

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

Возможно я неправильно понимаю вопрос, но по умолчанию в pivot/table доступны и выбраны все варианты. Можно задать и выбрать те или иные данные заранее - через конфиг дэша, выглядеть будет примерно так:

JSON

То есть в данном случае по умолчанию выбран один факт из трех и, как видите, выбранный вариант не перемещается вверх по списку, сохраняется изначальный порядок

_4.4. Если после фильтрации таблицы в GUI нажать "Очистить фильтры", то предыдущие условия фильтрации не будут отменены.

В общем случае - да, кнопка должна сбросить все фильтры

Начальное положение:

Применили фильтры:

Нажали на очистку фильтров:

То есть, в целом ответ - да, сбросить фильтры внутри таблицы можно без Управляющего дэша

Спасибо, очень информативно!

Получается, что кликнув на ячейку в графе "year" - данные отфильтруются по значению, на которое произошел клик, иными словами, нажимая на "1985-2002" - вы отфильтруете данные по этому признаку (формально, произойдет следующий фильтр: year = '1985-2002'), однако сбросить такой фильтр можно только обновлением страницы

Подскажите, для каких типов дэшей будет работать указанный варинат фильтрации?
Видел, например, что для treemap (https://help.luxmsbi.com/-1100/onclickdatapoint-treemap) в данный момент onClickDatapoint недоступен, а самостоятельно со всеми дэшами поэкспериментировать не получится.

Не совсем, по сути дела, это часть SQL синтаксиса

Если упростить, то всё, что применимо к SQL синтаксису ILIKE для Postgre, подходит и для текстовой фильтрации в данном случае.
Правильно ли я понял общую мысль?

Возможно я неправильно понимаю вопрос, но по умолчанию в pivot/table доступны и выбраны все варианты. Можно задать и выбрать те или иные данные заранее - через конфиг дэша, выглядеть будет примерно так:

Спасибо за вариант решения, но он относится к отображению мер. У меня вопрос был про аттрибуты измерений, т.е. текстовые поля.

В общем случае - да, кнопка должна сбросить все фильтры
То есть, в целом ответ - да, сбросить фильтры внутри таблицы можно без Управляющего дэша

Я всё пробовал как описано - в моём случае сброса фильтров до изначального состояния не происходит.
Буду благодарен, если получится созвониться на 10-15 минут и я смогу продемонстрировать поведение дэша, которое вызывает вопросы как из этого, так и из предыдущего пунктов.

Подскажите, для каких типов дэшей будет работать указанный варинат фильтрации?

В целом - для всех, сейчас есть пара дешей (водопад, термометр и тримап) где этот функционал еще не реализован

Если упростить, то всё, что применимо к SQL синтаксису ILIKE для Postgre, подходит и для текстовой фильтрации в данном случае.

По большому счету - да, вы можете использовать пост- и префиксные “_”

Спасибо за вариант решения, но он относится к отображению мер. У меня вопрос был про аттрибуты измерений, т.е. текстовые поля

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

Я всё пробовал как описано - в моём случае сброса фильтров до изначального состояния не происходит.
Буду благодарен, если получится созвониться на 10-15 минут и я смогу продемонстрировать поведение дэша, которое вызывает вопросы как из этого, так и из предыдущего пунктов.

Для начала - можете отправить видео и конфигурацию дэша, а также указать версию клиента, браузер и его версию и вашу ОС, возможно дело в чем-то из этих пунктов

Для начала - можете отправить видео и конфигурацию дэша, а также указать версию клиента, браузер и его версию и вашу ОС, возможно дело в чем-то из этих пунктов

Вчера показал все детали Андрею Федорову, он обещал передать вам все необходимые детали. Если нет - дайте знать, запишу видео.

Доброе утро!

Значит вот, что у нас с вами получается

Если вы добавляете в пивоте фильтры - вы делаете этот дэш зависимым от фильтров, установленных в управляющем дэше.

filters: {
      dt: true,
      degree: true,
    },

В таком варианте - пивот будет реагировать на изменения в фильтра управляющего дэша ровно также, как и все остальные

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

Интересное начинается здесь: пока вы выбираете в пивоте варианты мышкой - эта выборка будет применяться только к контенту пивота

и такие фильтры, которые сработали локально, внутри пивота, сбросятся кнопкой сброса фильтров пивота

Но!

Как только вы подключили фильтры в пивоту - результаты поиска

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

Условно, происходит вот что: вы в пивоте пишете какой-то свой поиск и он автоматически прилетает в управляющий дэш, поэтому меняются данные на всем экране и происходит то, что происходит

А так как теперь пивот думает, что к нему применились фильтры ИЗ управляющего дэша - сбросить эти фильтры он не может (потому что на самом деле не знает, что он сам себе и всем остальным их задал), поэтому чтобы обнулить фильтры - нужно нажать сброс фильтров в управляющем дэше

В целом, нарушение логики мы видим и эта проблема передана в работу отдела разработки, но в целом, думаю, что для понимания достаточно

Рад, что удалось независимо воспроизвести поведение дэша в вашей среде и подтвердить результаты, показанные в ходе демонстрации.
Надеюсь на скорое исправление обсуждаемой особенности.
Большое спасибо за очень подробные объяснения.

1 лайк

Добрый день!

Задача находится у отдела разработки.
Сроков в настоящее время - нет.