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

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

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

    Heis的Blog

    保持簡單,保持愚蠢
    隨筆 - 29, 文章 - 1, 評論 - 122, 引用 - 0
    數(shù)據(jù)加載中……

    JasperReport那些事兒(一)——iReport制作表格

    如果你還不知道jasperreport和ireport,那你可以參考我的上一篇文章,或者谷歌百度一下。好了,廢話少說,Let’s start,Go!
          我的環(huán)境是iReport3.0+JDK6.0。
          先看看效果。
     
    1)    準(zhǔn)備數(shù)據(jù)源,這里使用XML文件(使用UTF8編碼)作為數(shù)據(jù)源。
     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <NameList>
     3     <Person>
     4         <Name>強(qiáng)尼</Name>
     5         <Gender></Gender>
     6         <Age>56</Age>
     7     </Person>
     8     <Person>
     9         <Name>阿美</Name>
    10         <Gender></Gender>
    11         <Age>23</Age>
    12     </Person>
    13     <Person>
    14         <Name>李麗</Name>
    15         <Gender></Gender>
    16         <Age>58</Age>
    17     </Person>
    18     <Person>
    19         <Name>杰森</Name>
    20         <Gender></Gender>
    21         <Age>32</Age>
    22     </Person>
    23     <Person>
    24         <Name>劉三</Name>
    25         <Gender></Gender>
    26         <Age>21</Age>
    27     </Person>
    28 </NameList>

    2)    打開iReport,新建一個空的模版文件。
    3)    加入一個靜態(tài)文本(StaticText),右擊屬性(Property),編輯字體屬性和內(nèi)容。關(guān)于Font Name 屬性和PDF Font Name屬性需要PMingLiu字體(下載)(將PMingLiu字體放在ireport安裝目錄的font文件夾下)或者你可以選擇其他字體,例如宋體,PDF Font Name 選
    STSong-Light
     



    4)    接下來就要做表格部分,新建一個子報表(subreport),除了第二步選擇No Connection or datasource,基本上只要點Next就行了。
     





    5)    完成上一步后就會跳到子報表NameList_subreport0的視圖,其實子報表也是一個獨立的報表。但是你現(xiàn)在只能看到一個叫Detail的區(qū)域(band)。我們還需要更多的區(qū)域來結(jié)合完成表格的制作。調(diào)出區(qū)域管理器(菜單View->Bands),將column header 和column footer的高度(height)設(shè)為20.



     
    6)    在column header加入三個靜態(tài)文本(StaticText),字體屬性和之前的一樣,分別加入內(nèi)容姓名,性別,年齡。在detail區(qū)域加入三個文本(textField),在column footer加入一個文本,字體屬性和StaticText保持一樣。然后設(shè)置所有靜態(tài)文本和文本的邊框,如圖。現(xiàn)在的textField都是沒有數(shù)據(jù)的,那么怎么填充數(shù)據(jù)呢?現(xiàn)在我們來看怎么配置數(shù)據(jù)源和填充數(shù)據(jù)。
     

     
    7)    菜單data->connections/datasource,新建一個XML  datasouce,目錄位置指向之前建立的XML文件。選擇Use the report Xpath xpression when filling the report.
     



     

    8)    打開NameList模版,菜單data->report query,配置XPATH如圖。
     

    9)    配置NameList模板的subreport, 編輯屬性Connection/Data  Source  Expression,輸入 ((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/NameList /Person")。這一步主要是將數(shù)據(jù)源傳給子報表。
     



     
    10)    打開NameList_subreport0模板,先配置XPATH,然后右擊節(jié)點Name,選Add node as field.同樣將Gender和Age節(jié)點加入field。點OK。然后你可以看到左邊的結(jié)構(gòu)視窗多了三個Field。
     



     
    11)    編輯Table里的文本(textfield),右擊選Edit Expression,輸入表達(dá)式(Field的表達(dá)式,$F{Field_Name})。$V{REPORT_COUNT}是jasperreport 內(nèi)建的變量,用于計算detail區(qū)域的行數(shù)。
     

    12)    保存模板,菜單build->Compile,編譯兩個模板。打開NameList模板,帶數(shù)據(jù)源運行(build->Execute with active connection)。大功告成。

            寫這篇東西花了大半天,有興趣的同志可以下載源代碼看看。點擊下載





    程序員的一生其實可短暫了,這電腦一開一關(guān),一天過去了,嚎;電腦一開不關(guān),那就成服務(wù)器了,嚎……

    posted on 2009-02-16 21:21 Heis 閱讀(30582) 評論(22)  編輯  收藏 所屬分類: JasperReport那些事兒

    評論

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    請教一下,怎么樣可以自做單元格合并這樣的中文式的報表?謝謝你的答復(fù)。
    我的qq:605524436。
    2009-03-09 13:22 | tide

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @tide
    我理解你的意思是像下面這樣的表格嗎?
    _______________
    | |____|____|
    | |____|____|
    | |____|____|
    | |____|____|
    如果是,我會在下一篇文章中介紹。
    2009-03-09 15:02 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    博主,我按照你的例子來操作一下,到第8步出錯了,沒有列出xml的列表,這個該怎么處理?謝謝!
    2009-04-23 17:22 | zl

    # re: JasperReport那些事兒(一)——iReport制作表格[未登錄]  回復(fù)  更多評論   

    希望博主能加我QQ:944500547
    有問題請教,非常感謝!
    2009-04-23 17:23 | water

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @zl
    首先確認(rèn)你的xml文件沒有錯,文件編碼注意要是UTF8;
    如果沒錯,這可能是ireport的xml解析器bug,我也經(jīng)常遇到這樣的問題。你可以試一下先把原來的ireport的xml數(shù)據(jù)源刪掉,然后重啟ireport,再試著新建一個xml數(shù)據(jù)源。這個bug也困擾我很久,有時候會莫名奇妙地不能解析。
    2009-04-23 22:37 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    博主好!首先感謝回復(fù)。
    還有問題請教:
    我直接用的ireport里面連接的oracle。
    導(dǎo)出的是HTML格式
    比如在頁面上有:
    aaaaa
    bbbbb
    ccccc
    .......
    多行數(shù)據(jù),每一行對應(yīng)一個按鈕來打單。但是有時候會出現(xiàn)點a行打單后,再點b行打單,再點c等等行打單的話出現(xiàn)的都是a行對應(yīng)的數(shù)據(jù)。
    這種情況在局域網(wǎng)的時候沒出現(xiàn)過,后來項目上線后出現(xiàn)。


    不知道我有沒有說明白。
    2009-04-24 09:35 | zl

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    經(jīng)過反復(fù)終于調(diào)通,但是生成的pdf只有一條記錄
    就是第一條:強(qiáng)尼的信息。
    請問這是怎么回事呢?
    2009-04-24 12:44 | zl

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @zl
    1.檢查你的子報表,field是否放在detail區(qū)域內(nèi)。
    2.檢查父報表的subreport元素內(nèi)的XPATH是否是/NameList/Person
    3.你的XML數(shù)據(jù)源不會只有一條數(shù)據(jù)吧?

    如果還發(fā)現(xiàn)錯誤,下載我的模板源代碼對比一下。
    2009-04-24 14:29 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    是第二條的問題。謝謝!
    另外一個問題不知道有沒有說明白,希望博主能夠指點。
    2009-04-24 15:27 | zl

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @zl
    每一行對應(yīng)一個按鈕來打單?這個我不是很明白,我們郵件聯(lián)系吧。畢竟評論不是留言版。我郵箱:heisun@yeah.net
    2009-04-24 21:57 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @Heis
    調(diào)通后 五條出現(xiàn)都是第一條的信息
    2009-09-11 16:25 | cici

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    我沒有建子報表,直接在details下面寫的
    2009-09-11 16:26 | cici

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @cici
    不用子報表是會有問題的,估計是你的數(shù)據(jù)源配置錯誤。
    2009-09-12 10:53 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @Heis
    恩,我選擇xpath的時候根本就出不來左邊的結(jié)構(gòu)視窗多了三個Field,要不你把源碼發(fā)給我看下吧,我的郵箱zengjin_mail@yahoo.com.cn.謝謝你了
    2009-09-14 11:07 | cici

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    你這表格是自己添加的邊框顯示的吧?
    2009-11-19 16:12 | liguangjun

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    請問一下如果字段多了,是不是就會變形了?..
    2009-11-19 16:13 | liguangjun

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    有問題請教博主!希望能加我QQ:460433459 謝謝博主!
    2009-11-20 15:15 | liguangjun

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    @liguangjun
    邊框是自己設(shè)置的;
    字段是靜態(tài)添加的,不是動態(tài),所以要自己設(shè)計;
    2009-11-20 19:10 | Heis

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    樓主加我QQ吧,573497195
    有問題要請教你,謝謝啊
    2010-01-06 10:23 | chenhuagh

    # re: JasperReport那些事兒(一)——iReport制作表格  回復(fù)  更多評論   

    頂。。。。。。
    2012-09-27 11:40 | 32516

    # re: JasperReport那些事兒(一)——iReport制作表格[未登錄]  回復(fù)  更多評論   

    請問,如果是有多個子報表,卻只有一個detail,該怎么實現(xiàn)呢?
    比如:
    書單
    書籍id 書名 作者
    1 語文 a
    2 數(shù)學(xué) b

    名單
    姓名 性別 年齡
    小張 男 18
    小王 女 20
    小劉 男 30
    2013-02-22 17:36 | 啊啊

    # 加快  回復(fù)  更多評論   

    我只是玩玩
    2015-08-25 15:46 | 地方
    主站蜘蛛池模板: 国产精品亚洲二区在线| 国产99视频精品免费专区| 中文字幕精品无码亚洲字| 你懂的网址免费国产| 亚洲不卡中文字幕| 亚洲国产成人精品女人久久久| 暖暖日本免费中文字幕| 亚洲一卡一卡二新区无人区| 亚洲精品成人片在线观看| 91热久久免费精品99| 特级毛片免费播放| 97久久精品亚洲中文字幕无码| 国产精品久免费的黄网站| 男女作爱在线播放免费网站| 亚洲国产成人久久精品大牛影视 | 免费看美女被靠到爽的视频| 精精国产www视频在线观看免费| 亚洲冬月枫中文字幕在线看| 区久久AAA片69亚洲| 成年女人免费视频播放77777| 成人精品视频99在线观看免费| wwwxxx亚洲| 亚洲AV日韩AV永久无码久久| 成年女人永久免费观看片| 免费A级毛片无码A∨中文字幕下载 | 又粗又大又猛又爽免费视频| 99精品视频在线观看免费播放| 老妇激情毛片免费| 国产成人精品日本亚洲网址| 亚洲精品无码午夜福利中文字幕| 免费看无码自慰一区二区| 久久国产免费观看精品3| 国产精品免费看久久久香蕉| 亚洲色偷偷色噜噜狠狠99| 久久久久亚洲AV无码麻豆| 国产亚洲色婷婷久久99精品91| 日韩免费a级在线观看| 免费a级毛片高清视频不卡| 131美女爱做免费毛片| 免费网站看av片| 久久免费国产精品|