亿信ABI
当前版本:BI4.7

参数校验-维下拉节点选择个数校验

1. 需求场景

维下拉框绑定通用维,允许多选,但选择的时候最多只能选择3个节点,超出个数则出现提示“最多选择三项!”


2. 思路分析

2.1 思路一

维下拉多选时,返回值是 XX|XX|XX 这种每项之间被|符号隔开的格式,

|符号的个数=选择维节点的个数-1

|符号的个数=返回值字符串长度-去掉|后的字符串长度

通过|符号个数判断选择维节点个数是否超过3个。


2.2 思路二

维下拉多选时返回的XX|XX|XX可以用split(“|”)转换成数组[“XX”,”XX”,”XX”],那么数组的项的个数就是所选择的的维节点个数。


3. 设置方法

根据以上两个思路,我们分别可以通过以下两种设置方法实现该需求。


3.1 Plan A(思路一)

1)添加维下拉框@xzqh并绑定维表,再加一个输入框@cs,@cs用来取|符号的个数;

2)维下拉框上设置参数行为

len(@xzqh)-len(SUBSTITUTE(@xzqh,"|",""))


参数校验-维下拉节点选择个数校验

注:

1- SUBSTITUTE()是字符串替换函数,详见BI函数列表-》字符串函数中的说明;

2- |属于特殊字符,因此表达式引用时需要用转译一下


3)@cs上设置校验@cs<3,以及提示信息


参数校验-维下拉节点选择个数校验

3.2 Plan B(思路二)

1)添加维下拉框@xzqh并绑定维表,再加一个输入框@cs,@cs用来取选择维节点的个数(数组中项的个数);

2)维下拉框上设置参数行为

len(asstr(@xzqh).split("|"))


 参数校验-维下拉节点选择个数校验


注:

1- split()是常用的数组用法

2- @xzqh(维下拉框参数)代表的是一个参数对象,@xzqh本身并不是一个字符串,它的返回值才是一个字符串,因此不能直接@xzqh.split(“|”),而是需要用asstr(@xzqh)取到返回值的字符串;

3- 维下拉多选时,@xzqh.value返回值为[“XX”,”XX”]这样的数组格式,单选时则返回字符串”XX”。


3)@cs上设置校验@cs<=3,以及提示信息


参数校验-维下拉节点选择个数校验

附件列表

1

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇参数校验+参数联动应用举例

下一篇五花八门的钻取

请先登录