咕咕吉 发表于 2024-3-28 10:39:02

参数1控制参数2全选或全不选的脚步如何编写?

本帖最后由 yhdata_kY2oZeOp 于 2024-3-28 10:41 编辑

当前有:下拉参数1,只能单选“是”“否”;
列表参数2,可以多选a/b/c/d/e/f/g/h;
希望实现:
参数1选“是”,参数2全选,参数1选否,参数2全不选
这个脚本怎么写?只会写一半,全选那个不会写
if (参数1.value= "否") {
    参数2.setSelectedObjects(null);
    }
else {
    //这里全选怎么写?后面的写法?参数2.setSelectedObjects(,STRING);
}

美滋滋 发表于 2024-3-28 10:39:03

本帖最后由 美滋滋 于 2024-3-29 10:40 编辑

我大概知道问题了。你的列表参数组件可能不是绑定的数据集中的字段,是自定义的数据吧?
你换下面的脚本试试,应该可以了。

var a = 列表参数1.getObjects();
var arr = [];
for (i=0;i<a.length;i++) {
    arr.push(a【i】【0】)
}
列表参数1.setSelectedObjects(arr,STRING)

##特别说明1:论坛输入"[]" 时候有问题,故此我上面的脚本中用的全角输入的,你要把全角"【】"换成半角"[]"
##特别说明2:如果是自定义编辑的数据,那么执行a = getData("列表参数1",DATA) 这条语句时,无法获取到自定义编辑的数据,故此会报空指针错误。

yhdata_lyaa 发表于 2024-3-28 10:49:22

全选脚本参考看看https://club.yonghongtech.com/thread-32650-1-1.html

美滋滋 发表于 2024-3-28 11:07:01

下面的脚本是对列表参数全选的脚本,供参考
var a = getData("列表参数1",DATA);
var b = toArray(a,0)
列表参数1.setSelectedObjects(b,STRING)

Efheih 发表于 2024-3-28 11:18:37

参数2.pageSelection = true;(全选:true,不选:false)

美滋滋 发表于 2024-3-28 11:23:51

yhdata_Efheih 发表于 2024-3-28 11:18
参数2.pageSelection = true;(全选:true,不选:false)

你确定这样可以?
去实际验证一下哈。

咕咕吉 发表于 2024-3-28 11:25:24

美滋滋 发表于 2024-3-28 11:07
下面的脚本是对列表参数全选的脚本,供参考
var a = getData("列表参数1",DATA);
var b = toArray(a,0)


/*if (参数1.value= "否") {    //请问这里参数1.value="否"用的对吗?参数1是下拉参数    参数2.setSelectedObjects(null);
    }
else {
    var a = getData("参数2.data",DATA);    //请问这里参数2,直接用双引号就行了?还是需要加data这样的后缀?现在我不管加不加后缀,结果都是null
debug(a)
var b = a.size();
var arr1=new Array();
if(a!=null&&a.exists(1,-1,true)){
for(i=b-1;i>0;i--){
arr1=a.get(i,0);
}
参数2.setSelectedObjects(arr1,STRING);}
}

*/

咕咕吉 发表于 2024-3-28 11:25:25

美滋滋 发表于 2024-3-28 11:07
下面的脚本是对列表参数全选的脚本,供参考
var a = getData("列表参数1",DATA);
var b = toArray(a,0)


/*if (参数1.value= "否") {    //请问这里参数1.value="否"用的对吗?参数1是下拉参数    参数2.setSelectedObjects(null);
    }
else {
    var a = getData("参数2.data",DATA);    //请问这里参数2,直接用双引号就行了?还是需要加data这样的后缀?现在我不管加不加后缀,结果都是null
debug(a)
var b = a.size();
var arr1=new Array();
if(a!=null&&a.exists(1,-1,true)){
for(i=b-1;i>0;i--){
arr1=a.get(i,0);
}
参数2.setSelectedObjects(arr1,STRING);}
}

*/

美滋滋 发表于 2024-3-28 11:50:25

yhdata_kY2oZeOp 发表于 2024-3-28 11:25
/*if (参数1.value= "否") {    //请问这里参数1.value="否"用的对吗?参数1是下拉参数    参数2.setSele ...

var a = getData("列表参数组件名称",DATA);

咕咕吉 发表于 2024-3-28 15:18:42

美滋滋 发表于 2024-3-28 11:50
var a = getData("列表参数组件名称",DATA);

谢谢。我函数写的没错,列表参数也确实有多个下拉值,但是debug(a)就是为null。怀疑公司系统有问题。。。。而且直接写下面两行就报错:空指针引用异常(null)at line 2
var a = getData("列表参数1",DATA);
var b = toArray(a,0)
页: [1] 2 3
查看完整版本: 参数1控制参数2全选或全不选的脚步如何编写?