• 0
  • 0
分享
  • JasperReport报表生成工具的基本使用和常见问题——软件测试圈
  • 曼倩诙谐 2022-06-17 11:45:25 字数 1715 阅读 944 收藏 0

  JasperReports介绍

  JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF、HTML或者XML格式,该库完全由Java写出,可以用于在各种Java应用程序,非常适合Java开发者用来做报表生成。

  基本使用指南

  新建项目

1.png

  首先选择模板,这里就直接选了普通的A4模板。

2.png

  这里用来设置文件名字和文件路径。

3.png

  这里是选择数据源,我这里已经事先创建好了数据库连接,在后续测试取数据的时候会用到。

4.png

  这里就是JasperReport的主界面,首先介绍一下界面的五个主要区域:

  区域1:选择数据源和项目;

  区域2:用于展示报表的内容列表,报表内所含有的所有组件信息都会展示在这里;

  区域3:就是可视化报表内容区域,包含报表样式,报表源码和预览生成;

  区域4:组件列表;

  区域5:属性编辑区域。

  再介绍一下需要用的几个基本属性名称:

  Parameters:报表的参数,通常由外部传入数据填充;

  Fileds:字段,由关联的数据库或实体类生成;

  Vareables:变量,可以用来进行一些数学计算。

  最后介绍一下报表内容的几个模块:

  Title(标题):只在整个报表的第一页最上端显示,其他页面均不显示;

  Page Header(页头):在整个报表每一页都会显示,第一页在Title区域下面,之后的每一页均在页面的最上端显示;

  Column Header(列头):Detail中打印的是一张表的话,Column Header就是表中每一列的列头;

  Deatil(详情):报表内容,可以循环显示数据;

  Column Footer(列脚):Detail中打印的是一张表的话,Column Footer就是表中每一列的列脚;

  Page Footer(页脚):整个报表每一页都会在最下端显示,一般用来显示页码;

  Summary(合计):出现在整个报表的最后一页中,在Detail后面,主要用来做报表的合计显示。

  开始画报表

5.png

  这是该项目的源代码,我在这里需要取一些产品表里的数据,queryString标签内就是主项目的取数sql,直接加进去。

6.png

  这里加入sql后取到了产品ID字段,后续会在报表内显示,所以在FIelds域里也新增了ID_PRODUCT的属性,可以直接在代码里添加,也可以在主界面添加,如下图,直接右键Create Field,然后在区域5里可以修改类和名称。

7.png

8.png

  接下来我们将Static Text和“Text Field”拖入Detail区域中,一个是静态文本,一个用来放属性。

9.png

  双击Text Field,可以选择我们刚才新添加的属性ID_PRODUCT,并将静态文本改为产品ID,即可初步生成我们的报表。

10.png

  可以看到已经生成成功了,我这里只去了前十条数据,这里再展示一下通过外部输入数据来筛选数据,使用投资性质VLU_INVEST_PROPERTY这个字段,先添加该字段的外部输入参数,再在sql里加入对应筛选的语句。

11.png

  之后将该字段加入主界面,生成报表即可根据外部输入该字段来筛选数据。

12.png

13.png

  这里模板文件生成的基本的操作流程就已经介绍完了,这时候是.jxml文件,然后需要build成.jasper文件,就可以在java程序里调用jasper相关方法生成报表了。

  常见问题

  如图错误

14.png

  这个错误一般是由于页面的宽度和列长度不匹配导致的。

15.png

  在xml源码开头将columnWidth改为比pageWidth小一截即可。

  主界面有些表格无法显示

  很有可能是表格重叠导致,分开后即可。


  无查询结果

  在使用table组件后,外部数据输入后sql查询没有结果。

  因为外部输入的数据没有传递到子查询中,需要设置值的传递。

16.png

17.png

  像图中所示即可将主项目的值传递到table中。

  内存泄漏或者溢出

  可以使用仿真器来解决问题,推荐使用JRGzipVirtualizer仿真器,能够将内存泄漏压缩在最小的范围里了。



作者:田佳霖   

来源:http://www.51testing.com/html/78/n-7789478.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   (一)什么是敏捷测试  首先敏捷测试(Agile testing)是测试的一种,敏捷测试的理念是,和编码一样,测试是开发的一个关键部分。在敏捷中,测试被直接集成到软件开发过程中,以便尽早、频繁地发现bug。因此,测试人员可以在开发过程的每一个节点上发现问题,从而使产品快速走向发布。  (二)敏捷测试的特点  敏捷测试的特点有以下几点:  1) 高度迭代  2) 有周期性  3) 重点关注持续迭代地测试新开发的功能  4) 测试介入的时间特别早。  5) 强调从客户的角度,即从使用系统的用户角度,来测试系统。  (三)传统的瀑布模型  传统测试即基于瀑布模型开发的测试,瀑布模型将软件生命周期...
            0 0 577
            分享
          •   在职场的浩渺海洋中,每一位航行者都怀揣着乘风破浪的梦想,期盼着能够稳健驾驶自己的航船,穿越迷雾,直达那象征着成就与荣誉的成功港湾。然而,现实中的职场世界绝非总是风平浪静,它更像是变化莫测的大海,隐藏着无数突如其来的暗礁与风暴,其中最为令人感到无助与憋屈的便是那不时冒出来的“背锅事件”。  比如,有一次,小张是个热衷于团队合作的年轻人,他被同事小李请求帮忙审核一份重要的销售报告。出于好心,小张加班加点,认真审查了报告的数据和逻辑,自认为已经尽到了义务。然而,报告提交上去后,却发现关键数据存在严重误差,引发了客户对公司业务专业度的质疑。结果,由于小李是项目的主导者,但他在问题暴露后立刻将所有责...
            0 0 788
            分享
          • 01运行1)App安装完成后的试运行,可正常打开软件。2)App打开测试,是否有加载状态进度提示。3)App页面间的切换是否流畅,逻辑是否正确。4)注册  同表单编辑页面  用户名密码长度  注册后的提示页面  前台注册页面和后台的管理页面数据是否一致  注册后,在后台管理中页面提示5)登录  使用合法的用户登录系统  系统是否允许多次非法的登录,是否有次数限制  使用已经登录的账号登录系统是否正确处理  用户名、口令(密码)错误或漏填时能否登陆  删除或修改后的用户,原用户名登陆  不输入用户口令和重复点“确定/取消”按钮,是否允许登录  登陆后,页面中登录信息  页面中有注销按钮  登录超...
            12 12 2082
            分享
          •   在前端性能优化中,最重要的就是缓存,使用缓存可以极大的提升浏览器的响应速率。  什么是缓存呢?  当我们第一次访问某个网站时,浏览器会把网站中的图片等资源存储在电脑中,以备后续使用,第二次访问该网站时,浏览器直接访问缓存中的数据,从而达到提高浏览器的响应效率,优化用户的体验。  缓存的优点  1.提高浏览器的响应速率;  2.减少服务器的访问压力;  3.减少对网络的压力。  除了浏览器缓存之外,还存在CDN缓存、代理服务器缓存等等;这里主要描述浏览器缓存,浏览器缓存也指的是HTTP缓存,当我们使用浏览器用http协议与服务器交互时,浏览器会使用一种与服务器约定的规则进行缓存操作。  缓存...
            0 0 1357
            分享
          •   5 月 7 日,广汽埃安泰国工厂 185(保税区运营许可证)协议签字仪式在泰国曼谷海关总署举行,标志着泰国本地化生产取得关键进展。  据介绍,该保税区自申请至获批全程历时 4 个月,是目前泰国电动车行业落地最快的保税工厂。  作为广汽集团在海外的第一个保税工厂,获得保税区的批准是埃安泰国本地化战略尤为关键的一步。185(保税区运营许可证)获批后,所有生产零件进口关税将降至 0;且保税区内生产的电动车与本土生产电动车同等享受东盟成员国内互免关税待遇及清关便利,是保障东南亚本地化生产的重要前置条件。  广汽集团表示,泰国工厂未来将进一步发挥东南亚零件及整车物流集散功能,全面巩固广汽埃安的“泰国...
            0 0 369
            分享
      • 51testing软件测试圈微信