参数模板动态隐藏下拉框
一些客户需要在参数模板中实现下拉列表框的动态隐藏,也就是有两个或多个下拉列表框,一些列表框动态的根据其他下拉框的值显示或隐藏。润乾报表中封装了一个名字叫做_selectValueChanged( cellId, newValue )的js函数,这个函数是绑定到下拉列表框的,在下拉框选中数值后会调用这个js,这样就可以通过自己重写这个js来实现下拉框的动态显示和隐藏。
实现思路:
在显示参数表单的JSP里写一个名为_selectValueChanged的js函数,在此函数中实现用户需要的功能,函数格式为
_selectValueChanged( cellId, newValue ){ ……. }
其中参数cellId代表下拉框值发生变化的单元格id,newValue代表变化后的新值
例如:
function _selectValueChanged( cellId, newValue ) {
if( cellId != “param1_A1″ ) return;
if( newValue==”1″ ) document.getElementById( “param1_C1″ ).style.display = “block”;
if( newValue==”2″ ) document.getElementById( “param1_C1″ ).style.display = “none”; }
使用举例:
制作一张使用下拉框的参数模板,参数模板中的A1和B1单元格都是下拉框,具体的样式如下图所示:
B1单元格的设置跟A1格相同。
制作一张跟参数模板相关联的主报表,报表的样式如下图所示:
在发布报表的jsp中写如下的一个js:
function _selectValueChanged( cellId, newValue ) {
if( cellId != “form1_A1″ ) return;
if( newValue==”1″ ) document.getElementById( “form1_B1″ ).style.display = “block”;
if( newValue==”2″ ) document.getElementById( “form1_B1″ ).style.display = “none”;
}
然后使用增加js的jsp发布报表,可以查看到效果,如果第一个下拉框的值是1,那么后面的下拉框是显示的,如果是2的话后面的下拉框是隐藏的。
具体效果如下图所示:
下拉框显示的
隐藏的下拉框
这样动态隐藏下拉框的需求就实现了,事实上也可以通过这个绑定的js去处理其他的业务,在这里不一一的介绍了。