Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
vedutenko_s
Contributor III
Contributor III

Выборка списка

Здравствуйте, помогите пожалуйста. Есть таблица. В таблице "Маршрут" и "Время" (screen ниже).

1.png

Нужно отобразить маршруты, которые начинаются с определенного часа. Час может меняться.

Я создал переменную, в которую буду прописывать нужный час. И прописал условие в списке выражения и список назвал "Поле1".

Условие:

=if(Hour(Время)>='$(vВремя)' and Hour(Время)<='23','1')

2.png

Когда в списке "Поле1" выбираю значение "1", таблица хорошо отрабатывает, но значение в списке "Поле1" не выделяется зеленым и нет возможности снять этот фильтр.

3.png

Что можно сделать, чтобы список "Поле1" отрабатывал как обычный список? 

1 Solution

Accepted Solutions
Zhandos_Shotan
Partner - Creator II
Partner - Creator II


Не знаете почему так происходит?

У тебя вместо реального поля используется вычисляемое поле. Оно может работать как фильтр по результатам вычисления, но только напрямую. Если выбрано другое поле, движок не знает как взаимодействовать с вычисляемым полем. Ведь в нем можно написать что угодно.

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

Ограничение на измерение как раз можно ставить по первому выражению, т.е. по значениям меры.

Можно по подробнее, как это сделать?

Во вложении вариант реализации через кнопки которые выставляют в переменную значение фильтра, либо пустоту

Также попытался сделать вариант через измерение вкл/выкл. Для этого нужна еще одна переменная которая вместо кнопок проверяет значение измерения и выставляет фильтр: vFieldValue=if(ValueList('вкл','выкл')='вкл',vFilter)

Но через ValueList('вкл','выкл') походу не будет работать, нужно создать реальное измерение через Inline Load а перезагружать я не могу

View solution in original post

10 Replies
Zhandos_Shotan
Partner - Creator II
Partner - Creator II

Здравствуйте!

Не совсем понял смысл именно такой реализации, но если конечная цель сделать что-то типа Фильтр: Вкл/Выкл, то вариантов это реализовать много.

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

2 вариант, выражение с переменной фильтра типа avg( $(vFilter) Время), где vFilter = {<Время={">=$(vВремя)"}>} либо Пусто. Значения выставляются в событиях кнопок.

3. вариант создать измерение Фильтр со значениями Вкл, Выкл. Аналогично пункту 2 использовать переменную где

vFilter = if(Фильтр='Вкл', '{<Время={">=$(vВремя)"}>} ', '')

Удачи!

vedutenko_s
Contributor III
Contributor III
Author

Здравствуйте, не очень понял как это сделать.

У меня есть два измерение в прямой таблице. Маршрут и Время.

На "скрине" видно, что у маршрута " 1 ВИДНОЕ..." заполнено время  7 часов до 15.

Как мне сделать выборку значений в таблице с 13 часов например. При этом значение с какого часа может меняться.

Zhandos_Shotan
Partner - Creator II
Partner - Creator II

Добрый день.

Вышлите пожалуйста сам файл с примером. Я покажу вам в нем .

vedutenko_s
Contributor III
Contributor III
Author

Да, конечно

Zhandos_Shotan
Partner - Creator II
Partner - Creator II

Странно, в моем QlikView все работает. Поле выбирается и с сбрасывается.

Может у вас выставлены специфичные настройки?

На всякий случай добавил свой вариант через меру и ограничение измерения, которое сразу фильтрует таблицу при вводе Часа

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

vedutenko_s
Contributor III
Contributor III
Author

Понял почему поле не выбирается и не сбрасывается. Когда нет никаких выборок, то поле отрабатывает отлично. Но когда стоят хоть какие нибудь другие выборки, поле сразу не сбрасывает. (screen ниже)

Нет никаких выборок и поле отлично работает.

1.png

Поставил фильтр по Дата и сразу другая выборка не активна при этом она отрабатывает.

2.png

Не знаете почему так происходит? (файл приложения прикреплю) .

Через меру и ограничение измерения отличный вариант, Спасибо большое . Можно по подробнее, как это сделать? Зачем нужно выражение в таблице? Если можно только поставить ограничение на измерение?

vkozlov
Partner - Creator
Partner - Creator

Я бы делал тоже через переменную, но прописал бы расчеты в самой формуле выражения через Set Analysis

Чтобы таблица изначально рассчитывалась от переменной

Zhandos_Shotan
Partner - Creator II
Partner - Creator II


Не знаете почему так происходит?

У тебя вместо реального поля используется вычисляемое поле. Оно может работать как фильтр по результатам вычисления, но только напрямую. Если выбрано другое поле, движок не знает как взаимодействовать с вычисляемым полем. Ведь в нем можно написать что угодно.

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

Ограничение на измерение как раз можно ставить по первому выражению, т.е. по значениям меры.

Можно по подробнее, как это сделать?

Во вложении вариант реализации через кнопки которые выставляют в переменную значение фильтра, либо пустоту

Также попытался сделать вариант через измерение вкл/выкл. Для этого нужна еще одна переменная которая вместо кнопок проверяет значение измерения и выставляет фильтр: vFieldValue=if(ValueList('вкл','выкл')='вкл',vFilter)

Но через ValueList('вкл','выкл') походу не будет работать, нужно создать реальное измерение через Inline Load а перезагружать я не могу

vedutenko_s
Contributor III
Contributor III
Author

Отличной вариант, спасибо