树状提示动态多选

浏览: 2457

好不容易用树状提示做了个较炫的效果,把制作方法分享给大家!!!

树状提示随着选择项逐渐展开页面,并且实现多选

效果:

  

步骤如下

1、选择一个单选按钮组,绑定参数glbmordl,使用静态选项,0:部门,1:道路,设置宽度为120px,加入html使得横向展示

<style>
.clsCheckBoxRow{width:10px;float:right;}
.clsCheckBoxList{border:none;}
</style>

2、新建数据项:道路or管理部门

IF ( ?glbmordl?=0 ) THEN
    ( [pack].[管理部门].[管理部门].[管理部门(All)] )
ELSE 
    ( [pack].[道路].[道路].[道路(All)] )

3、插入树状提示按钮,绑定参数glbmnew,使用值为道路or管理部门,多选选择为是,高度为20%(这样可以使得树状提示大小动态变化)

4、新建数据项:选择管理部门串

#sq(join(',',substitute(']','',grep(']',split('].[',grep('all',split('->',split(';',promptmany('glbmnew','memberuniquename')))))))))#

截取树状提示选择的管理部门或道路编号

5、在查询中加入过滤器

IF ( ?glbmordl?=0 ) THEN
( position([pack].[管理部门].[管理部门].[中队].[中队编码], [选择管理部门串])>0 )
ELSE
( position([pack].[道路].[道路].[道路].[道路编码], [选择道路串])>0 )

使得查询动态变化

6、over

附,函数使用介绍:

1)sq ( 字符串型表达式 )

用单引号将“字符串型表达式”引起来。

示例:# sq ( 'zero' ) #
结果:'zero'

2)join ( separator_string , array_expression )

使用“separator_string”联接阵列要素。

示例:# sq ( join ( ' | | ' , array ( 'as', 'an', 'arts' ) ) ) #
结果:“as | | an | | arts”

3)substitute ( 模式字符串, 替换字符串, 字符串型表达式|阵列型表达式 )

在字符串中或在阵列的字符串要素中搜索样式,并使用“替换字符串”替换第一个出现的“样式字符串”。

示例:#sq ( substitute ( '^cn=', '***', 'cn=help' ) )#
结果:'***help'

4)grep ( 模式字符串 , 阵列型表达式 )

搜索并返回与在“样式字符串”中指定的样式匹配的阵列要素。

示例:# csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) #
结果:'as', 'arts'

5)split ( 模式字符串, 字符串型表达式|阵列型表达式 )

将阵列的字符串或字符串要素分割成单独的要素。

示例:# csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) #
结果:'ab=c' , 'de=f', 'gh=i'

6)promptmany ( 提示名称 , 数据类型 , 默认文本 , 文本 , 查询项目 , 结尾文本 )

提示用户输入一个或多个值。仅“提示名称”为必需项。未指定数据类型时默认为字符串。指定“默认文本”时,提示是可选的。指定“文本”后,文本会在值列表的前面。可指定“查询项目”以利用“查询项目”的提示信息属性。指定“结尾文本”后,结尾文本会附加到值列表的后面。

示例:select .. . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( '国家/地区名称' ) # )
结果:select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' , 'The Netherlands' , 'Russia' )

7)position ( 字符串型表达式1 , 字符串型表达式2 )

返回“字符串型表达式1”在“字符串型表达式2”中的起始位置。字符串中的第一个字符在位置 1。




  

   

推荐 0
本文由 华青莲 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册