多数据源混合的场景在报表开发中非常常见,如:数据来源于多个数据库、数据库和文件混合的场景。传统报表工具在处理这种问题时往往采用两种方式:1将数据统一到一个数据库中,来避免跨库查询或数据库文件混合查询;2使用高级语言为报表自定义数据集,在程序中完成多数据源关联运算。上述做法除了对数据库产生影响、增加实现难度外,往往报表性能也不理想。
使用润乾集算报表对异构数据源的有效支持可以很方便完成多数据源关联报表,这里通过示例说明。
跨库数据源
企业员工每月应发工资跟员工的基本工资、考勤以及绩效有关,考勤信息来源于人力部门的考勤系统(hsql数据库),基本工资和绩效信息则存储在财务系统(mysql数据库)中。现需要根据这两个数据库完成每月员工应发工资报表。使用集算报表完成可以采用如下步骤:
编写计算脚本
首先使用集算器编写集算脚本(salary.dfx),内容如下:
A1-A2分别连接两个数据库;
A3-A5根据两个数据库连接分别取员工、绩效、考勤表数据;
A6-A7关闭数据库连接;
A8按照员工姓名关联三表数据;
A9新建结果序表,计算应发工资;
A10为报表返回结果集。
新建报表
打开集算报表设计器,菜单栏选择文件-新建报表,点击“生成空白报表”,新建一个空白报表。
设置数据集
菜单栏选择报表-数据集,数据集类型选择“集算器”,在弹出的集算器数据集设置窗口中选择上面编辑好的计算脚本文件,创建数据集ds1。
编辑报表模板及表达式
报表模板第一行为报表头,第二行为表达式。
通过A2取员工列表,B2根据A2扩展取值应发工资。
展现报表
在报表设计器中,选择工具栏中的“预览报表”,即可在设计器中查看报表展现结果。
数据库文件混合数据源
集算报表除了对跨库多数据源关联有效支持外,完成数据库和文件的混合运算也非常容易。这里改变一下上述实例,将数据来源更改为数据库和文件。
计算脚本如下:
与跨库数据源关联不同的是,集算报表可以直接读入文件,从而与数据库表直接完成关联计算。