Web报表页面如何传递中文参数
2018-02-08 17:49
246 查看
1、场景描述
在用报表开发工具FineReport设计的web报表中,给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:
若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题。比如下图:
今天我就来讲讲该如何如何传递中文参数。
2、使用cjkEncode对中文进行编码转换
使用cjkEncode对调用报表的路径或参数进行编码,报表获取到参数后会自动进行解码,保证不会出现乱码等一系列情况。
cjkEncode是FR内部封装好的编码方法,在js中使用cjkEncode有两种方式,该节我们举例介绍。
2.1加载finereport.js使用cjkEncode
cjkEncode方法在FineReport的JS库中已经预先提供了,用户可以在自己的网页中引入FineReport的JS库,就可以使用FR.cjkEncode对中日韩文字符进行编码,如下对调用报表的url进行cjkEncode:
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。
在用报表开发工具FineReport设计的web报表中,给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:
若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题。比如下图:
今天我就来讲讲该如何如何传递中文参数。
2、使用cjkEncode对中文进行编码转换
使用cjkEncode对调用报表的路径或参数进行编码,报表获取到参数后会自动进行解码,保证不会出现乱码等一系列情况。
cjkEncode是FR内部封装好的编码方法,在js中使用cjkEncode有两种方式,该节我们举例介绍。
2.1加载finereport.js使用cjkEncode
cjkEncode方法在FineReport的JS库中已经预先提供了,用户可以在自己的网页中引入FineReport的JS库,就可以使用FR.cjkEncode对中日韩文字符进行编码,如下对调用报表的url进行cjkEncode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 1. <</code> > 2. <</code> > 3. <</code> >FineReport Demo</</code> > 4. <</code> http-equiv = "Content-Type" content = "text/html; charset=GBK" /> 5. <</code> type = "text/javascript" src = "/WebReport/ReportServer?op=emb&resource=finereport.js" ></</code> > 6. <</code> language = "javascript" > 7. function autoLoad(){ 8. var addr = FR.cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东"); 9. document.getElementByIdx_x("reportFrame").src = addr; 10. } 11. window.onload = autoLoad; 12. </</code> > 13. </</code> > 14. <</code> > 15. <</code> id = "reportFrame" width = "900" height = "400" ></</code> > 16. </</code> > 17. </</code> > |
已完成示例请参照%FR_HOME%\WebReport|page_demo\parameter_ch.html
2.2直接调用cjkEncode
加载finereport.js再引用cjkEncode,一方面可能会引起js冲突,另一方面也加载了很多不必要的方法。
若用户只需要使用该方法,可以将cjkEncode实现的代码复制到网页中或者用户自己的js文件中,然后再引用cjkEncode。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 1. <</code> > 2. <</code> > 3. <</code> >FineReport Demo</</code> > 4. <</code> http-equiv = "Content-Type" content = "text/html; charset=GBK" /> 5. <</code> 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. } |
相关文章推荐
- Web报表页面如何传递中文参数
- Web报表页面如何传递中文参数
- 不同web如何通讯之 html页面获取传递的参数
- asp.net传递的中文url参数在asp页面如何正确接收
- 皕杰报表在JSP页面中如何传递参数和变量
- web前端页面与后台交互时发生中文参数传递出现乱码问题
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
- 关于页面之间传递参数为中文问题
- ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
- javascript通过url向jsp页面传递中文参数导致乱码解决方案
- ext6如何不同页面传递参数问题
- JSP页面之间传递中文参数的解决方法
- jsp页面传递中文参数乱码的解决
- springmvc项目jsp页面传递参数至controller中文乱码解决方案
- 解决javascript通过url向Jsp页面传递中文参数乱码问题
- javascript通过url向jsp页面传递中文参数乱码解决方法
- Jsp页面中文参数传递get和post方法分析
- 【疑问】如何在jsp中response.sendRedirect()方法中传递中文参数
- hTML 如何在不同页面上传递参数( 1 )
- iframe之间静态html页面如何传递参数?