無聊人士

          搬家==》www.soapui.cn

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            32 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks

          2007年4月6日 #

          struts 2.0.6GA開始試螃蟹,照著struts2的tag文檔寫成<@s.datetimepicker/>,結果老是報錯
          211672?[http-8080-Processor25]?ERROR?freemarker.runtime??-?
          on?line?
          7,?column?17?in?admin/index.ftl?s.datetimepicker?not?found.
          The?problematic?instruction:
          ----------
          ==>?user-directive?s.datetimepicker?[on?line?7,?column?17?in?admin/index.ftl]
          ----------

          Java?backtrace?for?programmers:
          ----------
          freemarker.core.InvalidReferenceException:?on?line?
          7,?column?17?in?admin/index.ftl?s.datetimepicker?not?found.

          試著google一下,正好有人也提交了這個bug,改成 <@s.dateTimePicker />,問題解決

          The?fix?is?as?follows:

          In?struts2-core-
          2.0.6:
          org.apache.struts2.views.freemarker.tags.StrutsModels

          has?a?method
          getDateTimePicker()

          Which?should?be?re-named:
          getDatetimepicker()

          to?match?with?the?naming?convention.


          hello,struts2.jpg
          posted @ 2007-04-20 10:26 mmwy 閱讀(2598) | 評論 (0)編輯 收藏

          來自:http://www.javaworld.com.tw/jute/post/print?bid=11&id=166588

          3.Re:BIRT報表工具的問題?[Re:?uxa]?????Copy?to?clipboard
          Posted?by:?uxa
          Posted?on:?
          2006-09-15?15:28

          經過幾次的失敗後~~小弟終於試出來了
          不過感覺它似乎只是support?xls?file?format並沒有excel的一些功能>?<

          1.?download?eclipse?plugin?BIRT,小弟抓的是birt-report-designer-all-in-one-2_1_0.zip
          將其解開後把eclipse\plugins和eclipse\features這兩個目錄放到eclipse的目錄底下
          現在將eclipse打開,您已經可以開始設計報表了。

          2.?BIRT預設有支援HTML和PDF的格式,以下說明如何支援xls格式
          a.?download?xls-emitter-bin_2
          .1.0.zip,解開後將plugins複製到eclipse\plugins下
          b.?download?poi-bin-
          3.0-alpha2-20060616.zip,解開後將jar檔複製到eclipse\plugins\?org.uguess.birt.report.engine.emitter.xls_2.1.0.200607031206\lib
          c.?xls-emitter-bin_2
          .1.0.zip解開後有個path的目錄,
          (
          1)?將org.eclipse.birt.report.designer.ui目錄下的檔案複製到eclipse\plugins\org.eclipse.birt.report.designer.ui.preview_2.1.0.*.jar
          (
          2)將org.eclipse.birt.report.viewer目錄下的檔案複製到eclipse\plugins\?org.eclipse.birt.report.viewer_2.1.0.*\birt\WEB-INF\lib\viewservlets.jar
          (
          3)將org.eclipse.birt.report.engine目錄下的檔案複製到eclipse\plugins\org.eclipse.birt.report.engine_2.1.0.*.jar

          完成後啟動eclipse可看到在view?report的按鈕上多了xls和ppt兩種格式

          BIRT下載位置:http://download.eclipse.org/birt/downloads/
          Tribix下載位置:https://sourceforge.net/projects/tribix
          ps:請注意版本的問題,BIRT2
          .1.0請搭配Tribix?XLS?Emitter?2.1.0版本,在置換檔名的部份也請注意路徑是否正確

          posted @ 2007-04-08 15:42 mmwy 閱讀(1627) | 評論 (2)編輯 收藏

          條碼顯示,在birt中最常見的有兩種方法:1、使用條碼字體(對pdf無效);2、用barcode的開源包,生成barcode,然后在報表里用動態地址去取圖片。

          今晚看birt文檔(第 23 章 使用 Java 編寫事件處理程序),例子中用java實現了一個LabelEventAdapter的適配器,對標簽元素進行事件控制。腦子里靈光一現,似乎條碼有著落了。

          我的測試例子很簡單,繼承ImageEventAdapter類,重載onCreate方法,以進行條形碼處理

          ?1?package?cn.ynzc.common.birt.test;
          ?2?
          ?3?import?java.io.File;
          ?4?import?java.io.FileOutputStream;
          ?5?
          ?6?import?jbarcodebean.Code128;
          ?7?import?jbarcodebean.JBarcodeBean;
          ?8?
          ?9?import?org.apache.commons.codec.digest.DigestUtils;
          10?import?org.eclipse.birt.report.engine.api.script.IReportContext;
          11?import?org.eclipse.birt.report.engine.api.script.eventadapter.ImageEventAdapter;
          12?import?org.eclipse.birt.report.engine.api.script.instance.IImageInstance;
          13?
          14?public?class?MyLabelClass?extends?ImageEventAdapter?{
          15?
          16???public?void?onCreate(IImageInstance?image,?IReportContext?reportContext)?{
          17?????try?{
          18???????//實際應用中,可以使用image.getRowData().getColumnValue("columnname")獲得字段值
          19???????String?code?=?"ABCDEF123-2222";
          20???????//似乎windows文件名中不允許使用“-”等符號,干脆將code進行md5散列處理
          21???????File?file?=?new?File(System.getProperty("java.io.tmpdir"),?DigestUtils.md5Hex(code));
          22???????//避免每次都進行條碼文件生成
          23???????if?(!file.exists())?{
          24?????????JBarcodeBean?bb?=?new?JBarcodeBean();
          25?????????bb.setCodeType(new?Code128());
          26?????????bb.setShowText(true);
          27?????????bb.setBarcodeHeight(45);?//條碼高度
          28?????????bb.setCode(code);
          29?????????bb.gifEncode(new?FileOutputStream(file));
          30???????}
          31???????image.setFile(file.getAbsolutePath());
          32?????}
          33?????catch?(Exception?e)?{
          34???????e.printStackTrace();
          35?????}
          36???}
          37?
          38?}
          39?

          測試用的birt報表文件簡單得要死,就往上面扔了個image元素,設置其Event Handler Class為剛才寫好的java類,最終得到的rptdesign文件內容如下:
          ?1?<?xml?version="1.0"?encoding="UTF-8"?>
          ?2?<!--?Written?by?Eclipse?BIRT?2.0?-->
          ?3?<report?xmlns="http://www.eclipse.org/birt/2005/design"?version="3.2.6"?id="1">
          ?4?????<property?name="createdBy">Eclipse?BIRT?Designer?Version?2.1.2.v20070205-1728?Build?&lt;20070205-1728></property>
          ?5?????<property?name="units">in</property>
          ?6?????<page-setup>
          ?7?????????<simple-master-page?name="Simple?MasterPage"?id="2"/>
          ?8?????</page-setup>
          ?9?????<body>
          10?????????<image?id="4">
          11?????????????<property?name="eventHandlerClass">cn.ynzc.common.birt.test.MyLabelClass</property>
          12?????????</image>
          13?????</body>
          14?</report>

          運行測試,條形碼出來了
          birt.jpg

          遺留問題:
          這次是調用org.eclipse.birt.report.engine.api.script.instance.IImageInstance.setFile()來解決問題,從javadoc可以看到,IImageInstance有很多方法可以調用,其它方法分別有什么作用?比如我嘗試了半天的setData(byte[])方法,一開始以為是用這個方法直接把圖形數據set進去就ok,結果未成功。


          posted @ 2007-04-07 03:37 mmwy 閱讀(4233) | 評論 (4)編輯 收藏

          birt的IRunAndRenderTask接口提供了addScriptableJavaObject(java.lang.String jsName, java.lang.Object obj)方法,利用這個方法,在直接調用birt api操作處理報表的時候,我們可以將任何java對象通過addScriptableJavaObject("xxx",Object)加進birt去,然后在birt腳本中直接調用xxx.method()進行操作。

          我的測試是在一個webwork+spring+hibernate的webapp應用中進行的,進行報表處理的代碼參照http://wiki.eclipse.org/index.php/Servlet_Example編寫,在代碼中,寫了一句
          task.addScriptableJavaObject("ctx",
          WebApplicationContextUtils.getWebApplicationContext(sc));

          birt中定義了一個scripts datasource,然后定義一個data set,在dataset的open方法中編寫腳本

          infoManager=ctx.getBean("infoManager");
          infos=infoManager.loadAll();
          ...
          posted @ 2007-04-06 15:39 mmwy 閱讀(2067) | 評論 (3)編輯 收藏

          主站蜘蛛池模板: 德安县| 沙雅县| 鄂州市| 三门县| 长宁区| 浦县| 东兰县| 泾川县| 宾川县| 沙田区| 棋牌| 喜德县| 新乡市| 海淀区| 开阳县| 江西省| 贡嘎县| 云霄县| 大荔县| 阿巴嘎旗| 佛坪县| 来安县| 象州县| 娱乐| 法库县| 湘乡市| 聂荣县| 克拉玛依市| 新和县| 定兴县| 岱山县| 商城县| 紫金县| 威远县| 资中县| 兰考县| 荆州市| 和龙市| 古交市| 文山县| 固镇县|