`

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

阅读更多

 

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.      }     

 

 

 

 

  • 大小: 39.4 KB
3
3
分享到:
评论

相关推荐

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

    在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...

    用C#编写的在Web显示的水晶报表

    5. **参数和子报表**: `CS_Web_CRVObjMod_ParametersSubrpt`可能涉及到报表参数的使用,允许用户输入筛选条件。而`CS_Web_RDObjMod_ReportParts`可能涉及使用子报表,子报表可以嵌套在主报表中,以显示更详细的信息...

    ATGrid WEB报表控件打印插件

    ATGrid WEB报表控件打印插件是一款专为Web应用程序设计的高效报表工具,它提供了丰富的报表设计和打印功能,能够帮助开发者轻松实现网页中的数据展示和打印需求。这款控件适用于各种类型的Web应用,包括企业级的信息...

    Web报表开发技术-JFreeReport开发技术实例

    在Web报表开发中,JFreeReport通常与Servlets、JSP或Struts等Web框架结合使用。以下是使用JFreeReport进行Web报表开发的基本步骤: 1. **设计报表模板**:使用JFreeReport提供的Report Designer,可以创建XML格式的...

    WEB报表打印到PDF

    标题中的“WEB报表打印到PDF”指的是在网页中展示的报表转换为PDF格式的技术,这在数据呈现和分享中十分常见。PDF(Portable Document Format)文件格式能够保持文档的原始布局和格式,使得用户无论在何种设备或操作...

    web网页报表

    本篇文章将深入探讨Web报表设计及其与Java的结合应用。 一、Web报表设计基础 1. 报表布局:Web报表的设计首先要考虑布局,包括行、列的排列,以及图表的放置。良好的布局能清晰地呈现数据,帮助用户快速找到关键...

    web报表B/S

    Web报表B/S系统采用这种模式,使得用户只需打开网页就能查看和操作报表,降低了对客户端环境的要求。 2. **报表设计**:Web报表通常包含多种图表、表格和图形,以直观地展示复杂的数据。设计工具支持拖拽式布局,...

    Crystal Report篇之Web报表服务

    这些参数可以通过Web页面上的表单或URL查询字符串传递。 5. **交互功能**:Web报表服务支持多种交互功能,如打印、导出(PDF、Excel、CSV等格式)、订阅和定时调度等。用户可以在Web浏览器中直接操作,而无需打开...

    Web报表开发技术-Cewolf开发技术实例

    Cewolf是一种基于Java的Web报表工具,尤其适用于J2EE环境,它允许开发者轻松地创建和展示丰富的图表和报告。本实例将深入探讨如何在Web应用程序中集成和使用Cewolf技术。 1. **Cewolf简介** Cewolf,全称为...

    asp.net web 水晶报表的使用大全

    完成报表设计后,将其嵌入ASP.NET Web页面中,用户可以通过Web浏览器查看和打印报表。确保在服务器端安装了水晶报表的运行时库,以支持报表的正确显示。 11. **性能优化** 对于大型数据集,可能需要优化报表性能...

    (整理)Web报表培训90.ppt

    1. 浏览器访问方式:Web报表支持多种网页浏览器,如IE7/8,提供跨平台的访问体验。 2. 自定义功能:用户可以自定义报表格式、衍生栏位和关联栏位,满足个性化需求。 3. 快速搜索:通过关键字搜索,快速定位所需报表...

    Web报表ReportView用法

    Web报表在信息化时代扮演着重要的角色,它能够帮助我们有效地展示和分析大量数据。ReportView是Microsoft提供的一个强大工具,用于在Web环境中创建、编辑和展示报表。在本篇文章中,我们将深入探讨ReportView的使用...

    Grid++Report 5 Web报表插件帮助(grweb)

    ### Grid++Report 5 Web报表插件帮助(grweb)关键知识点解析 #### 一、Grid++Report 报表工具概述 - **Grid++Report**是一款高性能的报表开发工具,适用于开发桌面应用程序及Web应用程序中的报表与打印系统。 - **...

    Web报表开发技术-jCharts开发技术实例

    Web报表开发技术是现代Web应用程序中的重要组成部分,它允许用户以直观的方式查看和理解大量数据。jCharts是一款基于Java的图表库,专为在J2EE环境中创建动态、交互式的Web报表而设计。本实例将深入探讨如何在Web...

    web报表培训幻灯片90.pptx

    1. **设置连接参数**:自动设置ERP和web报表数据库的连接参数。 2. **录入系统信息**:设置有效码,决定哪些系统别在web上发布报表。 3. **录入报表信息**:选择要发布的报表,不常用的报表可以禁用。 4. **报表菜单...

    报表工具FineReport中如何把报表放到网页中显示

    需要注意的是,如果报表中有参数,直接在URL中传递可能会暴露敏感信息。为了解决这个问题,可以采用POST方式向`&lt;iframe&gt;`提交请求,这样可以隐藏URL中的参数信息。 ##### 3.2 示例演示 接下来,我们将以一个简单的...

    iReport web报表开发实例

    本资源提供的"iReport web报表开发实例"是一份详尽的实践教程,旨在帮助开发者深入理解和掌握如何使用iReport进行Web环境下的报表设计和开发。 一、iReport简介 iReport是基于Java的,它的主要功能包括报表设计、...

Global site tag (gtag.js) - Google Analytics