用过水晶报表、FastReport或某些国产报表组件的人,都知道每一张展示得很漂亮的报表,必须经过事先的报表定义过程。一般的报表软件会提供一个报表设计器(要代码实现报表多怕怕呀),很多厂家的买点就是说自己的报表设计器如何如何先进,能做如何如何复杂的中国式报表,但就其功能来说,无非是以下一些:报表框架设计、数据源与单元格的绑定、表内计算关系设置等。这样需要预先定义的报表,我们暂且叫做“报表分析模板”,我们把这样的分析叫做“模板分析”。
报表定义操作还是有相当的技术成分,严格说不太适合给业务人员使用。难道所有的报表都需要实现定义吗?
非也!如果要在OLTP基础上进行报表展示,可能必须要经过报表定义,因为OLTP数据的语义是各不相同的,没有统一的数据模式;如果数据已经在OLAP数据仓库中了,则大量规则化报表可以无需定义,而通过软件界面操作直接生成,如下钻、切片等分析结果报表。其原理是,系统根据用户操作产生分析结果,再根据分析结果生成报表来展示数据,也就是数据和报表都是由系统自动生成的。这就是所谓的即席报表(Ad-hoc)或即席查询,我们不妨通称为即席分析。