2015-06-24 2 views
0

У меня есть отчет о пятнистом, который обновляется каждый день, и это обновление добавляет рабочий день (то есть 6/21, следующее обновление будет добавлять 6/22 и т. Д.). Я хочу, чтобы мой фильтр (фильтр диапазона) всегда указывал на последнюю дату по умолчанию (т. Е. Сегодня он будет указывать на 6/21, завтра 6/22 и т. Д.). Как это реализовать?Spotfire Report Filter По умолчанию Макс. Дата

ответ

2

Другой способ - использовать вычисляемый столбец, который генерирует фильтр для «Макс. Дата». Этот расчетный столбец будет пересчитываться каждый раз, когда данные обновляются.

Например, если столбец создается с помощью этого расчета:

если ([mydateColumn] = Max ([mydateColumn]), "Да", "Нет")

Just установите фильтр «Да», и когда данные будут обновлены, на панели мониторинга всегда будет отображаться последняя дата.

+0

Я сделал это, но мой фильтр по умолчанию имеет значение None. –

+0

, если вы сохраните фильтр, настроенный по своему усмотрению, он останется таким же при следующем открытии анализа. – niko

+0

Когда я использую Фильтр элементов, он всегда по умолчанию имеет значение None после запланированного обновления. Не работает ли эта логика для фильтров элементов? –

1

Есть 2 разных способа, которыми я бы это сделал: скрипт Python, активированный с изменением свойств или кнопкой ИЛИ выражение в ваших визуализациях.

Если вы хотите сделать Python скрипт и не против пользователей/сами, нажав на кнопку или уже есть Свойства документа, изменяющие вы могли бы вызвать от них, то попробуйте следующее:

TABLE является параметром таблицы, на которую я нацелен на изменение. Однако вы можете перебирать таблицы или вызывать их специально в коде.

from Spotfire.Dxp.Application.Filters import RangeFilter 
from Spotfire.Dxp.Application.Filters import ValueRange 

for scheme in Document.FilteringSchemes: 
    #get our RadioButtonFilter; Other filter types work as well 
    filt = scheme.Item[TABLE].Item[TABLE.Columns.Item["DATE_COL"]].As[RangeFilter]() 
    #filt will be NoneType if that column is a different filter type 
    if filt is not None: 
     top = filt.ValueRange.High 
     #Set the lower and upper bound to the existing upper bound 
     filt.ValueRange = ValueRange(top,top) 

В качестве альтернативы, если вы предпочитаете, чтобы он просто настроить самостоятельно, без каких-либо скриптов вы можете фильтровать каждую визуализацию по отдельности с помощью следующего выражения, помещенного в вашем разделе «Ограничение с помощью выражения» на вкладке Данные в свойства визуализации в:

[DATE_COL] = Date(DateTimeNow())

Python имеет преимущество, охватывающие весь документ (в том числе вновь созданные визуальных), но требует кнопки, чтобы установить его или Javascript автоматизировать его, что может привести вас хотеть использовать ограничение по выражению.

В одном из моих предыдущих ответов я использую JavaScript для автоматического нажатия кнопок на скриптах python: Spotfire Export Automatically. Я столкнулся с несколькими проблемами, когда JS не работает в веб-проигрывателе, но это может быть проблема с сайтом, связанная с тем, как мы создали здесь наш сервер веб-плееров. Отлично работает в настольной версии, хотя наверняка.

+0

Я бы хотел, чтобы это произошло автоматически, так что смотрим на вариант 2; Если я ограничиваю данные с помощью выражения, как пользователь может выбрать предыдущую дату? –

+0

Хм ... Хороший вопрос. Они не могли настроить его с помощью Варианта 2. Я предположил, что вы просто хотели, чтобы он всегда устанавливался на последнюю дату, а не по умолчанию, но все же изменялся. Там, вероятно, есть другие интересные способы обойти это, что вы можете использовать пользовательские фильтры или что-то с python, которые устанавливают Limit by Expression для ваших визуализаций, но я думаю, что самый простой способ - это как @ user3472649. Конечный пользователь просто должен щелкнуть ВСЕ или проверить «Нет» на «разблокировать» диапазон, который будет использоваться в обычном режиме. – clesiemo3