Spotfire使用经验——使用文档属性(Document Property)实现数据集范围的动态限定

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/83096288

需求描述:

由于业务系统将被升级,现有的Spotfire报表的数据呈现将会收到影响。因此,用户希望能够在Spotfire中选择查看不同时间范围内的数据,即,业务系统升级前的数据和升级后的数据。

解决方法:

用户提出的方法是,创建两份Spotfire报表。我建议用户最好不要这样做,因为以后的维护成本将会翻倍。

目前我提出的解决方案是:创建一个cutoffDate的文档属性(Document Property)(control type为dropdown list),然后,对每个visualization view设置data limitation。已成功创建好一个demo,准备show给客户确认。

data limitation的expression大概如下:

If('${cutoffDate}'='BeforeCutoffDate',[ENG_YN]<>"Y" and [REPORT SUBMIT DATE] is not null and [REPORT SUBMIT DATE] < date(2017,10,18),[ENG_YN]<>"Y" and [REPORT SUBMIT DATE] is not null and [REPORT SUBMIT DATE] >= date(2017,10,18))

看起来可能比较吓人,其实,其结构仅仅是:

if ... else..., 即,如果用户选择的日期范围为“before Cutoff Date”,则使用以下条件进行限定数据:

[ENG_YN]<>"Y" and [REPORT SUBMIT DATE] is not null and [REPORT SUBMIT DATE] < date(2017,10,18)

否则,使用以下条件限定数据:

[ENG_YN]<>"Y" and [REPORT SUBMIT DATE] is not null and [REPORT SUBMIT DATE] >= date(2017,10,18)

所以,用户觉得挺困惑的问题,其解决方法可以简单到只需使用if...else...控制结构即可。

用户为什么会困惑?因为他已超出了用户的职责范围——清楚的表达业务需求,而试图猜想具体的解决方法。具体解决方案的提出,需要对底层实现比较了解,就交给开发人员好了!

猜你喜欢

转载自blog.csdn.net/hpdlzu80100/article/details/83096288