文档章节

Web报表页面如何传递中文参数

九月你好123
 九月你好123
发布于 2015/08/18 09:53
字数 737
阅读 76
收藏 1

1、场景描述

在用报表开发工具FineReport设计的web报表中,给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:

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

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



 

今天我就来讲讲该如何如何传递中文参数。

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

使用cjkEncode对调用报表的路径或参数进行编码,报表获取到参数后会自动进行解码,保证不会出现乱码等一系列情况。

cjkEncode是FR内部封装好的编码方法,在js中使用cjkEncode有两种方式,该节我们举例介绍。

2.1加载finereport.js使用cjkEncode

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

1.      <html>    

2.        <head>    

3.        <title>FineReport Demo</title>    

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

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

6.        <script language="javascript">  

7.          function autoLoad(){  

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

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

10.      }  

11.      window.onload = autoLoad;   

12.    </script>  

13.    </head>    

14.    <body>    

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

16.    </body>  

17.  </html>  

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

已完成示例请参照%FR_HOME%\WebReport|page_demo\parameter_ch.html

2.2直接调用cjkEncode

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

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

1.     <html>  

2.       <head>    

3.       <title>FineReport Demo</title>    

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

5.       <script type="text/javascript">  

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

7.         function cjkEncode(text) {                                                                            

8.           if (text == null) {         

9.             return "";         

10.        }         

11.        var newText = "";         

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

13.          var code = text.charCodeAt (i);          

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

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

16.          } else {         

17.            newText += text.charAt(i);         

18.          }         

19.        }         

20.        return newText;         

21.      }     

 


© 著作权归作者所有

九月你好123
粉丝 10
博文 111
码字总数 112722
作品 0
杭州
私信 提问
IE浏览器http请求,中文传参报400错误-解决方法

做项目的时候,遇到一个小的问题.一个get请求列表数据的接口,在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,其含义是你访问的页面域名不存在或者请求错误,自...

青衫旧巷
2018/09/19
5.5K
1
pager-taglib分页中文乱码原理解析

关于使用pager-taglib分页前端传递中文参数乱码问题的解决方案 1.重现问题 在web项目中有时会用到pager-taglib来作为分页的标签,如上图红色框标识所示,当我们需要把页面参数保持的时候我们...

chaun
2015/08/29
298
0
java web中中文乱码问题汇总

[关于使用java 进行的javaweb开发时候的中文乱码的解决方法][1] [1]: http://blog.sina.com.cn/s/blog_6cadcce70101ep77.html 如下是其中的内容: 1,jsp页面中文乱码解决办法:文件头部定义...

小老傅
2014/03/07
131
0
项目经验总结-Eclipse图表工具Birt的使用技巧(二)

作为Eclipse图表工具Birt的使用技巧(一)的后续,上一篇主要说明了Birt报表创建和使用的基本步骤和过程,本文旨在介绍一些常用的技巧,都是比较实用而且经过我本人实践可行的,希望能给需要的人带...

顽Shi
2014/01/21
8.2K
0
Java URL传参中文乱码问题

我们经常会遇到这样的场景:在URL中传递参数,如果该参数为中文,如果设置不当,会出现乱码问题。 URL传参所使用的编码为服务器中设置的编码,而ajax请求的编码为页面编码。 如果不设置tomca...

程序猿之小菜鸟
2015/08/28
636
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员web前端教程分享常见基础面试题之性能优化

  好程序员web前端教程分享常见基础面试题之性能优化,为了能够更快的通过企业面试,很多人都会背面试题,而性能优化是每一个企业都会问到的问题,今天就给大家分享一下。   性能优化(Op...

好程序员官网
29分钟前
5
0
面试题必问:spring MVC工作流程图

先看下我在网上找的一张图片,图虽然不是很好看但是很详细很清晰 具体解答 用户向服务器发送请求,请求被spring的核心组件DispatcherServlet截获 DispatcherServlet对请求URL进行解析,得到U...

shiliang_feng
29分钟前
6
0
centos7编译安装php7

安装依赖 [root@localhost ~]# yum -y install gcc gcc++ gcc-c++ wget make libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel bison au......

请叫我足下
29分钟前
5
0
处理Unicode字符 \u202E 问题

这么一段字符串,实际内容应该是123abc456,在获取到的时候就变成下面的内容,肯定要处理呀.... 又得手撸了代码了\u202E : 会将字符串进行翻转,\u202D : 会将字符串互换位置,但为什么从...

小象鸭
35分钟前
4
0
怎么用视频转换器把qsv格式转换成mp4

随着生活水平不断提高消费水平也在不断的增长,与此同时娱乐已经成为了人们生活中重要的一环,在看一些视频时是否会发现例如qsv、qlv和kux等格式是不能用别的播放器打开的,其实这几个格式分...

cenfeng123
43分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部