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. }
相关推荐
在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...
5. **参数和子报表**: `CS_Web_CRVObjMod_ParametersSubrpt`可能涉及到报表参数的使用,允许用户输入筛选条件。而`CS_Web_RDObjMod_ReportParts`可能涉及使用子报表,子报表可以嵌套在主报表中,以显示更详细的信息...
ATGrid WEB报表控件打印插件是一款专为Web应用程序设计的高效报表工具,它提供了丰富的报表设计和打印功能,能够帮助开发者轻松实现网页中的数据展示和打印需求。这款控件适用于各种类型的Web应用,包括企业级的信息...
在Web报表开发中,JFreeReport通常与Servlets、JSP或Struts等Web框架结合使用。以下是使用JFreeReport进行Web报表开发的基本步骤: 1. **设计报表模板**:使用JFreeReport提供的Report Designer,可以创建XML格式的...
标题中的“WEB报表打印到PDF”指的是在网页中展示的报表转换为PDF格式的技术,这在数据呈现和分享中十分常见。PDF(Portable Document Format)文件格式能够保持文档的原始布局和格式,使得用户无论在何种设备或操作...
本篇文章将深入探讨Web报表设计及其与Java的结合应用。 一、Web报表设计基础 1. 报表布局:Web报表的设计首先要考虑布局,包括行、列的排列,以及图表的放置。良好的布局能清晰地呈现数据,帮助用户快速找到关键...
Web报表B/S系统采用这种模式,使得用户只需打开网页就能查看和操作报表,降低了对客户端环境的要求。 2. **报表设计**:Web报表通常包含多种图表、表格和图形,以直观地展示复杂的数据。设计工具支持拖拽式布局,...
这些参数可以通过Web页面上的表单或URL查询字符串传递。 5. **交互功能**:Web报表服务支持多种交互功能,如打印、导出(PDF、Excel、CSV等格式)、订阅和定时调度等。用户可以在Web浏览器中直接操作,而无需打开...
Cewolf是一种基于Java的Web报表工具,尤其适用于J2EE环境,它允许开发者轻松地创建和展示丰富的图表和报告。本实例将深入探讨如何在Web应用程序中集成和使用Cewolf技术。 1. **Cewolf简介** Cewolf,全称为...
完成报表设计后,将其嵌入ASP.NET Web页面中,用户可以通过Web浏览器查看和打印报表。确保在服务器端安装了水晶报表的运行时库,以支持报表的正确显示。 11. **性能优化** 对于大型数据集,可能需要优化报表性能...
1. 浏览器访问方式:Web报表支持多种网页浏览器,如IE7/8,提供跨平台的访问体验。 2. 自定义功能:用户可以自定义报表格式、衍生栏位和关联栏位,满足个性化需求。 3. 快速搜索:通过关键字搜索,快速定位所需报表...
Web报表在信息化时代扮演着重要的角色,它能够帮助我们有效地展示和分析大量数据。ReportView是Microsoft提供的一个强大工具,用于在Web环境中创建、编辑和展示报表。在本篇文章中,我们将深入探讨ReportView的使用...
### Grid++Report 5 Web报表插件帮助(grweb)关键知识点解析 #### 一、Grid++Report 报表工具概述 - **Grid++Report**是一款高性能的报表开发工具,适用于开发桌面应用程序及Web应用程序中的报表与打印系统。 - **...
Web报表开发技术是现代Web应用程序中的重要组成部分,它允许用户以直观的方式查看和理解大量数据。jCharts是一款基于Java的图表库,专为在J2EE环境中创建动态、交互式的Web报表而设计。本实例将深入探讨如何在Web...
1. **设置连接参数**:自动设置ERP和web报表数据库的连接参数。 2. **录入系统信息**:设置有效码,决定哪些系统别在web上发布报表。 3. **录入报表信息**:选择要发布的报表,不常用的报表可以禁用。 4. **报表菜单...
需要注意的是,如果报表中有参数,直接在URL中传递可能会暴露敏感信息。为了解决这个问题,可以采用POST方式向`<iframe>`提交请求,这样可以隐藏URL中的参数信息。 ##### 3.2 示例演示 接下来,我们将以一个简单的...
本资源提供的"iReport web报表开发实例"是一份详尽的实践教程,旨在帮助开发者深入理解和掌握如何使用iReport进行Web环境下的报表设计和开发。 一、iReport简介 iReport是基于Java的,它的主要功能包括报表设计、...