报表工具之JasperReports+iReport(3)
1、配置XML文件
jasperreports的XML配置文件局域jasperreport.dtd文件而来。
1)根元素jasperReport
其子元素有:报告的字体reportFont,参数parameter,查询字符串queryString,字段field,变量variable,组group,标题title,页眉pageHeader,列眉columnHeader,表明细detail,列脚columnFooter,页脚pageFooter。
属性有:列宽columnWidth,列间距columnSpacing,左边距leftMargin,顶边距topMargin,底边距bottomMargin。
2)报表层字体含义reportFonts
无子元素;
属性有:名字name,是否缺省isFault,字体名fontName,字体大小size,是否粗体isBold,是否斜体isItalic,是否带下划线isUnderline,isStrikeThrough,PDF字体名pdfFontName,PDF编码pdfEncoding,是否嵌入PDF(isPdfEmbedded)。
3)用于产生报表的对象参数parameter。引用P${name}
其子元素有:ParameterDescription,defaultValueExpression
属性有:name,class
4)从数据库检索数据的查询SQL语句 queryString
5)包含于report中的数据库表列字段 field。 引用F${name}
其子元素有:variableExpression,initialValueExpression
属性有:name,class
6)用在XML文件中的变量 Variable 引用V${name}
其子元素有:variableExpression,initialValueExpression
属性有:name,class
7)报表标题 title
其子元素有:band
无属性
8)页眉 pageHeader
其子元素有:band
无属性
9)报表的列名 columnHeader
其子元素有:band
无属性
10)指定的列值detail
其子元素有:band
无属性
11)列尾columnFooter
其子元素有:band
无属性
12)页脚pageFooter
其子元素有:band
无属性
注:在report中,一个band表示一个report节点。一个band元素包括:staticText(静态文本)和textElement(文本元素)两个元素。
常见报表模型:列表、分组、主从、嵌套、交叉、图形、套打、分栏、填报。
2、创建报表
1)建立输入源
InputStream input = new FileInputStream(new File("c://JasperReports//catalog.xml"));
JasperDesign design=JRXmlLoader.load(Input);
2)创建对象
JasperReport report = JasperCompileManager.compileReport(design);
3)获得JDBC连接从数据库检索数据
InitialContext initialContext = new InitialContext();
DataSource ds = (DataSource)initialContext.lookup("java:comp/env/jdbc/OracleDBConnectionDS");
Connection conn = ds.getConnection();
4)产生可预览、打印、输出为其它格式的JasperPrint文件
JasperPrint print = JasperFillManager.fillReport(report, parameters, conn);
5)参数处理
Map parameters = new HashMap();
parameters.put("ReportTitle", "PDF JasperReport");
6)输出成XML,PDF,HTML,CSV,XLS(Excel)的任一种文件。
OutputStream output = new FileOutputStream(new File("c:/JasperReports/catalog.pdf"))
JasperExportManager.exportReportToPdfStream(print,output);
3、JasperReports的安装配置
1)JDK的安装,注意JAVA_HOME环境变量;
2)要支持中文,需itext-1.3.1.jar和iTextAsian.jar包,加入CLASSPATH环境变量中;
3)安装iReport,用iReport-1.3.0-windows-installer.exe安装;
4)JasperReport不需任何配置,将其jar包(jasperreports-1.3.0.jar)放入CLASSPATH;
5)数据库的JDBC驱动包,例如Sybase的驱动包为jconn6.jar,加入到CLASSPATH。
4、iReport的安装配置
iReport如果不用其安装文件iReport-1.3.0-windows-installer.exe安装,则需要配置。
iReport需Sun公司的JDK下的tools.jar,需拷贝到iReport的lib目录下。
iReport初始化配置的组成:
(1)建立报表;
(2)选择语言;
(3)加入到CLASSPATH。