1. 需求说明
● 需求概述:单位级次下拉框,默认选择下拉内容中的第一个节点。
● 场景概述:维下拉框设置参数类型为单位级次下拉框,不同用户查看的下拉内容不一样,设置下拉内容中的第一个节点为用户首次计算的参数默认值。
● 背景说明:通常情况下,我们会将登录用户的某个属性设置为单位级次下拉框的下拉内容,然后通过宏表达式的方式,设置该下拉框参数的默认值。例如<#=login.userid#>,但由于客户数据特殊,不便于通过该方式实现,故产生了设置第一个节点为默认值的需求。
2. 实现方案
编辑客户端脚本:
setTimeout(function() {
var param = g_rptpage.calcParam.getParamByName("@gddw");
if (!param.value) {
_f1(param);
}
}, 300);
function _f1(param) {
if (!param) {
return;
}
param._initDropDownDom = function() {
this.hasInitDropDownDom = true;
// 设置过滤框事件
$(this.filter.getEdit()).bind("keydown", function(e) {
if (e.keyCode == 13) {
this._inputFilterEvent();
return false;
}
}.bind(this));
// 设置按钮事件
$(this.filter.getButton()).bind("click", function(e) {
this._inputFilterEvent();
}.bind(this));
// 设置多选框事件
$(this.allcheck).bind("click", this._checkAllEvent.bind(this));
// 设置url
this.tree.setQueryUrl(this.url);
// 设置展开事件
this.tree.getXTree().getXmlLoader().afterexpand = function() {
// 自动调整宽度
this.select.__adjustDropdownListBounds(true);
}.bind(this);
// 是否多选
if (this.getIsmult()) {
this.resultMap = new OrderMap();
this.tree.getXTree().setOnCheck(this._treeOnCheck.bind(this));
this.tree.onItem = function(item) {
if (this.itemclickfilter
&& !this.evalItemClickEventFilter(item)) {
item.showCheckBox(false);
}
}.bind(this);
} else {
this.tree.getXTree().setOnClick(this._treeOnClick.bind(this));
}
// 显示方式
this.tree.setDisplayFunc(function(r) {
return this._getDisplay(r.name, r.caption ? r.caption : r.name);
}.bind(this));
// 节点选择
if (!this.itemclickfilter) {
this.tree.getXTree().enableAutoCheckSubItems(this.getIsmult());
this.tree.getXTree().enableAutoCheckGrayParent(this.getIsmult());
}
// 参数类型
if (this.paramtype == "dim") {
this._buildDim();
} else if (this.paramtype == "bbh") {
this._buildBbh();
} else if (this.paramtype == "bbq") {
this._buildBbq();
}
// 加载
this.refreshItem(function() {
var item = this.tree.getXTree().getRootItem().getChildItem(0);
this.tree.getXTree().selectItem(item, true);
}.bind(this));
};
param.select._initDropDownDom = function(fdiv) {
};
param.__initDropdownDom();
}
脚本使用说明:
该功能适用于单位级次下拉框,在门户里或者直接在浏览器里访问报表链接来用,如使用链接访问的方式的话加showparams=true参数,也就是以简洁模式进入。
另外,由于该脚本在结果表中才执行,故需计算一次之后才有效果,所以建议在使用时链接加自动计算参数calcnow=true。
请先登录