前言:公司研发的系统需要做报表功能,找到了JasperReports边学习边做,过程中遇到了以下的问题,百度相关内容不算多,自己摸索解决后在此记录解决方法。
面向人群:对JasperReport的使用有一定了解、Java语言基础
一、柱状图、条形图、折线图等等的数据绑定
在设置好数据集后拖拽chart选择类型制作图表,这里选择Bar Chart作为讲解示例
Series:点击三个小点图标
将会弹出以下界面,如果是常量的话,那么有多少个就有多少个图示
如果是字段,该字段有多少个可能值,就会有多少个图示
这里把它设置成id,再看看效果
Label:在条形上面显示的标签,一般显示对应的值(value)的字符串类型。注意一定是字符串类型,否则编译报表时会报错。
然后在chart属性中做一些修改
然后看看效果
二、子数据源参数的来源问题
运行报表时输入的参数是主数据源中定义的参数,子数据源的参数需要在具体图表中设置。
先来看一个例子:仅在子数据源中定义了参数id,sql中使用了该参数。在运行报表的时候并没有提示输入id,运行后显示也出了问题
子数据集sql:
参数定义:
运行后:
由于运行前jasper只接收主数据源中的参数,所以这里才会是这样。
解决方案:在图表中配置主数据源参数与子数据源参数的映射关系
1、先在主数据源中创建参数id
2、还记得前面图中标注的DataSet吧,这里派上用场了。设置Bar Chart
点击Parameters,添加一条
一路确定,编译运行。可以输入参数了
问题解决
版权声明:本文为Bad_lemon原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。