1、设置下拉框(控制展示的列名)
数据集 select * from 销量
设计报表
B1:split($col,",") 横向扩展
A2 : ds2.select(#0) 纵向扩展
B2 : ds2.value(A2,B1) 不扩展
设置列名对应的下拉框控件
所有控件的类型为「下拉框控件」
默认非可见,绑定sql查询条件
添加JS时事件
JS脚本
//获取下拉框控件area
var area = this.options.form.getWidgetByName("area");
//获取下拉框控件xl
var xl = this.options.form.getWidgetByName("xl");
//获取下拉框控件cplx
var cplx = this.options.form.getWidgetByName("cplx");
//获取下拉框控件cp
var cp = this.options.form.getWidgetByName("cp");
//获取下拉框控件ywjc
var ywjc = this.options.form.getWidgetByName("ywjc");
//获取下拉框控件xsy
var xsy = this.options.form.getWidgetByName("xsy");
//获取下拉框选中值
var a = this.getValue();
//判断a中是否包含对应的字段,返回true或false
var a1 = a.includes("地区");
var a2 = a.includes("销量");
var a3 = a.includes("产品类型");
var a4 = a.includes("产品");
var a5 = a.includes("英文简称");
var a6 = a.includes("销售员");
//alert(a1,a2,a3,a4,a5,a6);
//对不同的控件设置隐藏显示
if(a1) {
area.setVisible(true);
this.options.form.getWidgetByName("Labelarea").setVisible(true);
} else {
area.setVisible(false);
this.options.form.getWidgetByName("Labelarea").setVisible(false);
}
if(a2) {
xl.setVisible(true);
this.options.form.getWidgetByName("Labelxl").setVisible(true);
} else {
xl.setVisible(false);
this.options.form.getWidgetByName("Labelxl").setVisible(false);
}
if(a3) {
cplx.setVisible(true);
this.options.form.getWidgetByName("Labelcplx").setVisible(true);
} else {
cplx.setVisible(false);
this.options.form.getWidgetByName("Labelcplx").setVisible(false);
}
if(a4) {
cp.setVisible(true);
this.options.form.getWidgetByName("Labelcp").setVisible(true);
} else {
cp.setVisible(false);
this.options.form.getWidgetByName("Labelcp").setVisible(false);
}
if(a5) {
ywjc.setVisible(true);
this.options.form.getWidgetByName("Labelywjc").setVisible(true);
} else {
ywjc.setVisible(false);
this.options.form.getWidgetByName("Labelywjc").setVisible(false);
}
if(a6) {
xsy.setVisible(true);
this.options.form.getWidgetByName("Labelxsy").setVisible(true);
} else {
xsy.setVisible(false);
this.options.form.getWidgetByName("Labelxsy").setVisible(false);
}
效果 根据选择列展示下拉框