页面树结构
转至元数据结尾
转至元数据起始

示例说明
在含有下拉树参数的灵活分析中,实现"下拉树参数的值可以互斥选择"。


设置方法

  1. 在资源定制中,创建一张灵活分析(带下拉树参数);
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRender;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

simpleReport

onRender

宏代码

function main(simpleReport, simpleReportContext) { 
 //doCheckDescendents开始 
 function doCheckDescendents(treeNode, checked) { 
 //响应以前的鼠标事件 
 this.doCheckDescendents(treeNode, checked); 
 
 // 如果点击了'全部',则取消所有儿子节点 
 if (treeNode.text == "全部") { 
 if (treeNode.childCount == 0) return; 
 var tmp = treeNode.firstChild; 
 while (tmp) { 
 tmp.setChecked(0); 
 tmp = tmp.nextSibling; 
 } 
 } else { //如果点击了儿子节点,则取消父节点'全部' 
 treeNode.parentNode.setChecked(0); 
 } 
 } 
 
 //doClick开始 
 function doClick(e) { 
 //响应以前的鼠标事件 
 this.btnClick(); 
 //绑定onMouseDown事件 
 var tree = this.dropDownTreePanel.tree; 
 tree.onCheckNode.subscribe(doCheckDescendents, tree); 
 } 
 
 var paramPanelObjList = simpleReport.paramPanelObj.paramObjList; 
 for (var i = 0; i < paramPanelObjList.length; i++) { 
 var item = paramPanelObjList[i]; 
 if (item.bofClassName == "freequery.control.DropDownTree") { //如果是下拉树表控件 
 //解除以前的点击事件 
 item.removeListener(item.btn, "click", item.btnClick); 
 //绑定自点击事件 
 item.addListener(item.btn, "click", doClick, item); 
 } 
 } 
 }

关键对象总结

  • 响应以前的鼠标事件:this.doCheckDescendents(treeNode, checked)
  • 绑定onMouseDown事件:tree.onCheckNode.subscribe(doCheckDescendents, tree)
  • 解除以前的点击事件:item.removeListener(item.btn, "click", item.btnClick)
  • 绑定自点击事件:item.addListener(item.btn, "click", doClick, item)
  • 无标签