开发工具:TIBCO Jaspersoft® Studio 6.19.1
1、File --> New --> Jasper Report,弹出New Report Wizard,选择 Report 模板Blank A4,点击Next;
2、在File Name中输入报表文件名称(这里演示我填入的文件名称为BarChartDemo),然后点击Next;
3、点击Next;
4、点击Finish。
创建报表文件的每一步我都截了图,说简单点,创建文件就是选一个模板、起个名称就完了。
我工作经历中涉及到报表开发的工作也不多,接触过的模板也就Blank A4,其它的报表模板我都是没有用过的。粗略地看了下JasperReports中的其它模板,感觉有用的不多,顶多可以在开发报表的时候参考下,可以直接拿来用的几乎没有。
报表文件创建成功后,我们看到的是如下界面。
删除除Detail外的其它所有部分,即仅保留Details,然后在Detail上单击鼠标右键,然后点击Maximize Brand Height。
对象Parameters的作用是从外部向报表内部传递数据。
在Parameters上单击鼠标右键,然后点击Create Parameter。
将新创建的Parameter的Name设置成dataList,Class设置成java.util.ArrayList。
在BarChartDemo上单击鼠标右键,然后点击Create Dataset。
将新创建的Dataset的Name设置成barChartDataset。
展开barChartDataset,添加两个Field。
Name | Class |
name | java.lang.String |
value | java.lang.Integer |
将Chart拖动到Detail中。弹出Chart Wizard,选择Bar Chart,然后点击Finish。
选中Bar Chart,设置Chart的宽度充满整个容器。
选中Chart,单击右键,选择Edit Chart Wizard。
配置Chart属性
如果有使用过百度的Echarts的话会对Series、Label、Value、Category有深的理解。
说明:
Dataset配置信息详情:
因为本示例程序只有一个Serie,所以我隐藏了Legend。
显示Label:
X轴说明文字调整显示角度
直接在属性里不能设置角度为负数,我是在Source里直接改的XML源码。
这样一个Bar Chart图表就创建成功了。
关键代码:
@ResponseBody@GetMapping("/chart")public void chart(HttpServletResponse response) { try { // 报表需要的动态参数 List dataList = Lists.newArrayList(); dataList.add(Dict.create().set("name", "总人数").set("value", 100)); dataList.add(Dict.create().set("name", "孕产妇").set("value", 20)); dataList.add(Dict.create().set("name", "0-6岁儿童").set("value", 5)); dataList.add(Dict.create().set("name", "老年人").set("value", 15)); dataList.add(Dict.create().set("name", "高血压").set("value", 10)); dataList.add(Dict.create().set("name", "糖尿病").set("value", 2)); dataList.add(Dict.create().set("name", "脑卒中").set("value", 18)); dataList.add(Dict.create().set("name", "冠心病").set("value", 30)); dataList.add(Dict.create().set("name", "恶性肿瘤").set("value", 12)); dataList.add(Dict.create().set("name", "慢阻肺").set("value", 8)); // 编译 JasperReport jasperReport = JasperCompileManager.compileReport( ResourceUtils.getFile("classpath:BarChartDemo.jrxml").getAbsolutePath() ); Map paramMap = new HashMap<>(); paramMap.put("dataList", dataList); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, paramMap, new JREmptyDataSource()); JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); }}
留言与评论(共有 0 条评论) “” |