精彩的人生

          好好工作,好好生活

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks
          BIRT的chart功能似乎并不是很強(qiáng)大,反正在使用過程中,出現(xiàn)過編輯器不好使,被迫直接修改xml文件的情況.

          現(xiàn)在,有一個這樣的需求,就是讓Y軸的標(biāo)題顯示用戶輸入的值.



          如圖所示,這個標(biāo)題是在編輯/定義圖表的時候輸入的固定值,這個值不管是改成params["test"]還是reportContext.getParameter("test")都會直接返回文本,而不是表達(dá)式值.

          但是,這個文本唯一支持的動態(tài),就是本地化,那么本文將介紹如何利用resources.properties來實現(xiàn)這個標(biāo)題的動態(tài)顯示

          首先,設(shè)置這個chart的resource使用<YOUR_LOCATION>/reources.properties文件

          然后,在這個properties文件中輸入test_field=Hopeshared's Test

          接著,修改這個title


          這個時候,preview的結(jié)果,title就會顯示properties文件里的內(nèi)容

          向report添加一個名為test的參數(shù),這個參數(shù)是string類型,必填項,用戶的輸入將保存到properties文件并顯示在chart中

          接著,寫個腳本,讓properties文件內(nèi)容發(fā)生變化
          在整個report的initialize方法中,寫入
           1importPackage(Packages.java.lang);
           2importPackage(Packages.java.util);
           3importPackage(Packages.java.io);
           4importPackage(Packages.java.net);
           5
           6var t_value = params["test"];
           7var prop=new Properties();
           8
           9var in_stream=new FileInputStream("<YOUR_PROPERTIES_FOLDER>/resources.properties");
          10prop.load(in_stream);
          11in_stream.close();
          12        
          13prop.put("test_field", t_value);
          14
          15var   fout=new  FileOutputStream("<YOUR_PROPERTIES_FOLDER>/resources.properties");
          16prop.store(fout,"Test Properties");
          17fout.close();
          18
          19var current = new File("<YOUR_PROPERTIES_FOLDER>");
          20
          21var cl = new URLClassLoader(new Array(current.toURL()));
          22res = ResourceBundle.getBundle("resource", Locale.getDefault(), cl);

          最后,preview一下,看看結(jié)果.

          歡迎大家告訴我其他更好的辦法來達(dá)到這個目標(biāo),謝謝!
          posted on 2007-11-12 13:20 hopeshared 閱讀(3931) 評論(4)  編輯  收藏 所屬分類: BIRT

          Feedback

          # re: BIRT.CHART: 讓Y軸標(biāo)題動態(tài)修改[未登錄] 2007-11-13 16:07 hopeshared
          傻了,其實有很簡單的辦法實現(xiàn)的
          在圖上寫個腳本
          function beforeDrawAxisTitle(axis, label, icsc)
          {
          label.getCaption().setValue(icsc.getExternalContext().getScriptable().getParameterValue("test"));
          }
          就可以了,hoho  回復(fù)  更多評論
            

          # re: BIRT.CHART: 讓Y軸標(biāo)題動態(tài)修改 2008-04-22 18:42 fy_kenny
          好方法,

          我初次接觸,還望前輩指點啊.  回復(fù)  更多評論
            

          # re: BIRT.CHART: 讓Y軸標(biāo)題動態(tài)修改 2008-08-19 08:52 月下孤影
          你這個方法
          function beforeDrawAxisTitle(axis, label, icsc)
          {
          label.getCaption().setValue(icsc.getExternalContext().getScriptable().getParameterValue("test"));
          }

          應(yīng)該寫到哪里呢?  回復(fù)  更多評論
            

          # re: BIRT.CHART: 讓Y軸標(biāo)題動態(tài)修改[未登錄] 2011-07-04 13:56 clark
          @hopeshared
          X軸好像也發(fā)生了改變,和Y軸一樣!  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 舒兰市| 阿城市| 应城市| 洞口县| 德庆县| 昌黎县| 博客| 额敏县| 蒙自县| 佛山市| 广州市| 池州市| 尚志市| 越西县| 巴彦淖尔市| 龙江县| 澜沧| 定南县| 图们市| 得荣县| 德清县| 阿图什市| 芷江| 林州市| 洱源县| 通海县| 阿合奇县| 明溪县| 手游| 怀来县| 中卫市| 连南| 板桥市| 乃东县| 桂林市| 凤阳县| 永宁县| 开远市| 绥化市| 嫩江县| 彭山县|