|
|
Q:下拉框选项能否筛选
有一个表单:
例如:如果A选“喷绘”,B只有“打孔”和“不打孔”选项,跟“喷绘”无关的“A3、A4”不显示,如何实现?
A:可以在脚本里面实现的;
A选中“刷新”,B选中“重计算”。B的选项根据A取到的值再决定生成什么选项。
如:
A选项:
var opts = createOptions();
opts.add("喷绘","喷绘");//添加选项
opts.add("其它","其它");
opts;
B选项:
var value = getItemValueAsString("A");
var opts = createOptions();
if ("喷绘".equals(value)){
opts.add("打孔","打孔");
opts.add("不打孔","不打孔");
}else{
opts.add("A3","A3");
opts.add("A4","A4");
}
opts;
也可以根据多个字段的做的,如下:
通过表单做一个数据字典表(printer_type),数据从字典表中获取。
type name value
AA 喷绘 喷绘
AA 单页 单页
喷绘 打孔 打孔
喷绘 不打孔 不打孔
单页 A3 A3
单页 A4 A4
A选中“刷新”,B选中“重计算”。B的选项根据A取到的值再决定生成什么选项。
如:
A选项:
var opts = createOptions();//新建一个选项
var dql = "$formname='printer_type' and type='AA'";//dql语句
var datas = queryByDQL(dql);//查询
for (var it = datas.iterator();datas!=null && it.hasNext();){
var doc = it.next();
var name = doc.getItemValueAsString("name");
var value = doc.getItemValueAsString("value");
opts.add(name,value);
}
opts;
B选项:
var value = getItemValueAsString("A");
var opts = createOptions();
var dql = "$formname='printer_type' and type='"+value+"'";
var datas = queryByDQL(dql);
for (var it = datas.iterator();datas!=null && it.hasNext();){
var doc = it.next();
var name = doc.getItemValueAsString("name");
var value = doc.getItemValueAsString("value");
opts.add(name,value);
}
opts;
摘自hzcyl提问,原帖子链接:
http://www.teemlink.com/bbs/view ... 26amp%3Btypeid%3D52 |
|