<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-61  評論-13  文章-19  trackbacks-0
    這幾天本人專門對網絡報表的設計及打印技術進行了調查研究,在網上收集了許多相關資料,其中 ireport+jasperreport 是許多相關人士的首推,因此本人對此進行了較詳細的學習,下面是本人在學習 ireport jasperreport 過程中碰到的一些問題及網上摘錄的解決方法,希望大家閱讀此文后會有所收獲。
    1 Jasperreport ireport 簡介:
    ?? JasperReport 是一款報表打印組件,是開放源代碼組織 sf.net 中的一個 java 報表打印工程, JasperReport 的最新版本是 0.5.2 版,最新版本可以從 http://jasperreports.sourceforge.net/index.html 下載得到。
    ??? iReport 也是開源組織 sf.net 中的一款免費軟件,其主要作用是用來以可視化的方式設計生成 JasperReport 所使用的報表格式文件,因為 JasperReport 本身并未提供很好的可視化報表設計工具, iReport 的出現正好彌補了這個缺陷。 iReport 的最新版本是 0.3.0
    iReport 可以從 http://ireport.sourceforge.net 下載得到。
    ?
    2 Jasperreport ireport 的安裝及配置:
    Jasperreport 不用另外進行安裝,只需要下載 JasperReport-x.x.x.jar 文件就可以了。 JasperReport 的配置比較簡單,直接將 JasperReport-x.x.x.jar 文件添加到操作系統的環境變量 ClASSPATH 中即可完成 JasperReport 的配置。
    iReport Windows 平臺也是以 .zip 形式的文件提供的,直接解壓縮后就算完成了安裝。只有 2.x 版的 iReport 需要配置, 3.0 版的 iReport 無需進行任何配置,直接啟動時 ireport.bat 文件就可以了。
    ?
    3 iReport 中文顯示的問題:
    ?? 1 )、當 iReport 中提示框輸入中文不能正常顯示時,直接將 iReport lib 中的 tinylaf.jar 這個包刪除即可。
      2 )、在 iReport 中運行報表時如果出現亂碼問題時,將 itext-1.02b.jar iTextAsian.jar 這兩個包加到 CLASSPATH 即可。即加入到 C \iReport-0.3.0\lib 目錄中即可。
    3 )、帶有中文顯示的報表:
    任意畫一文本框,雙擊它,在出現的對話框中選擇 Static Text 項,修改 text 內容為漢 字,如下所示:
    同時,修改 FONT 項中的內容與下圖相同
    改動的地方有三項,一是 font name, 二是 PDF font name 三是 PDF Encoding 再次預覽報表即可顯示中文報表。 上面修改的第二和第三項在 JRViewer 中是看不出來效果的,如果選擇報表的生成結果為 PDF 格式則會體現出來。
    ?
    4. 設置數據庫連接
    ?? 選擇“ data source ”菜單中的“ Connections/Datasources ”,在打開的數據連接列表窗口 中點擊“ new ”以便新增一個數據源, JasperReport 可以使用多種數據源,可以是 JDBC 據庫連接,也可以是從 XML 文件中取數據等,以下是使用 ORACLE 中的 CH 數據庫做為 數據源的一個配置例子。
    ?????????
    上例中是以 ORACLE 做為數據庫的一個例子,我們還需要手工復制 ORACLE JDBC 動文件到 iReport lib 目錄,復制 JDBC 驅動以外需要重新運行 iReport 才會生效。配置好 數據源以后,點擊“ Test ”按鈕,如果配置沒有錯誤,應該會出現如下所示的內容:
    測試數據庫連接成功后,點擊“ Save ”按鈕保存這個數據源以便完成數據源的配置。
    ?
    5 JasperReport 在程序中的應用
    ?? 在網上找到 JasperReport 在程序中的應用的例子,現摘錄如下:
    1.) 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);
    }
    }
    2.) JSP:

    <%@ page contentType="text/html;charset=GBK" %>
    <%@ page import="dori.jasper.engine.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.sql.*" %>
    <%
    //數據庫連接
    Connection conn=null;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=
    sa");
    //取到編譯后的jasper文件
    File reportFile = new File(application.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();
    %>
    ?
    3.) 如何將 PDF 格式報表結果直接輸出到打印機
    ?
    注:這段代碼只能應用在 JavaApplication
    public void print() throws UnsupportedFormatException
    {
    save("./tmp.pdf");
    try
    {
    String osName = System.getProperty("os.name");
    //FOR WINDOWS 95 AND 98 USE COMMAND.COM
    if (osName.equals("Windows 95") || osName.equals("Windows 98"))
    {
    Runtime.getRuntime().exec("command.com /C start acrord32 /p " + "./tmp.pdf");
    }
    //FOR WINDOWS NT/XP/2000 USE CMD.EXE
    else
    {
    Runtime.getRuntime().exec("cmd.exe /C Start acrord32 /p " + "./tmp.pdf");
    }
    }
    catch (IOException IOE)
    {
    JOptionPane.showMessageDialog(null, IOE.getMessage(), "RuntimeException",
    JOptionPane.ERROR_MESSAGE);
    }
    }
    ?
    6. 以上是本人在學習 Jasperreport ireport 中認為應該注意的及容易碰到的一些問題,許多解決方案是直接從網上摘錄的,另外 Jasperreport ireport 的軟件及一些相關的學習資料,我已經將其 COPY 到公司的 SERVER 服務器暫存盤上我的個人目錄下的網絡報表設計子目錄中,大家要是不想自己去下載,可直接到服務器上去 COPY 一份,同時也希望對大家有所幫助。


    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=645592

    posted on 2006-11-09 08:59 xnabx 閱讀(288) 評論(0)  編輯  收藏 所屬分類: 2、Web
    主站蜘蛛池模板: 国产国产人免费视频成69堂| 一区二区三区免费在线视频| 免费A级毛片av无码| 国产精品亚洲A∨天堂不卡| igao激情在线视频免费| 中文字幕精品无码亚洲字| 一级毛片免费毛片毛片| 红杏亚洲影院一区二区三区| 全黄大全大色全免费大片| 亚洲中文字幕久久精品无码APP| 成人免费无码H在线观看不卡| 亚洲成AV人在线播放无码 | 亚洲av日韩av欧v在线天堂| 粉色视频免费入口| 国产亚洲精久久久久久无码AV| 久久久久国色AV免费观看| 亚洲国产精品特色大片观看完整版| 青柠影视在线观看免费高清| 蜜芽亚洲av无码精品色午夜| 国产在线jyzzjyzz免费麻豆| 自拍日韩亚洲一区在线| 日本免费电影一区| 国产高潮流白浆喷水免费A片 | 亚洲av无码无在线观看红杏| 免费v片在线观看视频网站| 亚洲欧美日本韩国| 国产亚洲精品成人a v小说| 99爱在线精品视频免费观看9| 精品亚洲国产成人| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久成人国产精品免费软件| 亚洲视频无码高清在线| 中文字幕精品亚洲无线码一区应用| 免费看又黄又无码的网站| 亚洲另类无码专区首页| 国产一区二区三区免费看| 在线观看免费视频网站色| 国产精品亚洲精品| 亚洲综合熟女久久久30p| 97在线线免费观看视频在线观看| 精品在线观看免费|