Spotfire 报告过滤器默认最大日期

Spotfire Report Filter Default Max Date

我有一份每天刷新的 Spotfire 报告,这次刷新增加了一个工作日(即 6 月 21 日,下一次刷新将增加 6 月 22 日,依此类推)。我希望我的过滤器(范围过滤器)默认始终指向最新日期(即今天指向 6/21,明天指向 6/22 等等)我该如何实现?

我有 2 种不同的方式来执行此操作:Python 使用 属性 更改或按钮或可视化中的表达式激活脚本。

如果您想执行 Python 脚本并且不介意 users/yourself 单击按钮或已经有更改的文档属性,您可以触发它们,然后试试这个:

TABLE 是我要更改的 table 的一个参数。但是,您可以遍历 tables 或在代码中专门调用它。

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) 

或者,如果您希望在没有任何脚本的情况下自行设置它,您可以使用以下表达式单独过滤每个可视化,将以下表达式放入可视化的数据选项卡下的 "Limit by Expression" 部分属性:

[DATE_COL] = Date(DateTimeNow())

Python 具有覆盖整个文档(包括新创建的视觉效果)的优势,但需要一个按钮将其关闭或 Javascript 使其自动化,这可能会让您想要使用受表达式选项限制。

在我之前的一个回答中,我通过使用 JavaScript 来自动点击 python 脚本的按钮:。我有 运行 几个问题,JS 在网络播放器中不起作用,但它可能是我们如何在此处设置网络播放器服务器的跨站点问题。当然,在桌面版本中效果很好。

另一种方法是使用为 "Max Date" 生成过滤器的计算列。每次数据刷新时,都会重新计算此计算列。

例如,如果使用此计算创建列:

if ([mydateColumn]=Max([mydateColumn]),"Yes","No")

只需将筛选器设置为 "Yes",当数据刷新时,仪表板将始终默认显示最新日期。