http://www.iteye.com/topic/399750
 
一,創(chuàng)建簡(jiǎn)單的jrxml文件 
 
 
  Xml代碼 ?  
<?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>?? 
 
<?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>
 
 以上是一個(gè)簡(jiǎn)單的JRXML文件,實(shí)際上就是一個(gè)標(biāo)準(zhǔn)的XML文件,<jasperReport>是根元素,<staticText>表示靜態(tài)的數(shù)據(jù),<reportElement>定義了<staticText>的位置和寬度,<text>定義了實(shí)際的靜態(tài)數(shù)據(jù)。 
 
 二,把JRXML文件解析成jasper文件,文件流或JasperReport對(duì)象(根據(jù)實(shí)際情況) 
 
 1.建立一個(gè)WEB工程,再在WEBROOT目錄下建立一個(gè)目錄report 
 2.使用JasperCompileManager里面的方法解析JRXML文件成jasper文件,文件流或JasperReport對(duì)象 
 
 把JRXML文件parse,再complie成jasper文件 
 
 
  Java代碼 ?  
JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml",?"WebRoot/report/langhua.jasper");?? 
 
JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml", "WebRoot/report/langhua.jasper");
 
 
 或者生成JasperReport對(duì)象 
 
 
  Java代碼 ?  
public?static?JasperReport?compileReport("WebRoot/report/jasperreports_demo.jrxml")??? 
 
public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml") 
 
 
 或者以流的方法生成 
 
 
  Java代碼 ?  
public?static?void?compileReportToStream(InputStream?inputStream,OutputStream?outputStream)?? 
 
public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)
 
 
 當(dāng)然JasperCompileManager也可以把Jasper文件變成JRXML的(包括JRXML流,都是靜太的方法) 
 
 
  Java代碼 ?  
writeReportToXmlStream ??writeReportToXmlFile?? 
 
writeReportToXmlStream
writeReportToXmlFile
 
 
 三,有了JasperReport對(duì)象,文件流或jasper文件之后,就可以用JasperFillManager生成JasperPrint對(duì)象,jrprint文件,jrprint文件流 
 如下 
 生成JasperPrint 對(duì)象 
 
 
  Java代碼 ?  
public?static?JasperPrint?fillReport(JasperReport?jasperReport,Map?parameters,?JRDataSource?dataSource)?? 
 
public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)
 
 
 生成其它 
 
 
  Java代碼 ?  
??public?static?void?fillReportToFile( ??????????String?sourceFileName,? ??????????String?destFileName,? ??????????Map?parameters, ??????????Connection?connection ??????????)? ????public?static?void?fillReportToStream( ??????????JasperReport?jasperReport,? ??????????OutputStream?outputStream,? ??????????Map?parameters, ??????????Connection?connection ??????????)??? 
 
//生成文件
public static void fillReportToFile(String sourceFileName, String destFileName, Map parameters,Connection connection) 
//文件流
public static void fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters,Connection connection) 
 
 
 第四步,使用JasperExportManager導(dǎo)出或顯示 
 
 
  Java代碼 ?  
JasperExportManager.exportReportToHtmlFile(jasperPrint,?"c://1.html"); ??JasperExportManager.exportReportToPdfFile(jasperPrint,?"c://1.pdf"); ???? 
 
JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
//還有很多方法的
 
 
 完整的例子 
 
 
  Java代碼 ?  
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(); ??????}????????? 
 
 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();}		
 
 ?
 
=========http://blog.csdn.net/tianping168/article/details/3021387
 
?運(yùn)行jasperreports中自帶的demo的方法 
 
 ?  ?
 相關(guān)介紹
 JasperReports是一個(gè)開源的java報(bào)表制作引擎
 http://jasperreports.sourceforge.net
 iReport是JasperReports的一個(gè)GUI工具,用來生成JasperReports的jrxml文件。
 http://ireport.sourceforge.net 
 運(yùn)行環(huán)境的配置
 1:JDK和ANT的安裝與環(huán)境變量的配置(這里就不說了,我想大家很容易找到資料)
 2:用ant編譯demo中的例子
 ?到cmd方式下,到某一個(gè)sample的目錄,比如到
 ?jasperreports/demo/samples/alterdesign目錄下
 ??? 步驟1: cmd中鍵入?? ant 
 ??? ??會(huì)提示你編譯java成功,將生成 .class文件
 ??? ??
 ??? 步驟2: cmd中鍵入?? ant compile
 ??? ??將編譯jasper文件,生成 .jasper文件
 ??? ??
 ??? 步驟3: cmd中鍵入?? ant fill??? 
 ??? ??填充數(shù)據(jù),生成.jrprint文件
 ??? ??
 ??? 步驟4: (部分需要此功能)再新起一個(gè)cmd,? 在/demo/hsqldb目錄下鍵入ant 或者 ant runServer
 ??? ??啟動(dòng)數(shù)據(jù)庫,這是它會(huì)停在那了,所以要給他獨(dú)立一個(gè)cmd。ctrl+c會(huì)退出
 ??? ??
 ??? 步驟5: cmd中鍵入?ant viewDesign ?//查看源文件界面效果
 ??? ?????ant view?? ??//查看運(yùn)行效果
 ??? ?????
 ??? 到此應(yīng)該看到效果了吧,呵呵!
 
  
 
?
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
                            
總結(jié)
                            
                                以上是生活随笔為你收集整理的JasperReport学习笔记2-创建简单的报表例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。