ireport 5.6教程之饼图制作过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ireport 5.6教程之饼图制作过程Ireport所需环境:ireport4.0.2,mysql5.1
目标:饼图,百分比,PDF中文
一.DB如图:
数据源配置略.
创建SQL语句:
select count(id)as id,department from piechart group by department;
二.创建饼图
一路下一步到key and values的时候
填写如下:
然后完成.拖动改变下大小后
点击preview可以查看预览生成结果如下:
三.为饼图添加百分比显示
在饼图属性里面:
填写如下:
{0}{2}
说明:{0}为名称{1}为数量{2}为百分比
在次预览如图:
四.PDF预览中文问题
4.0.2中pdf预览中文依然存在问题,默认对静态文本将不会显示中文,依旧悲剧.可以采用原来的办法,既加入itext-asian.jar到classpath中,然后修
改pdf font name和pdf encoding的办法来显示中文,但这种做法ireport已经抛弃,这里采用另一种做法.
下载truetype字体,我下载的是微软雅黑字体:
选择[工具]->[选项]->[ireport]下font卡牌栏,install font,然后选择刚下载的字体文件,下一步如图:
然后完成.这时候直接预览pdf的话还是悲剧,还要做最后一步修改.在static text的属性里面修改
Font name为雅黑字体.然后预览:
设计好报表后,把*.jasper文件拷贝到工程中,可以开始编码了,但是上一篇写的只是设计器中预览出现中文,而程序生成的PDF报表依旧不能显示中文,这篇将会做个补充.
先填代码吧:
Java代码
1.package .gkhb.ireport.demo;
2.
3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.SQLException;
6.import java.util.HashMap;
7.
8.import net.sf.jasperreports.engine.JRException;
9.import net.sf.jasperreports.engine.JRExporter;
10.import net.sf.jasperreports.engine.JRExporterParameter;
11.import net.sf.jasperreports.engine.JasperFillManager;
12.import net.sf.jasperreports.engine.JasperPrint;
13.import net.sf.jasperreports.engine.export.JRPdfExporter;
14.
15./**
16.*导入报表为pdf文件
17.*/
18.public class ExportDemo{
19./**
20.*报表模板位置
21.*/
22.private final static String jasperfile="E:/myeclipse/IreportDe
mo/WebRoot/WEB-INF/jasperfiles/pieChart.jasper";
23.
24./**
25.*目标文件位置
26.*/
27.private final static String desc="G:/download/font/pie_chart_
demo.pdf";
28.
29./**
30.*register database driver for mysql
31.*/
32.static{
33.try{
34.Class.forName("com.mysql.jdbc.Driver");
35.}catch(ClassNotFoundException ex){
36.ex.printStackTrace();
37.}
38.}
39.
40.@SuppressWarnings("unchecked")
41.public static void main(String[]args){
42.HashMap hm=new HashMap();
43.try{
44.//Fill the report using an empty data source
45.JasperPrint print=JasperFillManager.fillReport(jasperfil
e,hm,connectionProvider());
46.
47.//Create a PDF exporter
48.JRExporter exporter=new JRPdfExporter();
49.//JRExporter exporter=new JRHtmlExporter();
50.
51.//Configure the exporter(set output file name and print o
bject)
52.exporter.setParameter(JRExporterParameter.OUTPUT_FILE_
NAME,desc);
53.exporter.setParameter(JRExporterParameter.JASPER_PRIN
T,print);
54.
55.//Export the PDF file
56.exporter.exportReport();
57.}catch(JRException e){
58. e.printStackTrace();
59.System.exit(1);
60.}catch(Exception e){
61. e.printStackTrace();
62.System.exit(1);
63.}
64.}
65.
66./**
67.*database connection provider
68.*@return
69.*/