实现步骤
- 首先在
- 电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
- 在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRenderReport、并把下面宏代码复制到代码编辑区域。
宏类型
宏类型 | 宏对象 | 宏事件 |
ClientSide | SpreadsheetReport | onRenderReport |
宏代码
代码块 | ||||
---|---|---|---|---|
| ||||
function main(spreadsheetReport) {
//doCheckDescendents开始
function doCheckDescendents(treeNode, checked) {
//响应以前的鼠标事件
this.doCheckDescendents(treeNode, checked);
if (checked == 1) {
onClick(treeNode, 1);
} else {
onUnClick(treeNode);
}
}
function onClick(treeNode, checked) {
var flag = 0;
if (checked == 1) flag = 1;
if (treeNode.level !== 0) {
var tmp = treeNode.parentNode;
while (tmp) {
//第一层父节点是否要选中。
var parentChild = tmp.firstChild;
while (parentChild) {
if (parentChild.checked != 1) {
return;
}
parentChild = parentChild.nextSibling;
}
tmp.setChecked(flag);
tmp = tmp.parentNode;
}
}
}
function onUnClick(treeNode) {
onClick(treeNode, 0);
var tmp = treeNode.parentNode;
while (tmp) {
tmp.setChecked(0);
tmp = tmp.parentNode;
}
}
//doClick开始
function doClick(e) {
//响应以前的鼠标事件
this.btnClick();
//绑定onMouseDown事件
var tree = this.dropDownTreePanel.tree;
tree.onCheckNode.subscribe(doCheckDescendents, tree);
}
var paramPanelObjList = spreadsheetReport.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);
}
}
} |
示例资源:电子表格下拉树控件父节不勾选功能.xml
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |