注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
在含有下拉树参数的灵活分析中,实现"下拉树参数的值可以互斥选择"。
设置方法
- 在资源定制中,创建一张灵活分析(带下拉树参数);
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为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); } } } |
...