永洪社区

标题: 参数组件取消勾选选项的脚本怎样写? [打印本页]

作者: Yhong007    时间: 2021-4-27 09:34
标题: 参数组件取消勾选选项的脚本怎样写?
取消勾选选项的脚本怎样写?
以及用哪个函数检查是否勾选选项?

作者: 永洪tech-zyc    时间: 2021-4-27 09:49
Yhong007 发表于 2021-4-27 09:34
取消勾选选项的脚本怎样写?
以及用哪个函数检查是否勾选选项?

暂时没有直接检查勾选项的函数,但是可以通过别的方式了解勾选了多少个,以及有哪些值被勾选了。类似如下var a = 列表参数.getSelectObjects() //获取选择值
//循环获取每个值
for(var i =0;i<a.length;i++){
debug(a[i)
}



清空选项:
aaaa.setSelectedObjects(null);



相关组件脚本可以参考帮助文档:https://www.yonghongtech.com/help/Z-Suite/9.2/ch/topic403.htm

作者: Yhong007    时间: 2021-4-27 10:18
永洪tech-zyc 发表于 2021-4-27 09:49
暂时没有直接检查勾选项的函数,但是可以通过别的方式了解勾选了多少个,以及有哪些值被勾选了。类似如下 ...

现在问题是可以选中,但没办法取消选中状态
作者: Yhong007    时间: 2021-4-27 10:18
永洪tech-zyc 发表于 2021-4-27 09:49
暂时没有直接检查勾选项的函数,但是可以通过别的方式了解勾选了多少个,以及有哪些值被勾选了。类似如下 ...

现在问题是可以选中,但没办法取消选中状态
作者: Yhong007    时间: 2021-4-27 10:20
如何取消其中某一项的勾选状态,用哪个函数能实现此功能?
作者: 永洪tech-zyc    时间: 2021-4-27 10:25
Yhong007 发表于 2021-4-27 10:20
如何取消其中某一项的勾选状态,用哪个函数能实现此功能?

某一个无法直接取消对应的,不过可以 先清空然后重新赋值需要保留的;又或者先获取所有结果,既一个数组,然后把想去掉的数组项给去掉,再重新setselectObjects 进行赋值
作者: Yhong007    时间: 2021-4-27 10:42
永洪tech-zyc 发表于 2021-4-27 10:25
某一个无法直接取消对应的,不过可以 先清空然后重新赋值需要保留的;又或者先获取所有结果,既一个数组 ...

您说的这步:把想去掉的数组项去掉  怎么操作啊
作者: 永洪tech-zyc    时间: 2021-4-27 10:45
Yhong007 发表于 2021-4-27 10:42
您说的这步:把想去掉的数组项去掉  怎么操作啊

比如数组中 你第三个是要去掉的,那你就把原数组124 给赋值到一个新数组中(三个数),然后把这个新的数组setSelectObjects赋值给组件。类似这样,其实都要重新赋值
作者: Yhong007    时间: 2021-4-27 10:57
永洪tech-zyc 发表于 2021-4-27 10:45
比如数组中 你第三个是要去掉的,那你就把原数组124 给赋值到一个新数组中(三个数),然后把这个新的数 ...

额,感觉上图会比较形象...例如这样,在一直选中的状态下我如何得知每次要取消的是哪些选项
作者: 永洪tech-zyc    时间: 2021-4-27 11:03
Yhong007 发表于 2021-4-27 10:57
额,感觉上图会比较形象...例如这样,在一直选中的状态下我如何得知每次要取消的是哪些选项 ...

你这边的详细功能需求是什么,取消那些项,取消后,直接getselectobject 就可以知道剩余那些项,可能我们关注点弄错了,需求详细说下把
作者: Yhong007    时间: 2021-4-27 11:16
永洪tech-zyc 发表于 2021-4-27 11:03
你这边的详细功能需求是什么,取消那些项,取消后,直接getselectobject 就可以知道剩余那些项,可能我们 ...

通过列表参数联动控制,选择大洲时国家选项中默认选择大洲下的国家,港口默认第一个港口,修改国家选项时港口选项随之变动

作者: Yhong007    时间: 2021-4-27 11:16
永洪tech-zyc 发表于 2021-4-27 11:03
你这边的详细功能需求是什么,取消那些项,取消后,直接getselectobject 就可以知道剩余那些项,可能我们 ...

通过列表参数联动控制,选择大洲时国家选项中默认选择大洲下的国家,港口默认第一个港口,修改国家选项时港口选项随之变动

作者: Yhong007    时间: 2021-4-27 11:16
永洪tech-zyc 发表于 2021-4-27 11:03
你这边的详细功能需求是什么,取消那些项,取消后,直接getselectobject 就可以知道剩余那些项,可能我们 ...

通过列表参数联动控制,选择大洲时国家选项中默认选择大洲下的国家,港口默认第一个港口,修改国家选项时港口选项随之变动

作者: 永洪tech-zyc    时间: 2021-4-27 11:22
Yhong007 发表于 2021-4-27 11:16
通过列表参数联动控制,选择大洲时国家选项中默认选择大洲下的国家,港口默认第一个港口,修改国家选项时 ...

你这边其实只需要完成联动的基础上,给国家默认全选,然后港口默认选中第一个即可把~不知道我理解的是否片面了。
全选:
var a = getData("列表参数1",DATA);

var b = a.size();

var arr1=new Array();

for(i=b-1;i>0;i--){

arr1=a.get(i,0);

}

列表参数1.setSelectedObjects(arr1,STRING);

//选择第一个同上,取出第一个值利用setSelectdObjects([值],STRING) 即可
作者: Yhong007    时间: 2021-4-27 11:47
永洪tech-zyc 发表于 2021-4-27 11:22
你这边其实只需要完成联动的基础上,给国家默认全选,然后港口默认选中第一个即可把~不知道我理解的是否 ...

按照此代码设置,效果如下

作者: 永洪tech-zyc    时间: 2021-4-27 11:51
Yhong007 发表于 2021-4-27 11:47
按照此代码设置,效果如下

这边需求问题是否得到解决
作者: Yhong007    时间: 2021-4-27 11:53
永洪tech-zyc 发表于 2021-4-27 11:51
这边需求问题是否得到解决

没能解决...
展示结果不符合联动操作流程
作者: 永洪tech-zyc    时间: 2021-4-27 12:00
Yhong007 发表于 2021-4-27 11:53
没能解决...
展示结果不符合联动操作流程

可能需求我没能完全理解,看你动态,相关的选项已经默认勾选了啊,哪里存在不足呢
作者: Yhong007    时间: 2021-4-27 15:02
永洪tech-zyc 发表于 2021-4-27 12:00
可能需求我没能完全理解,看你动态,相关的选项已经默认勾选了啊,哪里存在不足呢 ...

可是点取消选项时没办法取消啊。。。
作者: Yhong007    时间: 2021-4-27 15:02
永洪tech-zyc 发表于 2021-4-27 12:00
可能需求我没能完全理解,看你动态,相关的选项已经默认勾选了啊,哪里存在不足呢 ...

可是点取消选项时没办法取消啊。。。
作者: 永洪tech-zyc    时间: 2021-4-27 15:15
Yhong007 发表于 2021-4-27 15:02
可是点取消选项时没办法取消啊。。。

那你增加一个是否全选的判断应该就可以了把,对于国家,如果没有全选的话就不执行 全选赋值了。

if(列表参数1.getObjects().length==列表参数1.getSelectedObjects().length){

全选

}else{

不全选

}
作者: Yhong007    时间: 2021-4-27 15:35
永洪tech-zyc 发表于 2021-4-27 15:15
那你增加一个是否全选的判断应该就可以了把,对于国家,如果没有全选的话就不执行 全选赋值了。

if(列表 ...

我就是这么写的,不过找到原因了,不能直接在全局的装载时运行写脚本,要在具体那个组件的脚本里面写才能生效
作者: 永洪tech-zyc    时间: 2021-4-27 15:39
Yhong007 发表于 2021-4-27 15:35
我就是这么写的,不过找到原因了,不能直接在全局的装载时运行写脚本,要在具体那个组件的脚本里面写才能 ...

ok 好的,解决了就好




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4