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

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

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

    海鷗航際

    JAVA站
    posts - 11, comments - 53, trackbacks - 1, articles - 102

    Jasper FAQ-1

    Posted on 2005-01-10 13:16 海天一鷗 閱讀(1758) 評(píng)論(6)  編輯  收藏 所屬分類: 報(bào)表專題
     

    jasper變量的表達(dá)式的問(wèn)題

     

    jasper中的field字段的定義:
    XML Syntax
    <!ELEMENT field (fieldDescription?)>
    <!ATTLIST field
    name NMTOKEN #REQUIRED
    class (java.lang.Object | java.lang.Boolean | java.lang.Byte |
    java.util.Date | java.sql.Timestamp | java.lang.Double | java.lang.Float |
    java.lang.Integer | java.io.InputStream | java.lang.Long | java.lang.Short |
    java.math.BigDecimal | java.lang.String) "java.lang.String"
    >
    <!ELEMENT fieldDescription (#PCDATA)>

    注意他們的實(shí)例都是對(duì)象,
    對(duì)象不能用簡(jiǎn)單的+的方式,
    比如你想對(duì)兩個(gè)類型為java.lang.Doublefield進(jìn)行相加
    那么就應(yīng)該用如下表達(dá)式
    ($F{field1}.doubleValue()+$F{field2}.doubleValue()) 
    而不是
    ($F{field1}+$F{field2}) 
    設(shè)定某個(gè)類型為java.lang.Double的初始值是
    應(yīng)該用new java.lang.Double(3)
    而不是3
    其他類型的數(shù)據(jù)也一樣

     

    iReport 0.3.0 不能啟動(dòng)的問(wèn)題

     

    注意 iReport 0.3.0 需要JDK 1.4 的版本
    還有用Oracle9的注意了,由于Oracle9自帶的是JDK1.3版本的
    所以可能會(huì)導(dǎo)致iReport在啟動(dòng)時(shí)用到Oracle中的JDK而導(dǎo)致無(wú)法啟動(dòng)

     

    如何讓顯示的數(shù)據(jù)自動(dòng)折行顯示

     

    可以選擇field,-> text filed ->有個(gè)框打勾
    strech with overflow 
    關(guān)于此功能的具體應(yīng)用,
    大家可以參看JasperReportsamples -> stretch

     

    jasperreport報(bào)表文件輸出到pdf的中文問(wèn)題

     

    1、   你確定一下你的classpath下是否有itextitextasia

    2、   確定你的pdf font是否設(shè)置漢字字體如STsong_lightpdf encoding是否是漢字的encoding 

    這樣之后如果還有問(wèn)題,就是你的數(shù)據(jù)傳送過(guò)來(lái)的亂碼問(wèn)題。

     

    初學(xué)者實(shí)例:在WEB客戶端直接打印JasperReport報(bào)表

     

    當(dāng)我不希望使用JasperReport生成pdfhtml等報(bào)表顯示文件到客戶端后再通過(guò)相應(yīng)打印功能打印,而想直接在客戶端打印生成的報(bào)表時(shí)候,我們可以使用JasperPrintManager類里的printReport方法來(lái)實(shí)現(xiàn)打印。這里我給出我的一個(gè)測(cè)試實(shí)例:
    首先,我在服務(wù)器端的一個(gè)Servlet里調(diào)用報(bào)表格式文件、填充數(shù)據(jù)生成一個(gè)JasperPrint對(duì)象;然后將這個(gè)JasperPrint對(duì)象以對(duì)象流方式返回給客戶端:
    public class JRPrintServlet extends HttpServlet {
    public void service(
    HttpServletRequest request,
    HttpServletResponse response
    ) throws IOException, ServletException{

    String fileName = reports/TestRpt.xml";//
    我的測(cè)試報(bào)表格式文件
    JasperReport jrt = JasperCompileManager.compileReport(fileName);//
    編譯報(bào)表格式

    java.sql.Connection conn = DBBean.getConnection(); //
    獲取數(shù)據(jù)庫(kù)連接
    JasperPrint jpt = JasperFillManager.fillReport(jrt,hs,conn));//
    填充報(bào)表數(shù)據(jù)生成JasperPrint對(duì)象

    response.setContentType("application/octet-stream");
    ServletOutputStream ouputStream = response.getOutputStream();

    ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
    oos.writeObject(jpt);//
    JasperPrint對(duì)象寫(xiě)入對(duì)象輸出流中
    oos.flush();
    oos.close();
    } catch (Exception e) {
    e.printStackTrace();
    }

    }


    }

    然后編寫(xiě)一個(gè)客戶端Applet,通過(guò)對(duì)上面Servlet的請(qǐng)求獲得該JasperPrint對(duì)象,并調(diào)用JasperPrintManager方法進(jìn)行打印:
    public class JRPrinterApplet extends Applet {
    private URL url = null;

    public void init(){
    String strUrl = getParameter("REPORT_URL");
    if(strUrl!=null){
    try{
    System.out.println(getCodeBase());
    url = new URL(getCodeBase(),strUrl);//
    從獲得html參數(shù)中獲得報(bào)表URL
    System.out.println(url);
    }catch(Exception e){
    e.printStackTrace();
    }
    }else
    JOptionPane.showMessageDialog(this, "Source URL not specified");


    }

    public void start(){
    if(url!=null){
    try{
    JOptionPane.showMessageDialog(this, url);
    Object obj = JRLoader.loadObject(url);//
    發(fā)送對(duì)象請(qǐng)求,獲得JasperPrint對(duì)象
    System.out.println(obj);
    JasperPrintManager.printReport((JasperPrint)obj, true);//
    調(diào)用方法打印所獲得的JasperPrint對(duì)象
    }catch(Exception e){
    e.printStackTrace();
    }
    }
    }

    }
    另外簡(jiǎn)單寫(xiě)一個(gè)測(cè)試html來(lái)調(diào)用以上applet
    <!--JRPrintTest.html-->
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
    <title>
    打印窗口</title>
    </head>
    <script language="javascript">
    <!--
    function openApp()
    {
    var url = "/JRPrintServlet";
    document.write('<APPLET ID="JrPrt" CODE = "JRPrinterApplet.class" CODEBASE = "/reports" ARCHIVE = "jasper-api.jar" WIDTH = "0" HEIGHT = "0">');
    document.write('<PARAM NAME = "type" VALUE="application/x-java-applet;version=1.2.2">');
    document.write('<PARAM NAME = "scriptable" VALUE="false">');
    document.write('<PARAM NAME = "REPORT_URL" VALUE ="'+url+'">');
    document.write('</APPLET>');
    }

    -->
    </script>
    <body bgcolor="#FFFFFF">
    <input type="button" value="
    測(cè)試打印" onclick="openApp();">

    </body>
    </html>

    這樣,在客戶端訪問(wèn)JRPrintTest.html頁(yè)面,點(diǎn)擊"測(cè)試打印"按鈕,就能夠直接在客戶端打印機(jī)上打印出所要的報(bào)表。 

     

     

     

     

    Feedback

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-04-12 11:40 by random
    我現(xiàn)在就想用jasperprint實(shí)現(xiàn)客戶端打印,看了你這篇“初學(xué)者實(shí)例:在WEB客戶端直接打印JasperReport報(bào)表

    ”,但發(fā)現(xiàn)用這個(gè)方法不行,因?yàn)榭蛻舳瞬](méi)有安裝jasperprint,運(yùn)行時(shí)出錯(cuò),那這樣客戶端還必須手動(dòng)安裝軟件,用APPLET實(shí)現(xiàn)也沒(méi)意義了,請(qǐng)問(wèn)有什么好方法不用客戶端做復(fù)雜的操作嗎?

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-05-16 21:11 by kelo
    怎么不分頁(yè)

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-06-04 20:41 by zhuiyun
    請(qǐng)問(wèn)jasper-api.jar是什么包啊?

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-06-07 14:22 by zhuiyun
    我對(duì)serlvet在xml中進(jìn)行定義后,仍后找不到,問(wèn)什么呢?
    <servlet>
    <servlet-name>JasperPrintServlet</servlet-name>
    <servlet-class>servlets.JasperPrintServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JasperPrintServlet</servlet-name>
    <url-pattern>/servlets/JasperPrintServlet</url-pattern>
    </servlet-mapping>
    在地址欄訪問(wèn)時(shí),仍然為404錯(cuò)誤,希望有人解答阿。

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-06-08 14:46 by zhuiyun
    請(qǐng)問(wèn)這樣實(shí)現(xiàn)后能在客戶端之間訪問(wèn)嗎?客戶端是否需要jasperreport,是否需要安裝jre,我實(shí)現(xiàn)后,在自己的機(jī)子上沒(méi)有問(wèn)題,但是從別的機(jī)子上訪問(wèn)時(shí)會(huì)出現(xiàn)錯(cuò)誤提示,發(fā)生異常,確定后Ie自動(dòng)關(guān)閉。
    能否指導(dǎo)一下,非常感謝!

    # re: Jasper FAQ-1  回復(fù)  更多評(píng)論   

    2006-06-08 14:46 by zhuiyun
    為什么都沒(méi)有人回答阿
    主站蜘蛛池模板: 国产美女a做受大片免费| kk4kk免费视频毛片| 2021国内精品久久久久精免费| 亚洲?V乱码久久精品蜜桃 | 亚洲一级黄色大片| 9277手机在线视频观看免费| 国产亚洲一区二区在线观看| 成av免费大片黄在线观看| 精品国产亚洲第一区二区三区| 久久久久久久久免费看无码| 亚洲va久久久久| 精品国产麻豆免费网站| 大桥未久亚洲无av码在线| 亚洲成年人啊啊aa在线观看| 一道本在线免费视频| 亚洲自偷自偷偷色无码中文| 免费观看91视频| 亚洲第一成年人网站| 欧美大尺寸SUV免费| 日本亚洲欧美色视频在线播放| 国产乱弄免费视频| a一级毛片免费高清在线| 亚洲成a人片77777kkkk| 最近免费中文字幕大全免费版视频| 亚洲免费网站在线观看| 日日AV拍夜夜添久久免费| 黄色免费在线观看网址| 国产亚洲婷婷香蕉久久精品| 亚洲免费二区三区| 亚洲AV女人18毛片水真多| 自拍偷自拍亚洲精品第1页| 久久精品一本到99热免费| 亚洲熟妇无码AV不卡在线播放| 一区二区三区亚洲视频| 久久爰www免费人成| 456亚洲人成影院在线观| 亚洲国产主播精品极品网红| 久草免费福利资源站| 亚洲国产美女精品久久久| 亚洲免费日韩无码系列| 午夜免费1000部|