心的方向

          新的征途......
          posts - 75,comments - 19,trackbacks - 0

          之前看網上有人發帖說有個解決辦法是viewservlet.jar下找到org/eclipse/birt/report/utility下找到ParameterAccessor.class文件,現在要修改這個文件的源代碼, 

          你可以在你從CVS中簽出的源代碼中的org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/utility文件夾中找到ParameterAccessor.java文件,在這個java文件中找到這行:

          public static final String UTF_8_ENCODE = "UTF-8"; //$NON-NLS-1$

          將這行改為

          public static final String UTF_8_ENCODE = "GBK"; //$NON-NLS-1$

          然后將這個編譯好的class文件壓縮到viewservlets.jar的同等目錄下,替換原來的文件”,本人也試了這種方法,但沒見湊效,不過上面的解決方法好像是在birt2.1的環境下,這個沒仔細試,也許對birt2.1有效吧。


          本人使用birt版本2.3,解決辦法如下:
          在JSP中調用BIRT報表時,傳的參數中有中文字符,即URL中包含中文字符,這時在BIRT端接收到的參數拼SQL語句后發現中文字符被轉碼,造成SQL中的條件不正確。
          因為在JSP中調用BIRT是在一個JS腳本中,因此要想辦法在JS中先將中文轉成UTF-8,并且在BIRT獲取參數后再將UTF-8轉換回中文即可。
          實現代碼:
          頁面JS:
          Var mychecktype = “中文”;
          sqlWhere+="and t.CHECK_TYPE = '"+escape(encodeURI(mychecktype))+"'";

          BIRT腳本:
          sql+=decodeURI(mycondition);

          posted on 2009-07-02 09:56 阿偉 閱讀(2541) 評論(1)  編輯  收藏 所屬分類: 報表

          FeedBack:
          # re: 關于birt中文參數
          2009-11-11 10:18 | gmin
          第一種方法我也試成功
          第二種方法借鑒你的,成功了

          jsp頁面:
          window.open('frameset?__report=reports/pz_report.rptdesign&__format=HTML&cphParameter='+escape(encodeURI(cph)));
          birt 的Script中的initialize中這樣寫
          var cph = params["cphParameter"].value
          params["cphParameter"].value = decodeURI(cph);

          謝謝分享  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 电白县| 蒙山县| 德保县| 鄂托克前旗| 浙江省| 扶风县| 赤水市| 从化市| 乐陵市| 神农架林区| 洛阳市| 台山市| 大宁县| 水城县| 通化市| 亚东县| 平潭县| 三亚市| 确山县| 平塘县| 闸北区| 南乐县| 河源市| 乌苏市| 平乡县| 昔阳县| 九江县| 年辖:市辖区| 怀柔区| 高碑店市| 平阳县| 田林县| 湘潭市| 安乡县| 寿光市| 连江县| 喀喇| 阳江市| 昌图县| 皮山县| 黄梅县|