润乾集算报表实现多数据集关联的示例
多数据源混合的场景在报表开发中非常常见,如:数据来源于多个数据库、数据库和文件混合的场景。传统报表工具在处理这种问题时往往采用两种方式:1将数据统一到一个数据库中,来避免跨库查询或数据库文件混合查询;2使用高级语言为报表自定义数据集,在程序中完成多数据源关联运算。上述做法除了对数据库产生影响、增加实现难度外,往往报表性能也不理想。
使用润乾集算报表对异构数据源的有效支持可以很方便完成多数据源关联报表,这里通过示例说明。
跨库数据源
企业员工每月应发工资跟员工的基本工资、考勤以及绩效有关,考勤信息来源于人力部门的考勤系统(hsql数据库),基本工资和绩效信息则存储在财务系统(mysql数据库)中。现需要根据这两个数据库完成每月员工应发工资报表。使用集算报表完成可以采用如下步骤:
编写计算脚本
首先使用集算器编写集算脚本(salary.dfx),内容如下:
A1-A2分别连接两个数据库;
A3-A5根据两个数据库连接分别取员工、绩效、考勤表数据;
A6-A7关闭数据库连接;
A8按照员工姓名关联三表数据;
A9新建结果序表,计算应发工资;
A10为报表返回结果集。
新建报表
打开集算报表设计器,菜单栏选择文件-新建报表,点击“生成空白报表”,新建一个空白报表。
设置数据集
菜单栏选择报表-数据集,数据集类型选择“集算器”,在弹出的集算器数据集设置窗口中选择上面编辑好的计算脚本文件,创建数据集ds1。
编辑报表模板及表达式
报表模板第一行为报表头,第二行为表达式。
通过A2取员工列表,B2根据A2扩展取值应发工资。
展现报表
在报表设计器中,选择工具栏中的“预览报表”,即可在设计器中查看报表展现结果。
数据库文件混合数据源
集算报表除了对跨库多数据源关联有效支持外,完成数据库和文件的混合运算也非常容易。这里改变一下上述实例,将数据来源更改为数据库和文件。
计算脚本如下:
与跨库数据源关联不同的是,集算报表可以直接读入文件,从而与数据库表直接完成关联计算。
转载于:https://blog.51cto.com/report5/1547393
润乾集算报表实现多数据集关联的示例相关推荐
- 润乾集算报表优化应用结构之混合数据源
在报表项目中,报表源数据常常会来自于多种异构数据源.例如:关系型数据库(oracle.db2.mysql),nosql数据库(mongodb),http数据源,hadoop(hive.hdfs)甚至是 ...
- 润乾集算报表多样性数据源之动态SQL传递
大多数情况下报表的数据源SQL都是固定的,但有时也需要动态变动其中某些部分实现动态拼出,比如在报表应用中允许用户通过选择表和字段查询自己关心的报表数据,报表开发时则希望对同类报表(明细或汇总)使用同一 ...
- 润乾集算报表呈现输出之表头重复
在报表展现或打印时为了便于查看数据,往往希望报表头在每页中重复出现.润乾集算报表除了可以实现每页均重复同样的表头外,还可以实现分组表头重复,即当分组出现在多页时显示同一分组表头.下面分别来看一下在集算 ...
- 润乾集算报表用Java动态修改报表数据源
实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景.常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改 ...
- 润乾集算报表提升性能之可控缓存
使用缓存能够提升报表性能是不争的事实,一般高端报表工具都会提供报表缓存的功能,用于将整个报表计算结果缓存到文件系统中,以便用户在下次訪问同參数报表时能够高速读取缓存结果进行报表展现,集算报表也具有这样 ...
- 润乾集算器与帆软报表集成 (直接通过 jdbc,类 DB 存储过程方式调用)
集算器概述 集算器作为一种大数据计算工具,不仅在润乾产品体系中能发挥它的巨大作用,在其他绝大部分数据处理.数据计算领域的项目.产品中,也都有他助力计算的身影.比如传统的报表工具,报表项目中,80% 的 ...
- 报表没完没了怎么办? | 润乾集算器提效报表开发
完整资料下载: 报表没完没了怎么办?| 报表提效方案
- 集算报表用Java动态修改报表数据源
实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景.常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改 ...
- 润乾V5手机报表说明文档
1.手机报表实例页面简要说明 index.jsp 是报表资源列表页面: mbReport.jsp 是报表展现页面: mbParam.jsp是参数报表展现页面: echarts.jsp是带有echart ...
最新文章
- R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置x轴的标签文本使用粗体字体)
- 【步态识别】基于CNN深度学习的步态识别算法的MATLAB仿真
- C语言实现常用数据结构——堆
- centos rsyslog mysql_centos7+rsyslog+loganalyzer+mysql 搭建rsyslog日志服务器
- c创建python虚拟机_Docker-ce运用一:创建虚拟机
- 【WebRTC---序篇】(二)Windows平台WebRTC源码编译
- Java StringBuilder subSequence()方法与示例
- stm32c语言设计以及注释,13个基于STM32的经典项目设计实例,全套资料~-嵌入式系统-与非网...
- 前端有关vue的面试题
- 局部临时表 全局临时表 表变量
- Git add 常见用法
- 单商户商城系统功能拆解19—订单管理
- tomcat启动startup出现闪退问题
- 文件或图片上传到服务器的流程,2019中级报名照片上传流程,及报名照片审核处理工具使用方法...
- Markdown标题加粗居中写法
- 转:时域错误隐藏个人理解_Phinex的博客_雅虎博客_雅虎空间
- 腾讯云轻量服务器和虚拟主机VPS有什么区别?
- 产品经理干久了,有哪些后遗症?
- Android 9.0系统软件进入视频界面发生闪退
- 解决error ‘XXX‘ is not defined no-undef且项目没有eslintrc.js文件问题
热门文章
- JavaScript获取文本框光标的像素位置(转载)
- Java并发容器J.U.C
- 计算机桌面不来回变黑,电脑屏幕变小了左右黑几种解决方法
- 【蜕变之路】第31天 Spring Tool Suite和IntelliJ (2019年3月21日)
- Android Studio 完美解决 “Android SDK Manager 无法更新“、 ”connection error” 的问题...
- iOS:ASIHttpRequest虽不更新,但仍值得详细了解
- HttpServletRequest 需要导入xx包?
- ubuntu16 下 源码配置Lnmp环境
- eat pray love
- 一起谈.NET技术,asp.net页面中输出变量、Eval数据绑定等总结