使用 spotfire 的相对日期的日期过滤器和输入框

Date filter and input box for relative date using spotfire

有人可以帮我创建一些东西,让我可以 select 相对时间段(输入框包含最后 7、14、30 天)并且能够 select 使用日期的特定日期范围在 SPOTFIRE 中过滤 ?

我有想法,但看起来我需要编写一个 python 脚本。那里没有经验。感谢任何帮助。

我可能想做的是:

编写一个脚本,在您的输入框更新时进行更新。您首先检查该脚本以查看该值是 0 还是 null(取决于您的选择)。如果是,它将删除可视化的数据限制表达式。如果输入框中有有效值,则需要 (a) 重置日期过滤器,以便所有值都被 selected 和 (b) 将可视化的数据限制表达式设置为 [Date] > Max(DateAdd(‘dd’, -${p.NumberOfDays}, [Date]))

小心询问 XY Problems but in your case you could just use this expression in the Limit Data Using Expression 任何可视化想要受到影响的框。

[Date] >= DateAdd('dd', ${p.NumberOfDays} * -1, [Date])
AND
[Date] < DateTimeNow()

请注意,如果 [Date] 是 DateTime 类型,您需要将其转换为日期以消除您遗漏的部分日期。

[Date] >= DateAdd('dd', ${p.NumberOfDays} * -1, Cast([Date] as Date))
AND
Cast([Date] as Date) <= Cast(DateTimeNow() as Date)

我使用了此处详述的技术: https://community.tibco.com/questions/calculated-date-filters

我在文本区域创建了一个下拉列表控件,命名为 属性 NextNDays 并设置了 Expressions =

For next 30 days:
Display Name = "Next 30 Days"
Expression = "If(DateDiff('day',DateTimeNow(),[MY_DATE_FIELD]) < 31 and [MY_DATE_FIELD] > DateTimeNow(),True)"

For next 60 days:
Display Name = "Next 60 Days"<
Expression = "If(DateDiff('day',DateTimeNow(),[MY_DATE_FIELD]) < 61 and [MY_DATE_FIELD] > DateTimeNow(),True)"