欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ireport jasperreports報表

ireport+jasperreports報表······

                                      

這幾天在弄ireport+jasperreports的報表,終于弄得差不多了····
下面就把我這幾天做的一些東西記錄下來(lái)····
其中提出一些特別要注意的地方(我就是在那幾個(gè)地方浪費了些時(shí)間)···

1、先介紹一下ireport及asperreports吧····
Jasperreport是一個(gè)報表制作程序,用戶(hù)需要按照它制定的規則編寫(xiě)一個(gè)XML文件,
然后得到用戶(hù)需要輸出的格式文件。它支持輸出的文件格式包括PDF,HTML,XML,XLS,CVS等等。
而iReport就是一個(gè)制作Jasperreport的XML文件的可視化開(kāi)發(fā)工具。

2、下載ireport和jasperreports···
jasperreport下載地址:(我下的是jasperreports-0.6.8)http://jasperreports.sourceforge.net
ireport下載地址:(我下的是iReport0.5.0)http://ireport.sourceforge.net

3、下載了ireport將它解壓縮以后運行iReport.bat文件,過(guò)大約30秒如果能出現ireport的主窗體
則表明你的系統已經(jīng)可以運行ireport了,但是我的不行,所以我編輯目錄下的iReport.bat文件,
代碼如下····
@echo off

set JAVA_HOME=C:\j2sdk1.4.0_03
set ANT_HOME=C:\ant
set IREPORT_HOME=C:\Documenti\progetti\iReport\iReport2\

rem %ANT_HOME%\bin\ant javadocs
%ANT_HOME%\bin\ant iReport

----------------
這里是采用ant來(lái)運行的,所以還需要下載一個(gè)ant···
如果你沒(méi)有安裝ant的話(huà)也可以找到noAnt文件夾下的startup.bat文件即可運行···

4、數據庫···
我是用的mysql數據庫,之前配置數據庫的JDBC驅動(dòng)器一直不成功原因是我下的mysql的jdbc驅動(dòng)太老了,
和ireport的不兼容····
建議到http://dev.mysql.com/downloads/下載最新版本···

5、配置數據庫連接····
這個(gè)是報表與數據庫的接口,通過(guò)<資料來(lái)源>--<連接/資料來(lái)源>開(kāi)啟配置對話(huà)框,ireport會(huì )記錄以前使用的
所有連接,除非你手工刪除這些連接,否則連接將一直存在···
配置新連接界面如下:
 


提示:如果你需要報表提供中文內容顯示可以在JDBC URL下工夫,比如輸入:
jdbc:mysql://localhost/xiaoya?user=root&password=root&useUnicode=true&characterEncoding=GB2312

6、中文問(wèn)題····
解決pdf中文問(wèn)題需要下載itextasian.jar和itext-1.3.jar,將其下載后放到ireport/lib下即可··
要在這里提一下的是之前我也下載了這兩個(gè)東東放到指定的位置了可還是亂碼,后來(lái)還是解決了··
解決方法:
在iReport中新建一個(gè)TextField的時(shí)候會(huì )自動(dòng)把pdf字體設為CP1252,這個(gè)是需要修改的,
否則pdf輸出會(huì )報錯說(shuō)找不到字體,我就被這個(gè)捆饒了很久,修改如圖:

7、理解幾個(gè)重要的概念····
  a、iReport的輸出格式····
    iReport的預覽輸出格式可以支持以下幾種:
    PDF、HTML、CSV、JAVA2D、Excel、純文字、JRViewer,其中最常用的是PDF、JRViewer。
    本文以JRViewer為例子。JRViewer是直接以C/S方式作為報表的輸出格式,在JFrame框架下輸出。Jasperreport提供默認的JRViewer輸出類(lèi)。
  b、報表的動(dòng)態(tài)對象變量、參數、字段····
    在使用iReport的過(guò)程中會(huì )碰到很多與變量(Variables)、參數(Parameters)、字段(Fields)這些有關(guān)的內容,我們要介紹這些對象的使用和意義:
   ·字段(Fields):是數據庫抽取出來(lái)的,希望在報表中出現的數據庫內容。
     比如一個(gè)ID的所有值。$F{ filedsName }
   ·參數(Parameters):這是你的應用需要提供給報表的入口,
     比如你希望在報表被解釋的時(shí)候提供Where語(yǔ)句的條件值,
     那么就可以使用參數(Parameters)。$P{ parameterName }
   ·變量(Variables):這是報表中一些邏輯運算的表現,比如統計值。$V{ variablesName }
     每種對象的定義格式如每個(gè)對象的后面說(shuō)明,比如定義一個(gè)變量(Variables),
     那么表達式就寫(xiě)成$V{ variablesName },報表中出現的就是這個(gè)變量的名稱(chēng)。
   c、編譯、靜態(tài)運行、動(dòng)態(tài)運行···
     Jasperreport運行時(shí)需要的就是一個(gè)jasper后綴的文件,編譯過(guò)程其實(shí)就是把jrxml后綴的文件生成jasper后綴的文件。(可以參考Jasperreport的運行原理) 靜態(tài)運行和動(dòng)態(tài)運行是相對的,后者帶數據源運行,比如帶數據庫運行。前者就是靜態(tài)文本運行,和數據源無(wú)關(guān),如果報表中出現和數據源有關(guān)的對象,則以null顯示。
   d、報表的結構···
       一個(gè)報表的結構大致是幾個(gè)部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
     ·Title:每個(gè)報表一般會(huì )有一個(gè)名字,比如×××銷(xiāo)售報表,title就是擱置這個(gè)名稱(chēng)的最好地方了,當然你也可以根據需要擱置在合適的地方。
     ·pageHeader:報表的一些公共要素,比如頁(yè)碼、創(chuàng )建時(shí)間、創(chuàng )建人等信息放置在這里是比較好的選擇。
     ·columnHeader:無(wú)可非議的這里是放置列的名稱(chēng),記住不是列數據。
     ·Detial:放置需要循環(huán)的數據,比如銷(xiāo)售記錄數據。
     ·columnFooter:放置列級別的統計計算值或是列的說(shuō)明。
     ·pageFooter:放置頁(yè)級別的統計值或是頁(yè)的說(shuō)明。
     ·Summary:可能需要對幾頁(yè)(你的報表可能有幾個(gè)頁(yè)組成)的統計值。比如50個(gè)銷(xiāo)售記錄共占用了3頁(yè),那么放置這些統計記錄的統計值最好的地方就是summary。
     ·groupHeader:每個(gè)表的內容可能需要根據某個(gè)屬性進(jìn)行劃分顯示內容和計算內容,比如希望以月份為單位每組分開(kāi)顯示銷(xiāo)售記錄,那么就可以定義一個(gè)組(組的定義參考后文),groupHeader就是放置組說(shuō)明或是組標志最好的地方。
     ·Groupfooter:放置組的統計或是說(shuō)明

8、建立一個(gè)新的報表·····

  a、新建一個(gè)空報表的基本配置
    單擊工具欄的第一個(gè)工具“New Report”,新建一個(gè)報表,輸入報表名稱(chēng)和定義報表的一些參數,比如名稱(chēng)輸入(例子是做一個(gè)項目的Bug量統計報表)單擊【More….】選擇標簽,填寫(xiě)或是選擇XML編碼,這是關(guān)系到你的XML支持的字符集的選擇,請根據需要選擇,比如需要你的XML文件支持中文,那么可以輸入或是GBK,之后點(diǎn)擊【OK】按鈕,進(jìn)入報表的設計界面。
  b、定義報表可能需要的字體類(lèi)型及其屬性
    一個(gè)報表的內容五花八門(mén),有表頭、欄位名、數據、其他變量信息等等,如果這些信息都是一致的字體和屬性(比如顏色),那么整個(gè)報表就死氣沉沉,顯得很粗糙了。我們可以在為報表添加每個(gè)元素時(shí)定義元素的屬性,但是那是一個(gè)多么費時(shí)的工作,如果能預先定義一些屬性的組合,之后在創(chuàng )建每個(gè)元素時(shí)只需選擇這些組合的其中一個(gè)即可,省事又快速。
    單擊【預覽】-【報表字體】開(kāi)啟自定義組合對話(huà)框。單擊【New】進(jìn)入定義詳細對話(huà)框,如圖:
    按照圖中的順序填寫(xiě)信息和步驟,依次定義“表頭”、“組”、“列”、“列內容”、“統計計算”、“其他”等6中字體組合。
    注意PDF內嵌字體的選擇,如果你需要報表時(shí)以PDF文件格式提供,那么對此需要作出選擇。
 

9、向表添加對象····
  a、添加靜態(tài)對象···
   可以通過(guò)工具欄的工具添加靜態(tài)對象,比如文本,點(diǎn)擊【T】,之后在報表的空白處單擊,如此即可把靜態(tài)對象添加到報表,然后拖動(dòng)對象的邊框,使它的大小合適,雙擊對象彈出對象的屬性配置對話(huà)框,切換到【Font】Label,在“Report font”的ComBox選擇“表頭”字體,(表頭字體是前文提供的自定義屬性組合),再切換到【Static Text】Label,修改表頭的名字,比如“Bug統計報表”或是“銷(xiāo)售記錄統計表”等等與業(yè)務(wù)有關(guān)的內容。添加圖片,請點(diǎn)擊【Image Tool】,之后的操作與Text類(lèi)似。其他靜態(tài)對象操作步驟類(lèi)似。
  b、使用連接···
    還記得前文提供的(3.2節)配置MySql數據庫連接嗎?這里我們將要使用前文配置的連接了。選擇菜單【建立】-【使用動(dòng)態(tài)連接】開(kāi)啟可選的動(dòng)態(tài)連接, 選擇任何一個(gè)你需要的連接最后【OK】,保存報表,這樣你的報表就使用了這個(gè)連接了。
   *【特別提示】此連接必須與以后應用程序使用的連接一致。
  c、創(chuàng )建SQL查詢(xún)語(yǔ)句····
    SQL語(yǔ)句是對任何RDBMS起作用的語(yǔ)言,外部用戶(hù)需要使用這些語(yǔ)言管理維護數據庫中的數據,同樣的,iReport也是需要這么做,我們需要提供查詢(xún)數據庫的語(yǔ)言-SQL語(yǔ)句,這樣,iReport即可通過(guò)此SQL語(yǔ)句獲取數據,之后組織到報表中并顯示出來(lái),以滿(mǎn)足用戶(hù)的需要為目的。
    通過(guò)菜單【資料來(lái)源】-【報表查詢(xún)】開(kāi)啟SQL輸入對話(huà)框,并在【Report SQL Query】 Label中輸入SQL語(yǔ)句如圖:圖中的“Automatically Retrieve Fields”checkbox和“ReadFields”Button是確認自動(dòng)獲取還是手動(dòng)獲取數據庫表的可用Fields。單擊【OK】,保存報表。
  
  

d、創(chuàng )建字段動(dòng)態(tài)對象·····
    報表的動(dòng)態(tài)對象有變量、參數、字段,前文提及了他們的概念,這里將要一一講解如何使用。字段也就是數據庫中的字段,通過(guò)菜單【預覽】-【報表字段】開(kāi)啟字段的列表(工具條上可以找到相應的工具),可以拖放任意字段到報表的任何位置,比如拖動(dòng)一部分Bug的內容字段到detial段(內容無(wú)關(guān)緊要,只要知道原理)。
  e、創(chuàng )建組···
     組是一個(gè)很重要的概念,一個(gè)報表可以多個(gè)組,每個(gè)組以一個(gè)關(guān)鍵字為標記,比如希望Bug統計是根據項目(或是產(chǎn)品)進(jìn)行統計的。那么可以設立一個(gè)項目標記的組。如圖:
 
   

   

組的參數設定可以看界面即可理解部分,其中最主要的是“Group expression”,這是必須輸入格式正確的并且存在的字段名稱(chēng),本文的“proname”是【字段】中的一個(gè)元素。依此類(lèi)推,建立其他的組對象。
    每建立一個(gè)組,在報表的界面上都會(huì )出現該組對應的段,如圖:他們是首尾對應出現的。(Header和Footer)
   


 
  f、添加參數和使用參數····
    我們重申參數作用,一般是需要外界提供參數給報表的入口,比如SQL語(yǔ)句的where條件的表達式。通過(guò)【預覽】-【報表參數】開(kāi)啟報表參數列表對話(huà)框(工具條上可以找到相應的工具)。如圖:輸入名稱(chēng)及其他參數?!緊k】,保存報表。
   
    那么如何使用呢?打開(kāi)SQL語(yǔ)句對話(huà)框,參考“5.3創(chuàng )建SQL查詢(xún)語(yǔ)句”,這時(shí)候的SQL語(yǔ)句應該是:SELECT * FROM bugs  where proname=$P{ProjectName} order by proname,modulename
    注意其中的紅體字部分,就是把剛才定義的變量運用到SQL語(yǔ)句了。這樣當應用提供參數時(shí),只要指定提供給這個(gè)參數,那么報表解釋引擎即可替換這些變量然后再執行SQL語(yǔ)句,在第二部分提到編程時(shí),會(huì )提供參數設定代碼。
 
  g、添加變量和使用變量····
     變量的定義類(lèi)似參數,通過(guò)【預覽】-【報表變量】開(kāi)啟報表變量列表對話(huà)框(工具條上可以找到相應的工具),如圖,圖中定義的變量的作用是:定義一個(gè)Bug的計數器,數據類(lèi)型是java.lang.Integer,使用Count函數進(jìn)行統計字段tester,作用范圍是模塊組,也就是統計模塊的Bug量。其中的tester可以改成其他非組對象,比如proname是組對象,就不要用作這里的統計參數。以上提供的是自定義變量,其實(shí)iReport系統還有提供一些內嵌(Buildin)的變量,比如頁(yè)碼,行記錄數等,視需要而使用。
  

 
  10、最后的報表····
    a、完成后的報表···
    

    b、預覽報表···
     點(diǎn)擊動(dòng)態(tài)運行報表,出現如圖內容:
     

  11、在jsp中調用報表·····
    解決這個(gè)問(wèn)題也用了我差不多2天時(shí)間:(,但總算是搞定了·····
    下面分別介紹以pdf格式和以html格式顯示報表····
   a、pdf格式ireport_pdf.jsp····

   <%@ page import="net.sf.jasperreports.engine.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.sql.*" %>
    <%
      //報表編譯之后生成的.jasper 文件的存放位置
      File reportFile = new File(application.getRealPath("ireport/xueji.jasper"));
      //這個(gè)是用來(lái)聯(lián)接我的mysql 的JDBC URL
      String url="jdbc:mysql://localhost:3306/xueji?useUnicode=true&characterEncoding=gb2312";
      Class.forName("org.gjt.mm.mysql.Driver").newInstance();
      //傳遞報表中用到的參數值
      Map parameters = new HashMap();
     //"Name"是報表中定義過(guò)的一個(gè)參數名稱(chēng),其類(lèi)型為String 型

     parameters.put("banji", new String(" c1"));
     System.out.println("---------conn-------------");
     //連接到數據庫
     Connection conn = DriverManager.getConnection(url,"root","root");
     System.out.println("---------Jasper begin-------------");
     //在控制臺顯示一下報表文件的物理路徑
     System.out.println(reportFile.getPath());
     byte[] bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);

     System.out.println("---------Jasper end-------------");
     response.setContentType("application/pdf");
     response.setContentLength(bytes.length);
     ServletOutputStream ouputStream = response.getOutputStream();
     ouputStream.write(bytes, 0, bytes.length);
     ouputStream.flush();
     ouputStream.close();
   %>

   b、html格式ireport_html.jsp····

 
  
  
  
  
  
  
   <%


    File reportFile = new File(application.getRealPath("/ireport/xueji.jasper"));
    JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
    Map parameters = new HashMap();
    parameters.put("baiji", "c1");
   //parameters.put("BaseDir", reportFile.getParentFile());   
   //JRBeanArrayDataSource jrDataSource = new JRBeanArrayDataSource(objects);//objects為要打印的實(shí)體數組;

    Class.forName("org.gjt.mm.mysql.Driver");
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xueji","root","root");
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
         
    JRHtmlExporter exporter = new JRHtmlExporter();
    StringBuffer sbuffer = new StringBuffer();

    Map imagesMap = new HashMap();
    session.setAttribute("IMAGES_MAP", imagesMap);
   
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
    //exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
    //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/ireport/ireport_html.Image?image=");
    //exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
    exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
    exporter.exportReport();
    //out.flush();
    conn.close();
   % >

注意:以html格式調用主要要注意//exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
                              //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "images目錄的路徑?image=");
                              在生成html預覽的時(shí)候會(huì )生成一個(gè)px文件,而這個(gè)images_uri的路徑就是那個(gè)px的路徑,建議不用,就用下面
                              的語(yǔ)句就可以了····
                              exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);   
而這個(gè)語(yǔ)句則是處理分頁(yè)用的····                              
//exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");


需要注意的地方····
必須在tomcat5以上版本中運行····
在運行的時(shí)候還要將jasperreports/lib下的包全部拷到tomcat下你所放文件目錄下的win-inf/lib下···
特別要注意的是看看ireport/lib下的包與jasperreports/lib的包是否兼容···
之前我的一直有問(wèn)題就是因為我的發(fā)布環(huán)境是jasperreports-0.6.7.jar而運行環(huán)境是jasperreports-0.6.8.jar···
這樣也會(huì )出現錯誤的····

參考資料····
感謝···

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
在JAVA項目中,使用JasperReports與iReport,
【譯】JasperReports Library使用指南
第一部分:使用iReport制作報表的詳細過(guò)程(Windows環(huán)境下)
iReport默認參數和變量的含義解析【轉】
圖示ireport中使用javabean作數據源開(kāi)發(fā)基于jasperreports報表過(guò)程
Ireport+jfreechart+Jasperreport開(kāi)發(fā)圖表
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久