参数模板动态隐藏下拉框

参数模板动态隐藏下拉框

一些客户需要在参数模板中实现下拉列表框的动态隐藏,也就是有两个或多个下拉列表框,一些列表框动态的根据其他下拉框的值显示或隐藏。润乾报表中封装了一个名字叫做 _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 去处理其他的业务,在这里不一一的介绍了。

热门文章