excel报表开发工具FineReport Web传递中文参数

 时间:2026-02-14 14:45:18

给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:

<iframe id="reportFrame" width="900" height="400" src="/WebReport/ReportServer?reportlet=/report.cpt&参数1=参数值&参数2=参数值..."></iframe>  

若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题。

excel报表开发工具FineReport Web传递中文参数

工具/原料

FineReport

使用cjkEncode对中文进行编码转换

1 加载finereport.js使用cjkEncode

cjkEncode方法在FineReport的JS库中已经预先提供了,用户可以在自己的网页中引入FineReport的JS库,就可以使用FR.cjkEncode对中日韩文字符进行编码,如下对调用报表的url进行cjkEncode:

<html>    

  <head>    

  <title>FineReport Demo</title>    

  <meta http-equiv="Content-Type" content="text/html; charset=GBK" />    

  <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>  

  <script language="javascript">  

    function autoLoad(){  

      var addr = FR.cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东");  

      document.getElementById("reportFrame").src = addr;  

    }  

    window.onload = autoLoad;   

  </script>  

  </head>    

  <body>    

    <iframe id="reportFrame" width="900" height="400" ></iframe>    

  </body>  

</html>  

finereport.js使用的是jquery框架,若用户也使用了jquery,可能会造成冲突,这时建议不要引入finereport.js,而是将cjkEncode方法拷贝到页面中直接使用,详见下面的方法。

2 直接调用cjkEncode

加载finereport.js再引用cjkEncode,一方面可能会引起js冲突,另一方面也加载了很多不必要的方法。

若用户只需要使用该方法,可以将cjkEncode实现的代码复制到网页中或者用户自己的js文件中,然后再引用cjkEncode。

<html>  

  <head>    

  <title>FineReport Demo</title>    

  <meta http-equiv="Content-Type" content="text/html; charset=GBK" />    

  <script type="text/javascript">  

    //cjkEncode方法的实现代码,放在网页head中或者用户自己的js文件中  

    function cjkEncode(text) {                                                                            

      if (text == null) {         

        return "";         

      }         

      var newText = "";         

      for (var i = 0; i < text.length; i++) {         

        var code = text.charCodeAt (i);          

        if (code >= 128 || code == 91 || code == 93) {  //91 is "[", 93 is "]".         

          newText += "[" + code.toString(16) + "]";         

        } else {         

          newText += text.charAt(i);         

        }         

      }         

      return newText;         

    }     

  

    function autoLoad() {  

      var addr = cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东");  

      document.getElementById("reportFrame").src = addr;  

    }  

  

    window.onload = autoLoad;           //加载网页时调用autoLoad方法  

  </script>  

  </head>    

  <body>    

    <iframe id="reportFrame" width="900" height="400" ></iframe>    

  </body>    

</html>  

  • excel报表开发工具FineReport自定义参数界面
  • excel报表开发工具FineReport Web页面集成例子
  • excel报表工具FineReport之模板参数与参数表单
  • excel报表开发工具FineReport部署到服务器乱码
  • excel报表开发工具FineReport之iframe框架高度
  • 热门搜索
    误解的意思 呵斥的意思 斡旋的意思 swear什么意思 gif用什么软件打开 五个月宝宝能吃什么 human是什么意思 itunes有什么用 2020年什么时候入伏 丙烯颜料用什么稀释