JAVA涂鴉
          關(guān)于JAVA的點(diǎn)點(diǎn)滴滴
          posts - 50,  comments - 689,  trackbacks - 0

          最近工作中用到報(bào)表,而我在學(xué)習(xí)JasperReport的過程中遇到了很多問題(主要是國(guó)內(nèi)的資料太少了),網(wǎng)上很少找得到,在此我就把我找到的一些資料和大家共享,希望能對(duì)大家有所幫助。
          1、JasperReport和iReport的資源,最新版本可以到下面官方網(wǎng)站得到

          iReport官方網(wǎng)站:
          http://ireport.sourceforge.net
          JasperReport官方網(wǎng)站:
          http://jasperreports.sourceforge.net

          2、安裝
          1)、JDK的安裝,并配置JAVA_HOME
          比如我的JAVA_HOME路徑如下:
          JAVA_HOME  D:\Program Files\j2sdk1.4.2_03

          2)、由于中文的問題,所以還需要下載:itext-1.02b.jar和iTextAsian.jar包
          下載地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
          并在CLASSPATH中設(shè)置
          例如我的CLASSPATH如下:
          CLASSPATH
          E:\Program Files\Apache GroupTomcat4.1\webapps \estreport\WEB-INF\lib\itext-1.02b.jar;E:\Program

          Files\Apache GroupTomcat 4.1\webapps\ estreport\WEB-INF\lib\iTextAsian.jar;E:\Program Files\Apache

          GroupTomcat 4.1\webapps \estreport\WEB-INF\lib;D: \ools\iReport0.2.3\lib

          3)、iReport的安裝iReport只要解壓就OK,如果沒有安裝Ant,可以直接在iReport下的noAnt目錄下,
          運(yùn)行startup.bat就可以了,這樣iReport就可以啟動(dòng)了

          4)、JasperReport
          Jasperreport不需要任何配置,你只需將下載以后的jar包放到classpath下即可
          5)、數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)包
          加入到CLASSPATH中

          3、詳細(xì)資源
          iReport官方提供了一些關(guān)于iReport視頻,對(duì)于初學(xué)者很有幫助:
          地址:http://ireport.sourceforge.net/docs.html

          JasperReport官方提供的使用指南
          地址:http://jasperreports.sourceforge.net/tutorial/index.html

          JasperReport提供的一些例子:
          地址:http://jasperreports.sourceforge.net/samples/index.html

          4、常見問題
          1)、iReport中提示框輸入中文是不能正常顯示,請(qǐng)將iReport下lib中的這個(gè)包刪除tinylaf.jar
          2)、在iReport中運(yùn)行報(bào)表時(shí)如果出現(xiàn)亂碼問題,請(qǐng)檢查itext-1.02b.jar和iTextAsian.jar這兩個(gè)包是否加到CLASSPATH
          3)、在jsp或servlet高度報(bào)表時(shí)出現(xiàn)亂碼或不顯示,請(qǐng)檢查你在報(bào)表設(shè)計(jì)過程中所設(shè)置的字體及其編碼
          比如:pdfname、pdfencoding
          5、下面是兩個(gè)調(diào)試?yán)?
          Servlet:
          import javax.servlet.*;
          import javax.servlet.http.*;
          import dori.jasper.engine.*;
          import java.io.*;
          import java.util.*;
          import java.sql.*;

          /**
          * @author Administrator
          *
          * To change the template for this generated type comment go to
          * Window>Preferences>Java>Code Generation>Code and Comments
          */
          public class TestReport extends HttpServlet {

          public void doGet(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          Connection conn = null;

          try {

          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
          conn =
          DriverManager.getConnection(


          "jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=sa");

          ServletContext servletContext =this.getServletContext();
          File reportFile = new File(servletContext.getRealPath("test/iteminfo.jasper"));
          Map parameters = new HashMap();
          Integer i=new Integer(8);
          parameters.put("pjId", i);
          byte[] bytes =
          JasperRunManager.runReportToPdf(
          reportFile.getPath(),
          parameters,
          conn);
          response.setContentType("application/pdf");
          response.setContentLength(bytes.length);
          ServletOutputStream ouputStream = response.getOutputStream();
          ouputStream.write(bytes, 0, bytes.length);
          ouputStream.flush();
          ouputStream.close();
          } catch (JRException jre) {
          System.out.println("JRException:" + jre.getMessage());
          } catch (Exception e) {
          System.out.println("Exception:" + e.getMessage());
          }

          }

          public void doPost(
          HttpServletRequest request,
          HttpServletResponse response)
          throws ServletException, IOException {

          doGet(request, response);

          }

          }


          ?
          1 首先看看

          http://plateau.sicool.com/main.html
          上的三篇ireport和Jasperreport整合開發(fā)報(bào)表向?qū)Вㄒ唬ǘㄈ?br />看完理解并自己運(yùn)行一下,OK,你入門了


          2 去找一份TheJasperReportsUltimateGuide.1.0.pdf

          看完之后你就能了解JasperReport生成的基本過程及原理,里面也回答了很多
          剛接觸這個(gè)報(bào)表工具會(huì)產(chǎn)生的疑問

          3 論壇上的經(jīng)驗(yàn)

          Java研究的論壇上有很多關(guān)于JasperReport及iReport的經(jīng)驗(yàn)及問題解答,所以
          大家在提問的時(shí)候不妨多翻翻論壇上的帖子,很多你要問的問題都能找到答案,
          還有很多寶貴的經(jīng)驗(yàn)
          當(dāng)然說起論壇最正宗還是
          https://sourceforge.net/projects/ireport/
          https://sourceforge.net/projects/jasperreports/
          大家可以到sourceforge.net去看看,論壇上提供搜索,也能翻到很多東西,順便
          練練你的英語(yǔ)

          4 學(xué)習(xí)JasperReport的Samples

          解壓jasperreports-0.5.0-project.zip 后目錄jasperreportsdemosamples
          下的例子,看看這些例子是你關(guān)于這個(gè)報(bào)表工具提升能力的最好最快的方式,
          我會(huì)在下面貼上各個(gè)例子的簡(jiǎn)要說明。
          要運(yùn)行sample下的例子,首先你要安裝ant,并設(shè)置好環(huán)境變量
          如ANT_HOME??? 值為?? D:Installant161
          然后到dos方式下,到某一個(gè)sample的目錄,比如到
          jasperreportsdemosamplesalterdesign目錄下
          運(yùn)行 ant 則會(huì)編譯報(bào)表文件
          運(yùn)行 ant view 則會(huì)展現(xiàn)報(bào)表

          5 比上面更好的資料是什么?

          就是JasperReport的源代碼,看懂源代碼,JasperReport
          就是在你腦子里的了,你想干什么都行了,優(yōu)化代碼,覆寫,繼承他的類,實(shí)現(xiàn)個(gè)性
          化的功能,甚至你可以參考他的思想,升華一下,做一個(gè)你自己的報(bào)表
          ?
          1. alterdesign

          該例子演示了報(bào)表編譯后,在報(bào)表展現(xiàn)的時(shí)候如何動(dòng)態(tài)的控制其中的元素
          比如讓某一個(gè)矩形變色或其他

          2. antcompile
          ?
          演示如何讓 ant 來編譯

          3. chart
          ?
          演示了如何在報(bào)表中添加圖像,JasperReport是用Scriptlet的方式
          往報(bào)表中添加圖像,而Scriptlet是調(diào)用也是開源的jfreechart的Api來
          生成圖形,去jfreechart看一下,該工具能的圖形生成能力也很強(qiáng)

          4. datasource
          ?
          演示了如何在報(bào)表中使用各種數(shù)據(jù)源,能夠使用beanarray
          beancollection,也可以用自定義的數(shù)據(jù)源,只要繼承了JRDataSource的
          兩個(gè)接口,這個(gè)能給用戶提供非常大的靈活性,報(bào)表的數(shù)據(jù)不用局限于一
          條Sql語(yǔ)句,也可以使用存儲(chǔ)過程,對(duì)生成報(bào)表中的數(shù)據(jù)也可以排序,二
          次檢索,等等

          5. fonts
          ?
          各種字體的演示

          6. horizontal
          ?
          演示了水平分欄的報(bào)表,演示報(bào)表中分了三欄,其中還用到了
          textFieldExpression,就像if語(yǔ)句的效果來選擇輸出的內(nèi)容

          7. hyperlink
          ?
          演示了各種樣式的鏈接

          8. images

          演示了如何在報(bào)表中加入圖像以及圖像的顯示方式

          9. jasper
          ?
          演示了分組分欄的報(bào)表,演示中用了2次group

          10. jcharts

          演示了調(diào)用另一個(gè)開源的API jcharts來往報(bào)表中加入分析圖形,原理同
          上chart,如果jfreechart都還不能滿足你分析圖形的要求,那到j(luò)charts
          里找找看吧,說不定有

          11. landscape
          ?
          演示橫向的報(bào)表

          12. nopagebreak
          ?
          演示比如在IE中不分頁(yè)的方式打印出報(bào)表的內(nèi)容,通過這個(gè)演示也可以
          了解報(bào)表輸出如何配置參數(shù)

          13. noreport

          演示了如何直接通過java程序生成JasperPrint對(duì)象來輸出

          14. noxmldesign

          演示了如何直接通過java程序生成JasperDesign對(duì)象來動(dòng)態(tài)的生成報(bào)
          表,根據(jù)這個(gè)例子,用戶可以作出自定義選列的報(bào)表,當(dāng)然比較麻煩,
          而且肯定自己要補(bǔ)充他的API庫(kù)
          (JasperReport真是強(qiáng)大啊,呵呵)

          15. pdfencrypt
          ?
          演示了pdf的輸出方式,可以給pdf文件加密碼,其實(shí)就是pdf輸出方式的
          參數(shù)配置,具體有那些參數(shù)可配置,去看看API吧

          16. printservice

          演示了如何直接打印報(bào)表

          17. query

          演示了如何讓查詢的sql動(dòng)態(tài)起來,比如你可以通過一個(gè)Jsp頁(yè)面?zhèn)?br />報(bào)表的sql的where條件,order條件,甚至整個(gè)sql語(yǔ)句

          18. rotation

          演示了文字縱向顯示的報(bào)表

          19. scriptlet
          ?
          演示了如何繼承JRDefaultScriptlet,并加入自己的處理語(yǔ)句,這個(gè)功能
          可是很強(qiáng)大的哦,看看這些接口
          beforeReportInit() afterReportInit() beforePageInit()
          afterPageInit() beforeColumnInit() afterColumnInit()
          beforeGroupInit(String groupName)
          afterGroupInit(String groupName)
          看看這些名字就知道你能完成那些功能,比如顯示一列數(shù)據(jù)后,馬上跟
          上該列數(shù)據(jù)的分析圖形,當(dāng)然你也可以加上自己的方法并在報(bào)表中調(diào)用

          20. shapes

          演示了JasperReport中自帶的圖形,及能配置的參數(shù)
          當(dāng)然你也能繼承或者覆寫JasperReport中的Api生成你要的圖形,

          21. stretch

          演示了如何處理報(bào)表中數(shù)據(jù)拉伸以及帶來周圍的線及框的拉伸,
          你能了解到雖然黑框式表格不是JasperReport中缺省的展現(xiàn)方式,
          但在JasperReport中不難實(shí)現(xiàn)

          22. subreport

          演示了子報(bào)表,還告訴你一個(gè)報(bào)表中可以有n個(gè)子報(bào)表,子報(bào)表中還可以
          嵌套子報(bào)表

          23. tableofcontents

          演示了如何生成一個(gè)有目錄的,復(fù)雜的報(bào)表

          24. unicode

          演示了各種 字符編碼

          25. webapp

          演示了如何把報(bào)表放到一個(gè)JavaWeb項(xiàng)目中,可以用Jsp Servlet
          applet,筆者做了一個(gè)有參數(shù)頁(yè)面,可以選擇html pdf applet
          輸出方式的報(bào)表,有興趣的 我可以在后面放上代碼

          posted on 2006-01-21 11:22 千山鳥飛絕 閱讀(4752) 評(píng)論(0)  編輯  收藏 所屬分類: Jasperreport

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          正在閱讀:



          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776129
          • 排名 - 56

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 平武县| 黔东| 阜城县| 年辖:市辖区| 教育| 方城县| 永春县| 阳朔县| 斗六市| 山西省| 富裕县| 汝州市| 色达县| 金沙县| 武川县| 仙居县| 洛阳市| 汕头市| 南陵县| 靖安县| 藁城市| 象山县| 新竹县| 汶川县| 阿尔山市| 沈丘县| 新宾| 大悟县| 科尔| 平度市| 大理市| 灵石县| 仲巴县| 泊头市| 原阳县| 民权县| 浦县| 新安县| 古丈县| 资阳市| 清镇市|