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

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

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

    隨筆 - 251  文章 - 504  trackbacks - 0
    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    本博客系個(gè)人收集材料及學(xué)習(xí)記錄之用,各類“大俠”勿擾!

    留言簿(14)

    隨筆分類

    收藏夾

    My Favorite Web Sites

    名Bloger

    非著名Bloger

    搜索

    •  

    積分與排名

    • 積分 - 202494
    • 排名 - 285

    最新評(píng)論

    1.下載japerreports:
    網(wǎng)址:https://sourceforge.net/projects/jasperreports/
    最好下載完整的zip包:jasperreports-1.3.0-project.zip
    這樣可以得到所有的文件,包括src,samples。

    2.下載到j(luò)asperreports-1.3.0-project.zip包后,解壓一看,本身是一個(gè)project,有.project,.classpath文件等,于是想到可以把它做為一個(gè)project導(dǎo)入eclipse中,于是把它拷貝到eclipse的workspace中,然后“import”,即可整個(gè)jasperreport工程導(dǎo)入到ecplise了!

    注意:我剛開始導(dǎo)入時(shí)總出錯(cuò),提示"Invalid?project?description",無法導(dǎo)入;后來鬼使神差的把解壓后的工程名稱"jasperreports-1.3.0"改為"jasperreports"就順利導(dǎo)入了!
    再后來,想把工程改為別的名稱,但是import時(shí)指定工程根目錄后,壓根就無反應(yīng),"finish"按鈕始終是灰色的,無法導(dǎo)入;
    最后問了一下wwm,才是知道如果要import?a?project,則project名稱要與.project文件的<name></name>中的名稱一致,否則無法導(dǎo)入!
    例如,工程名稱(根目錄)為jasperreports,那么.project中應(yīng)為:<name>jasperreports</name>;
    前面是湊巧改對(duì)了。

    3.但是導(dǎo)入到eclipse后,它是做為一個(gè)java?project的,也就方便看源代碼而已,到底要怎么才能運(yùn)行生成報(bào)表呢?這就需要ant來執(zhí)行build.xml。

    4.如果沒有接觸過ant,沒關(guān)系,很簡(jiǎn)單的,放心吧。推薦看《java?學(xué)習(xí)筆記》良葛格?附錄A?Ant簡(jiǎn)介(網(wǎng)上搜電子版的即可),15分鐘即可搞定ant,不要被它擋路了哦:)

    5.并且,eclipse中就自帶ant,如果要運(yùn)行"demo\samples\barbecue"示例,進(jìn)入"jasperreports\demo\samples\barbecue",右鍵"build.xml",選"run?as->ant?build..",把"javac","compile","fill","view"都打上勾,點(diǎn)"run",ant開始運(yùn)行該build.xml,不一會(huì),哇,看到報(bào)表了!好激動(dòng)!不過這個(gè)報(bào)表只有表,沒有圖,即:看不到自己想要的折線圖,柱狀圖,餅圖等。

    6.看了一些"demo\samples"下的所有示例,覺得折線圖,柱狀圖,餅圖等應(yīng)該都是在"charts"示例中,意識(shí)運(yùn)行"charts"示例的build.xml文件,但是不能編譯通過,提示錯(cuò)誤:
    javac:
    ????[javac]?Compiling?2?source?files?to?E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
    ????[javac]?注意:?E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java?使用了未經(jīng)檢查或不安全的操作。
    ????[javac]?注意:?要了解詳細(xì)信息,請(qǐng)使用?-Xlint:unchecked?重新編譯。
    compile:通過,略.
    fill:
    ?????[java]?java.sql.SQLException:?Connection?is?broken:?Connection?refused:?connect
    ?????[java]?at?org.hsqldb.Trace.getError(Unknown?Source)
    ?????……
    view:
    ?????[java]?net.sf.jasperreports.engine.JRException:?java.io.FileNotFoundException:?MultipleAxisChartReport.jrprint

    7.怎么辦呢?上網(wǎng)查jasper的資料,折騰了大半天,還是沒有任何進(jìn)展,網(wǎng)上的資料都只簡(jiǎn)單的提到“需要ant”執(zhí)行,唉,真是沒辦法。只好轉(zhuǎn)向運(yùn)行"webapp"示例,運(yùn)行成功了!(詳細(xì)看運(yùn)行jasperreport的webapp示例一文)

    8.實(shí)在不知道為什么最重要的charts示例無法運(yùn)行,還是先踏踏實(shí)實(shí)看一下jasperreports的原理吧,于是認(rèn)真看了"jasperreports?教程",了解到j(luò)asperreports的基本原理:
    調(diào)用jasperreports的相應(yīng)的庫(kù)函數(shù),把.jrxml編譯為.jasper;->由.jasper生成.jrprint;->由.jrprint得到各種輸出方式的報(bào)表。

    理解到這一點(diǎn)后,自己就沒再往下看,因?yàn)槟軌虼_定charts示例無法運(yùn)行絕對(duì)與jasperreports的原理無關(guān)了。

    9.于是,認(rèn)真分析了一下編譯提示的錯(cuò)誤,發(fā)現(xiàn)主要就是因?yàn)榫幾g無法通過造成的,以至于后面缺少對(duì)應(yīng)的.jrprint文件。而編譯不通過的原因是“[javac]要了解詳細(xì)信息,請(qǐng)使用-xlint:unchecked重新編譯”,在build.xml中相應(yīng)位置加上編譯參數(shù):
    <javac?srcdir="src"?destdir="${classdir}">
    <compilerarg?value="-Xlint:unchecked"/>?

    終于編譯通過了!!(詳細(xì)參見“Eclipse中報(bào)錯(cuò)"要了解詳細(xì)信息,請(qǐng)使用-xlint?unchecked重新編譯"的解決方案”一文)

    10.這時(shí)javac通過了,即ChartsApp.java編譯通過了,但是fill和view這兩步還是提示原來的錯(cuò)誤,如下所示:
    javac:
    ????[javac]?Compiling?2?source?files?to?E:\jiangcm\workspace-forict-myeclipse\jasperreports-1.3.0-project\demo\samples\charts
    ????[javac]?E:\jiangcm\workspace-forict-myeclipse\jasperreports-1.3.0-project\demo\samples\charts\ChartsApp.java:115:?警告:?[unchecked]?對(duì)作為普通類型?java.util.Map?的成員的?put(K,V)?的調(diào)用未經(jīng)檢查
    ????[javac]?parameters.put("MaxOrderID",?new?Integer(12500));
    ????[javac]?^
    ????[javac]?1?警告
    compile:
    fill:
    ?????[java]?java.sql.SQLException:?Connection?is?broken:?Connection?refused:?connect
    ?????[java]?at?org.hsqldb.Trace.getError(Unknown?Source)
    view:
    ?????[java]?net.sf.jasperreports.engine.JRException:?java.io.FileNotFoundException:?MultipleAxisChartReport.jrprint
    ?????[java]?at?net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
    其中fill這一步提示的是SQLException的錯(cuò)誤,難道是要配置數(shù)據(jù)源或者是要運(yùn)行什么東西?
    再看fill的出錯(cuò)提示:"[java]?at?org.hsqldb.Trace.getError(Unknown?Source)",對(duì)了,好像"demo"文件夾里有"hsqldb"文件夾,是不是要先運(yùn)行"hsqldb"文件夾的內(nèi)容??試試。

    10.于是ant編譯"demo\hsqldb"的build.xml;提示:server?is?running...
    應(yīng)該是數(shù)據(jù)庫(kù)啟動(dòng)了;

    11.接著ant編譯"demo\samples\charts"的build.xml;順利fill,耶!看到曲線圖、柱狀圖等報(bào)表了!

    12.備注:關(guān)掉報(bào)表再直接運(yùn)行一次charts的build.xml,還能正確看到報(bào)表;關(guān)掉eclipse再運(yùn)行,也也還能正確看到報(bào)表;看來hsqldb只要運(yùn)行過一次,以后就都有效了!至于原理就不太明白了,難道是hsqldb運(yùn)行過之后就永久的把數(shù)據(jù)導(dǎo)入到工程的報(bào)表中了?有待以后學(xué)習(xí)驗(yàn)證了。

    13.小結(jié):
    運(yùn)行jasperreports示例,關(guān)鍵是要注意和解決三個(gè)問題:
    1)import?project時(shí),工程名稱要與.project文件中"<name></name>"中的名稱一致,否則無法導(dǎo)入;

    2)jdk版本兼容的問題:
    加入編譯參數(shù):<compilerarg?value="-Xlint:unchecked"/>

    3)要先運(yùn)行一下"demo\hsqldb"下的build.xml,啟動(dòng)數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù),才能fill報(bào)表,運(yùn)行顯示報(bào)表;
    ok!

    以上步驟重復(fù)驗(yàn)證過兩三次均無問題,按上述步驟保證就能運(yùn)行jasperreports提供的charts關(guān)鍵示例了!
    posted on 2007-01-29 14:25 matthew 閱讀(814) 評(píng)論(0)  編輯  收藏 所屬分類: 報(bào)表設(shè)計(jì)與開發(fā)
    主站蜘蛛池模板: 永久免费观看黄网站| 亚洲中文字幕久久精品蜜桃| 少妇亚洲免费精品| 亚洲av无码国产精品色在线看不卡| 在线观看亚洲AV日韩A∨| 日韩版码免费福利视频| 国产成人亚洲精品| 亚洲视频一区二区三区| 国产亚洲成在线播放va| 国产成人免费一区二区三区| 精品国产日韩亚洲一区在线| 亚洲精品网站在线观看不卡无广告| 国产精品福利片免费看| 久久久亚洲欧洲日产国码农村| 亚洲精品天堂成人片AV在线播放| 免费无码成人AV在线播放不卡| 亚洲毛片一级带毛片基地| 亚洲AV中文无码乱人伦下载| 任你躁在线精品免费| 亚洲人成亚洲精品| 麻豆视频免费播放| 亚洲成在人线在线播放无码| 亚洲福利在线播放| 在线毛片片免费观看| 亚洲人成在线免费观看| 国产乱子影视频上线免费观看| EEUSS影院WWW在线观看免费| 久久亚洲精品无码AV红樱桃| 永久免费看mv网站入口| 久久国产精品免费一区二区三区| 内射干少妇亚洲69XXX| 成年女人永久免费观看片| 久久久久久久久久久免费精品| 亚洲熟妇无码爱v在线观看| 日韩免费毛片视频| 国产日韩一区二区三免费高清| 亚洲中文字幕无码一去台湾| 亚洲最大av无码网址| 免费看成人AA片无码视频羞羞网| 特级av毛片免费观看| 亚洲毛片在线免费观看|