含参数模板的报表初始值设定问题
报表初始值设定问题" id="OLE_LINK4">包含参数模板的报表传递参数时往往是通过填报对应单元格的属性–变量值来实现参数模板与展现报表间的参数传递问题。客户往往希望在第一次发布时有一组初始值。这可以在被传参报表的参数里设定一个初始值。但是当报表的判断语句里是通过不同参数传值来判断展示内容的时候。初始指的设定就成为问题,这可以通过jsp文件的参数设置来实现。
步骤一:互斥参数的设置
报表设计的参数有很多,有些是选择性互斥。如图一
当选择年时,季度,月,是不起作用的。三者相互互斥,在一般的操作时在年的参数arg1,arg2传递参数。可在报表发布时显示初始值。然而当切换参数时,因为arg1,arg2还起作用。所以显示不了数据,判断依据如图二
在B7的表达式:=ds2.count(CBZLDM==A7 && (year(SLSJ)==arg1 or left(str(SLSJ),7) == arg6 or (SLSJ>=quaterbegin(arg4)&&SLSJ <=quaterend(arg4)) ))是同过逐级判断来实现的。
步骤二:jsp发布文件的编辑
针对于以上设置,单纯在报表参数传递参数不能实现转换需求。可以在jsp层面来解决传参问题。可以在发布的jsp内添加如下的一段语句:
if(reportParamsId==null||”".equals(reportParamsId)){
param.append(“arg1=2011;arg2=2010″);
}
String reportParamsId=request.getParameter(“reportParamsId”);
步骤三:发布测试
当参数初始为空时,通过jsp内代码的设置,可以为arg1,arg2两参数赋给参数值。当在参数模板内为报表传递新值时,可按新值查询数据。不影响参数转换。
总结:jsp参数的设置有利于增强对报表的后台控制。