概述
本文为笔者基于api获取json数据作为数据源开发的普通报表流程中踩到的一些坑及技巧的分享,面向和笔者一样未接触过润乾报表或其他报表工具且当前正在学习使用润乾报表开发的新手,版本为20243月的“试用授权”版,官方文档其实写的很清楚,但是较为分散,这里做简单分享,如有错误,欢迎各位读者指正。
1.软件安装
下载地址:润乾报表|报表下载-报表软件下载-报表产品下载,下载润乾报表和集算器
适用授权也有期限,似乎是2个月,以下载的压缩包中的时间戳为基准,下载时请进入官网后进入下载链接下载最新版
修改工具编码格式:
根据数据源编码进行软件的编码修改
润乾报表编码修改:点击“工具”-“选项”-“集算器选项”,修改合适的缺省字符集,一般修改为UTF-8(如不修改润乾报表软件编码,会导致生成的报表中文乱码)
集算器软件编码修改:点击“工具”-“选项”-“环境”,修改合适的缺省字符集(如不修改集算器软件编码,如读取文件时路径中存在中文,文件将读取失败,所有rpx及spl文件目录建议使用全英文名)
2.报表开发
2.1模版导入
点击“工具”-“导入Excel”,选择需要导入的Excel模版,选择合适的文件保存目录,点击“执行转换”,将生成对应文件名称的rpx文件。
注1:导入Excel报表会将Excel中所有的列和行作为最终展示的数据区域,包括Excel中原本的空行和列,所以导入后,请将不需要的行和列删除。
注2:设置报表的行属性,选中行后,在右侧“行类型”设置对应的类型,润乾报表对行属性有严格的顺序要求,顺序为1.分页页眉, 2.头标题,3.报表头,4.分组表头,5.数据区,6.报表尾,7.尾标题,8.分页页脚。
2.2 数据源配置
点击“工具”-“数据源”,新建数据源,配置对应的数据库信息
注1:连接数据库需要确保软件安装目录下web\tomcat\lib及web\webapps\demo\WEB-INF\lib下已经存放数据库连接使用的jar包,oracle11gjdbc-10.2.0.2.jar,该jar包可从软件安装目录下common\jdbc获取
注2:数据源配置完后检查安装目录下web\webapps\demo\WEB-INF\raqsoftConfig.xml中DB的配置,如后续项目启动时遇到问题,请手动修改该文件添加DB信息,value=1代表数据库为oracle,raqsoftConfig.xml的其他配置参考官方文档http://d.raqsoft.com.cn:6999/esproc/tutorial/pzraqsoftconfig.html
2.3 建立数据集
笔者在开发过程中尝试使用了三种数据集,分别为SQL检索,集算器和脚本数据集,三者各有特点,SQL检索有单独的开发菜单页,集算器有单独的调试工具(文件类型为spl),脚本数据集结合了两者的功能但只能在报表工具中开发,虽然不产生额外的脚本文件但是调试较为不便,但其优点在于可以将SQL检索和集算器脚本相结合,笔者开发过程中涉及到参数的使用,需要先使用参数从数据库中获取某编号,再将该编号作为post请求的参数获取最终的数据,且报表文件过多,因此使用了脚本数据集作为最终的数据集,但集算器在开发期间作为调试工具,可以直观的查看数据。
2.4 参数配置
在开发过程中,数据往往不是固定不变的,需要根据页面选择的参数或其他页面跳转传递的参数对数据进行变化展示,无论何种方式首先在开发的报表文件中都需要新建对应的参数,通过页面选择参数,则需要建立额外的参数模版,页面跳转带参则不需要。
注1:参数模版在新建报表文件时需要选择“报表类型”为参数模版,普通模版无法对单元格数据进行“编辑风格”
注2:参数模版的文件名需要和报表文件对应,参数模版也是后缀为rpx的报表文件,但是需要有_arg后缀,如报表文件为test.rpx,则参数模版文件应为test_arg.rpx
注3:使用官方的demo项目发布报表时,对preview.jsp或showRepoet.jsp可以不做任何修改,这两个jsp中有代码自动获取报表文件和模版文件的目录信息,实际开发中或想自定义参数模版名,则需要修改对应jsp中参数标签下的参数模版名
注4:参数模版中需要在对应的单元格中设置“web”属性值为对应的参数名,验证参数是否传递进数据集可以在集算器或脚本数据集中打印变量名在控制台查看变量输出信息(脚本中添加=output(变量名))
注5:脚本数据集、集算器或SQL检索的数据集中参数需要和脚本中的?一一对应
<report:param name="form1" paramFileName="test_arg.rpx" /> //参数模板tag,参数表单名称命名无要求
<report:html name="report1" //结果报表tag
srcType="file"
reportFileName="test.rpx"
needImportEasyui="no"
/>
其中paramFileName 与 reportFileName 属性值中的rpx文件路径,可以是相对路径,也可以是绝对路径,相对路径则相对于配置文件raqsoftConfig.xml中的报表应用资源路径。
2.5 实例
这里放一个简单的实例
1.创建报表 test.rpx
2.创建参数模版 test_arg.rpx
B2和D2的WEB属性值填写对应的参数名
3.创建数据集
上图中sql中对应的两个“?”需要和参数列表中序号一一对应,有几个“?”就需要有几个参数,参数列表中参数表达式和报表中定义的参数保持一致
4.预览
tips:有时报表过宽或过长,但是想不分页展示,这时需要在jsp的html标签中设置 width="-1",即横向不分页,同理height="-1"为纵向不分页
3.数据集补充
2.5中介绍了简单的实例,本章节介绍笔者在开发中对其他数据集的尝试,实现页面传参金数据集后,先通过数据库进行数据筛选获取某编号,再将获取的编号拼接进post请求中通过api获取数据。
A1中ora为数据源名称,query函数中,第一个参数为执行sql ,后续接sql中使用到的报表参数,也需要和“?”一一对应
A2中取出A1中的resultno
A3中将resultno拼接进json的参数列表,注意json的格式"需要进行转译
httpfile其他使用方式参考Function-httpfile() (raqsoft.com.cn)
A4中取出api返回json中的data项
A5最终返回数据集