var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>
<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

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

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

    jutleo
    歡迎走進有風的地方~~
    posts - 63,  comments - 279,  trackbacks - 0
    JasperReport有三個域用來存放、展示數據,Parameter、Field、Variables,這次說說這三個吧!

    Report Parameters

    JasperReport 報表的參數是最為一個object類型的參數傳遞的,通常我們在jrxml文件中會這樣定義
    <parameter name="ReportTitle" class="java.lang.String"/>
    顧名思義,參數是用來傳遞給報表的,通常我們會動態的傳遞一個參數給報表作為報表的標題,傳遞給自報表一個參數用來作為自報表查詢的條件等等。
    jasperReport內置了幾個有用的參數:REPORT_SCRIPTLET引用外部的scriptlet,REPORT_LOCALE引用國際化preperty文件使用的,REPORT_CONNECTION傳遞報表JDBC連接參數使用的等等。
    public Map getMap() {

            Map map 
    = new HashMap();
            map.put(
    "reportTitle""laoshulin");
            
    return map;
        }
    程序運行的時候就會動態的賦值給ReportTitle這個參數
    下面這個是報表運行時需要的connection參數,是動態傳遞給子報表的
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    我們在程序運行的時候的時候可以把一個打開的連接傳給REPORT_CONNECTION參數,
    parameters.put("REPORT_CONNECTION", getConnection());

    Report Field

    field是用來展現數據的域,也是最常用的一個,采用JDBC時iReport可以在我們寫入SQL時自動檢測到所有的field,有時我們需要自己手動建立一些field,這個字段沒有什么好說的,我們可以在iReport設置它的各種屬性。以后碰到的時候在說。

    Report Variables

    提起Variables不能不提expression,report expression是jasperReport一個非常實用的組件,它可以用來執行各種計算,修飾各個字段的數據。如:
    <textFieldExpression>
        $F{FirstName} + " " + $F{LastName}
    </textFieldExpression>

    <textFieldExpression>
        "Max Order ID is : " + $P{MaxOrderID}
    </textFieldExpression>

            報表變量是建立在表達式上的一個特殊的用來簡化報表設計,一個變量可以執行內置類型的計算以及相應表達式,如:總數,總和、平均數、最低值、最高值、差額等等。
    <variable name="QuantitySum" 
            class
    ="java.lang.Double" calculation="Sum">
        
    <variableExpression>$F{Quantity}</variableExpression>
    </variable>
    JasperReport內置了一些變量   

    PAGE_NUMBER 頁數
    COLUMN_NUMBER 列數
    REPORT_COUNT 報表總數
    PAGE_COUNT  當前頁數
    COLUMN_COUNT 列總數

    值得一提的是JasperReport還有一個比較強大的功能就是parameter/field/variables都支持html語言

    設置Markup為HTML時就可以在Text Field Expression 中寫入html標記了
    "<font color='blue' size='5'>"+$P{reportTitle}+"</font>"
    當報表預覽的時候就可以直接看到html的效果了
    posted on 2008-12-11 11:47 凌晨風 閱讀(4623) 評論(23)  編輯  收藏 所屬分類: iReport + JasperReport 系列

    FeedBack:
    # re: iReport+jasperReport概念的澄清(續)
    2008-12-11 21:01 | 楊愛友
    我轉載你的文章了啊,把你有關ireport+jasper的都轉了。
    再問一下,你感覺好用不,他比起平常的打印有哪些優勢?  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2008-12-12 08:31 | 凌晨風
    java都提倡開源,jasperReport個人覺得功能非常強大,特別是它支持scriptlet,根據API我們可以定制自己的報表,只能說目前它是最適合的一個!  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-09 16:36 | xiefan
    請問怎么能得到報表里面的參數名字跟類型呢?我苦惱很久了,大蝦能不能幫我一下?  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-09 16:53 | 凌晨風
    @xiefan
    哈哈 你要是繼續往下看你就會知道怎么做了  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-09 17:33 | xiefan
    大蝦能不能貼點代碼供小弟參考一下,謝謝啦~O(∩_∩)O哈哈~  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-09 17:54 | 凌晨風
    @xiefan
    JRParameter jrParameters[] = jasperReport.getParameters();
    拿出所有的參數,然后遍歷jrParameters數組,
    JRParameter jrParameter = jrParameters[i];
    String name = jrParameter.getName();
    取出每一個參數的名字
    getValueClassName()
    取出參數的類型
    建議你往下看看,多看看jasperAPI
      回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-09 18:07 | xiefan
    謝謝指點,多多向你學習,day day up!  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 10:26 | xiefan
    大蝦請教你一下!如果創建一個Web工程,在一個類里面把編譯jrxml的代碼寫進去,就編譯不了.jasper的文件了,是為什么呢?是路徑的原因嗎?我看網上的例子都是用的jsp或者servlet寫的,能不能在Web工程里面單獨寫一個類來完成編譯,打印報表的這些功能呢?  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 13:16 | 凌晨風
    @xiefan
    完全可以啊,建議使用jasper文件操作,在你的工程里編譯是很耗費性能的  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 14:31 | xiefan
    剛開始我是用Java工程做的,沒有問題,沒試Web工程,現在我用Web再用原來的方式就不行了,老是編譯不了jasper文件,報空指針異常,大蝦給我點代碼參考吧,我快崩潰了,客戶明天就要項目了,急啊~~~~~  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 15:36 | xiefan
    請大蝦留個MSN或QQ吧,向你請教一些問題!  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 16:37 | 凌晨風
    空指針應該不是報表這邊出現問題吧!,你多檢查代碼吧!或者貼上來看看  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 16:41 | xiefan
    JasperCompileManager.compileReportToFile("c:\\Reports\\Sample_Report.jrxml", "Sample_Report.jasper");
    Map map = new HashMap();
    map.put("Login", "mpotvin");
    JasperFillManager.fillReportToFile("Sample_Report.jasper", map, this.getConnection());  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 17:42 | 凌晨風
    你搞錯了吧!fillReportToFile這種情況下第一個參數使用jasperReport對象  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 17:46 | 凌晨風
    JasperCompileManager.compileReportToFile編譯后這個會產生Sample_Report.jasper文件,但是你有沒有發現在你的硬盤上存在jasper文件呢?不建議這樣使用!jrxml文件完全可以通過iReport編譯成jasper文件,為什么你還有使用compileReportToFile方法呢?  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-03-11 20:11 | xiefan
    這是客戶的要求啊,他只提供一個.jrxml的文件,我現在執行JasperCompileManager.compileReportToFile(context.getRealPath("/reports/report.jrxml"));這句的時候,就報一個java.lang.NullPointerException
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:72)
    net.sf.jasperreports.engine.util.JRSingletonCache.createInstance(JRSingletonCache.java:88)
    net.sf.jasperreports.engine.util.JRSingletonCache.getCachedInstance(JRSingletonCache.java:78)
    net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1136)
    net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1113)
    net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:203)
    net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:168)
    net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:152)
    net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:89)
    servlets.CompileServlet.service(CompileServlet.java:43)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    這樣的錯誤,為什么呢?
      回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-08 15:50 | zhangb310
    偶也遇到了這種情況:
    JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromLocation(path);//這報空指針.
    高手請教...  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-08 20:37 | 凌晨風
    @zhangb310
    jasperReport中請使用全路徑名  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-08 21:06 | sunnidy
    路徑的問題 應該不是jasperReport的問題 我做DROOLS的時候也出現過這樣的問題!  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-09 16:04 | zhangb310
    我搞了兩天了,還沒好...郁悶
    大蝦幫幫忙了, 這個項目的里jasper文件以前是別人寫的,可以用.
    但是我寫地就報空指針.(在ireport工具中生成報表是好的.在servlet中就報錯了)
    JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromLocation(path);//還是這報空指針..  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-09 16:05 | zhangb310
    也不是路徑的問題.
    我把path打印了是全路徑.
    大蝦們,救命了!!!!!!!  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-09 16:32 | zhangb310
    大蝦們,你們有msn沒?
    我加你,更方便交流.
    速度了 ....  回復  更多評論
      
    # re: iReport+jasperReport概念的澄清(續)
    2009-04-09 18:55 | 凌晨風
    @zhangb310
    laoshulin@gmail.com  回復  更多評論
      

    <2008年12月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(11)

    我參與的團隊

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    新聞分類

    新聞檔案

    收藏夾

    圍脖

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品13p| 成人影片一区免费观看| 久久99九九国产免费看小说| 亚洲一级二级三级不卡| 三年片在线观看免费大全| 免费无码AV一区二区| 亚洲福利在线观看| 日本免费一二区在线电影| 精品免费视在线观看| 亚洲高清一区二区三区| 亚洲日韩人妻第一页| 免费无码精品黄AV电影| 51午夜精品免费视频| 亚洲首页国产精品丝袜| 亚洲日韩国产成网在线观看| 成人无码区免费A片视频WWW| a级毛片免费观看在线| 亚洲色少妇熟女11p| 久久久影院亚洲精品| 亚洲国产成人久久精品99| 精品福利一区二区三区免费视频 | 国产精品区免费视频| 亚洲欧洲日韩国产一区二区三区| 久久久久久亚洲精品不卡| 毛色毛片免费观看| 无码国产精品一区二区免费16 | 亚洲日本久久一区二区va| 国产午夜亚洲精品午夜鲁丝片| 国产免费av片在线看| 最近免费中文字幕高清大全| 国产免费牲交视频免费播放 | 亚洲中文字幕AV在天堂| 亚洲成AV人片在线播放无码| 国产不卡免费视频| 很黄很色很刺激的视频免费| 污污网站18禁在线永久免费观看| 一区二区免费国产在线观看| 久久久久亚洲国产AV麻豆 | 久久爰www免费人成| j8又粗又长又硬又爽免费视频 | 91精品免费高清在线|