关键词导读:动态日期分组 BIRT动态报表
BIRT一般擅长处理规则一致的数据,若条件不一致的动态运算在报表中是很难实现的。常规办法是创建scripted data sources, 在该脚本源上自行处理业务逻辑把数据准备好,然后直接传给BIRT展现。但SQL或scripted data sources的方式,代码写起来非常麻烦,而且工作量很大。
比如要处理这么个场景:按照开始日期、结束日期统计一段时间内订单,但要根据起止日期的跨度长短实现按天、按周、按月、按年动态分组显示结果。查询流程如下图所示:
建议使用集算器,其丰富的集合运算可以方便地完成这类计算和逻辑判断,比Java写的代码要短,比存储过程写起来更简单,比如类似的计算在集算器里可以这样写:
其中startDate,endDate为报表起止日期参数。其实还有很多类似的计算问题在BIRT中处理不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:解决BIRT动态数据源的若干示例
集算器提供了JDBC驱动,可以很方便的与BIRT等报表工具集成,BIRT调用SPL脚本有使用和获得它的方法。
关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器。