1.缺省参数输入页面式
为了方便用户快速体验报表的功能,当用户的关注点不在于参数录入页面而在于报表时,润乾的tag标签提供了generateParamForm属性,只要置为yes就可以自动生成参数录入表单,方便用户快速体验报表。
<report:html name="report1"
......
generateParamForm="yes"
......
/>
报表设计如下
描述内容为自动生成参数表单输入框的介绍内容,发布报表的jsp代码如下
<table align=left>
<tr><td>
<report:html
name="report1"
reportFileName="report_0.raq"
generateParamForm="yes"
/>
</td></tr>
</table>
页面展现效果如下:
2.参数模板式
用润乾报表设计的参数模板,需要利用参数模板的tag进行发布,其自动与结果页面的报表关联。因此,比较简单的做法是把参数模板tag和结果报表tag写到一个页面里。如下所示:
<report:param name="form1" paramFileName="test_arg.raq" /> //参数模板tag
<report:html name="report1" //结果报表tag
srcType="file"
reportFileName="test.raq"
generateParamForm="no"
/>
注意:以上两种方式都没有接收参数拼成串的代码。这是因为参数表单也是报表,用户在输入完参数并点击
“查询”后,报表系统把参数存放在了参数缓存池中,查询报表根据参数池ID从参数池中取参数值,所以不需要
写代码手动拼参数串了。
3.自定义参数输入式
如果用户自己定义参数输入页面,那么集成流程包括:设计参数页面——〉在接收页面中写代码接收参数——〉在接收页面里把参数拼成串传给tag
//用户自定义的参数输入页面
<form method=get name="form1" id="form1" action="<%=request.getContextPath()%>/jsp/test.jsp">
<table><tr style=" ">
<td>部门ID</td><td><input type="text" id="deptid" name="deptid" /></td>
<td>
<input type="submit" value="提交" />
</td>
</tr></table>
</form>
<table align=left>
<tr><td>
<%//接收参数代码
StringBuffer param=new StringBuffer();
Enumeration paramNames = request.getParameterNames();
if(paramNames!=null){
while(paramNames.hasMoreElements()){
String paramName = (String) paramNames.nextElement();
String paramValue=request.getParameter(paramName);
if(paramValue!=null){
//把参数拼成name=value;name2=value2;.....的形式
param.append(paramName).append("=").append(paramValue).append(";");
}
}
}
%>
</td></tr>
<tr><td>
<report:html name="report1"
srcType="file"
reportFileName="report_0.raq"
funcBarLocation="top"
exceptionPage="/jsp/myError.jsp"
generateParamForm="yes"
params="<%=param.toString()%>"
/>
</td></tr>
</table>
页面展现效果如下
此时,jsp中必须满足:
1.参数个数必须与要显示的报表所设计的参数个数一致(如未输入则使用报表设计时填的缺省值),参数名称也大小写相同。
2.在test.jsp中用request.getPararmeter(“***”)来取得各参数,并把参数拼成润乾报表能支持的参数串。
3.把拼成的参数串通过html标签中的params属性传递到报表中。
标签式发布报表参数传递可以分为上面说的三种方式,api方式展现报表,可以在context类中或者ReportDefine类中设置参数值
附注:
参数模板提交的参数,保存在报表系统的参数池中,并没有存在request里,因此如果使用参数模板,要在结果页面里引用参数值,必须要报表的参数池中读取,而不应该从request里获得。从参数池中取参数代码如下:
<%
String reportParamsId=request.getParameter("reportParamsId"); //取得参数缓存的标识号
//从参数缓存池中取得的参数保存于一个Hashtable中
Hashtable params = null;
if(!"".equals(reportParamsId) && reportParamsId != null){
params = com.runqian.report4.view.ParamsPool.get( reportParamsId );
}
//接下来我们以参数名为key,直接从Hashtable中取参数模板中的传递的参数值
String paramValue = (String) params.get("appellation");
out.println("取得的参数值是:"+paramValue);
%>
相关推荐
在本教程中,我们将深入探讨如何在WPF程序中集成和使用RDLC报表,以及如何通过代码传递参数。 首先,我们需要了解RDLC报表的基本结构。RDLC报表由多个元素组成,如数据区域(例如表格、矩阵、图表)、文本框、图像...
在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...
在使用水晶报表时,有时我们需要传递参数来动态地改变报告的数据源或过滤数据。本篇将详细解释如何在C#.NET环境下通过代码传递参数到水晶报表。 首先,我们创建一个`ParameterFields`对象,它是存储所有参数的容器...
为了实现动态加载图片,我们可以使用报表的参数来传递图片文件的路径,然后在报表中使用图片控件来显示图片。 在实际应用中,我们可以使用水晶报表动态加载图片技术来实现图片的加载,例如在报表中显示产品图片、...
本文将详细讲解如何在C#环境中通过.NET框架传递参数给水晶报表。 首先,我们需要创建一个`ParameterFields`对象,这是一个集合类,用于存储我们将传递给水晶报表的所有参数。在代码示例中,我们初始化了一个`...
**水晶报表-C#-示例** 水晶报表(Crystal Reports)是一款功能强大的报表设计工具,它被广泛应用于.NET Framework环境下的应用程序开发,特别是与C#语言的结合。此压缩包提供的"水晶报表-C#-示例"包含了一系列的...
本文将深度探讨"JS报表--ReportControlDemo",帮助读者理解其核心概念、工作原理以及实际应用场景。 一、JS报表简介 JS报表是基于JavaScript的报表生成工具,它允许开发者在浏览器端动态生成、展示各种复杂的数据...
报表-图片生成 报表-图片生成 报表-图片生成 报表-图片生成
### 向水晶报表中传递参数的方法 #### 一、CrystalReportViewer 水晶报表(Crystal Reports)是一种广泛使用的商业智能工具,用于设计、创建和管理报表。在开发应用程序时,经常需要根据用户的需求动态地更改报表...
### 润干报表4.0技术白皮书知识点概览 #### 一、总体说明与概述 **润干报表4.0**是一款专为企业级报表制作与数据填报设计的高级报表软件。其核心价值在于提供了高效、灵活的报表设计与展现方案。此版本主要针对...
根据给定的信息,本文将详细解释如何在C#中向RDLC报表传递参数,并通过具体的代码示例来阐述这一过程。 ### C# 向 RDLC 报表传入参数 在开发应用程序时,经常会遇到需要将数据以报表形式展现的需求。RDLC(Report ...
标题和描述均聚焦于FineReport报表工具中参数控件的取值与置数操作,这是一种在报表设计领域中实现动态参数交互的有效手段。FineReport,作为国内领先的报表开发工具,由南京帆软软件公司研发,提供了强大的报表设计...
通过以上步骤,我们可以实现iReport中的主报表向子报表传递参数,从而实现动态的、基于参数的报表数据展现。在实际操作中,可能还会遇到如默认值设定、参数验证等更复杂的情况,但基本的传递流程和上述要点是不变的...
Excel模板财务报表-应收-应付账款.zip
用友U9自定义报表-报表特性
用友U9自定义报表-复杂报表
用友U9自定义报表-简单报表
财务报表--公司财务报表解析企业技术发展与竞争力.pptx
总经理如何看财务报表--.pptx