怎样做到报表热切换?

 

报表热切换(热部署)是指修改后的报表无需重启应用就能生效。通常报表工具开发的模板(解释执行的)可以做到热切换,关键是报表数据准备环节。如果数据准备使用存储过程或 Java 因为需要编译才能运行,往往无法做到热切换,而复杂报表业务又经常会采用这些手段,因此会面临热切换实现难题。

使用集算器 SPL 可以彻底解决报表热切换的问题。集算器是一款开源数据处理引擎,擅长结构化数据计算,计算类库丰富可以满足复杂报表数据准备工作。同时,esProc 支持多种数据源(RDB、NoSQL、Json、CSV、Webservice 等),还可以实现跨数据源的混合计算。

集算器提供了独立的计算语法 SPL 可以分多步完成报表数据准备工作,重要的是,SPL解释执行可以很好实现报表数据源热切换。

SPL 的语法很简洁,比如:

根据股票记录表查询股价连续上涨超过 5 天的股票及上涨天数(股价相等记为上涨)并以报表呈现。


A


1

=db.query("select * from stock_record order by   ddate")


2

=A1.group(code)


3

=A2.new(code,~.group@i(price

计算每只股票的连续上涨天数

4

=A3.select(maxrisedays>=5)

选出符合条件的记录

同样的计算使用 SQL 要嵌套多层才能完成,敏捷的 SPL 语法在实现复杂计算时优势明显。

此外,集算器可以作为嵌入式 JDBC 与报表工具集成使用,报表工具通过 JDBC 方式访问 SPL 计算结果,就像访问数据库一样。

imagepng

解释执行的呈现模板(报表工具)+ 解释执行的数据准备(集算器)才能最终实现报表热切换。