Ironpython Spotfire可视化的日期范围问题

Ironpython Spotfire可视化的日期范围问题,ironpython,spotfire,Ironpython,Spotfire,我试图根据数据表中的日期列以编程方式过滤SpotFire可视化。更具体地说,我正在尝试过滤可视化,以便它只显示最近完成的月份和之前月份之间的时间段(逐月比较)。例如,如果当前是6月,则可视化应仅显示4月至5月 我曾尝试使用DateTime对象来实现这一点,但我遇到了一些问题 today=DateTime.today momEnd=今天.AddDays(-today.Day) momBeg=today.AddMonths(-2)。AddDays(-today.Day+1) 对于Document.A

我试图根据数据表中的日期列以编程方式过滤SpotFire可视化。更具体地说,我正在尝试过滤可视化,以便它只显示最近完成的月份和之前月份之间的时间段(逐月比较)。例如,如果当前是6月,则可视化应仅显示4月至5月

我曾尝试使用DateTime对象来实现这一点,但我遇到了一些问题

today=DateTime.today
momEnd=今天.AddDays(-today.Day)
momBeg=today.AddMonths(-2)。AddDays(-today.Day+1)
对于Document.ActivePageReference.Visuals中的可视内容:
如果visual.Title==myVis.Title:
newVis=visual.As[Visualization]()
newVis.XAxis.Range=AxisRange(momBeg,momEnd)
这段代码确实过滤了可视化效果,但它只显示了2016年1月,而该月应显示2019年4月至5月

打印newVis.XAxis.Range变量显示以下字符串:

    AxisRange[Low=4/1/2019 12:00:00 AM, High=5/31/2019 12:00:00 AM]
这应该是正确的,但正如我提到的,我没有从可视化中看到正确的行为

(DateDiff('month',
    Date(DatePart('year', [Timestamp]), DatePart('month', [Timestamp]), 1),
    DateTimeNow()) > 1 
And DateDiff('month',
    Date(DatePart('year', [Timestamp]), DatePart('month', [Timestamp]), 1),
    DateTimeNow()) < 3)
任何修复或替代方案都将不胜感激

编辑:我正在处理专有数据,因此无法提供示例数据。我真的找到了解决办法。我没有使用XAxis.Range,而是直接过滤可视化数据。基本上我换了

newVis.XAxis.Range=AxisRange(momBeg,momEnd)
与:


newVis.Data.WhereClauseExpression=“[”+timeColumn+“]>=Date(Year(DateTimeNow())、Month(DateTimeNow())-2,1)和[“+timeColumn+”]我不知道为什么要通过IronPython进行此操作。可以直接在可视化上使用数据限制

(DateDiff('month',
    Date(DatePart('year', [Timestamp]), DatePart('month', [Timestamp]), 1),
    DateTimeNow()) > 1 
And DateDiff('month',
    Date(DatePart('year', [Timestamp]), DatePart('month', [Timestamp]), 1),
    DateTimeNow()) < 3)
(日期差('month'),
日期(日期部分('年',[时间戳]),日期部分('月',[时间戳]),1),
DateTimeNow())>1
和DateDiff('月',
日期(日期部分('年',[时间戳]),日期部分('月',[时间戳]),1),
DateTimeNow())<3)

我应该提到,我解决了我的问题,并将解决方案作为对我原始问题的编辑来处理。

您能提供一些示例数据吗?根据您在这里展示的内容,这应该可以正常工作。还要检查是否应用了其他可能覆盖AxisRange的筛选或数据限制表达式。您可以直接筛选每个可视化,但我需要它来处理任何给定的可视化。此代码段是一个更大脚本的一部分,该脚本聚合数据、进行比较,并根据这些比较和一些用户输入复制/筛选可视化。此脚本需要处理任何仪表板上的任何可视化这就是为什么我要以编程方式进行过滤器。