JasperReport学習ノート2-簡単なレポート作成例


簡単なjrxmlファイルを作成します。

<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="FirstReport">
	<detail>
		<band height="20">
			<staticText>
				<reportElement x="20" y="0" width="200" height="20" />
				<text><![CDATA[If you don't see this, it didn't work]]></text>
			</staticText>
		</band>
	</detail>
</jasperReport>
以上は簡単なJRXMLファイルであり、実際には標準XMLファイルであり、<jasperReport>はルート要素であり、<static Text>は静的データを表し、<reportElement>は<staticText>の位置と幅を定義し、<text>は実際の静的データを定義している。
二、JRXMLファイルをjasperファイル、ファイルフローまたはJasperReportオブジェクトに解析する(実際の状況による)
1.WEBプロジェクトを作成し、WEBサイトのディレクトリの下にディレクトリレポートを作成する
2.JasperCompleManager内の方法でJRXMLファイルを解析してjasperファイル、ファイルフローまたはJasperReportオブジェクトになります。
JRXMLファイルのparseをコピーしてjasperファイルにします。

JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml", "WebRoot/report/langhua.jasper");
またはJasperReportオブジェクトを生成します。

public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml") 
またはストリームの方法で生成されます。

public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)
もちろんJasper CommpileManagerもJasperファイルをJRXMLに変更することができます(JRXMLフローを含めて、全部静太の方法です。)

writeReportToXmlStream
writeReportToXmlFile
三つ目は、JasperReportオブジェクト、ファイルフローまたはjasperファイルがあれば、JasperFillManagerを使ってJasperPrintオブジェクト、jrprintファイル、jrprintファイルフローを生成することができます。
次のとおりです
JasperPrintオブジェクトを生成

public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)
他のものを生成

//    
public static void fillReportToFile(
		String sourceFileName, 
		String destFileName, 
		Map parameters,
		Connection connection
		) 
//   
public static void fillReportToStream(
		JasperReport jasperReport, 
		OutputStream outputStream, 
		Map parameters,
		Connection connection
		) 
ステップ4で、JasperExport Managerを使ってエクスポートまたは表示します。

JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
//       
完全な例

 JasperReport jasperReport;
	    JasperPrint jasperPrint;
	    try{
	      jasperReport = JasperCompileManager.compileReport("WebRoot/report/jasperreports_demo.jrxml");
	      jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),new  JREmptyDataSource());
	      JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
   }
	    catch (JRException e){
	      e.printStackTrace();
	    }