无代码实现下拉列表框级联

表单设计中我们常会遇到需要级联下拉列表项的情况(即下一级的下拉列表选项需要随上一级已选中值的变化而变化),这在客户端是很好实现的,只需要在二级下拉列表框中筛选数据即可。但是如果我们需要把表单发布到 Formservice 就会出现问题了,因为“启用浏览器功能的表单模板不支持筛选”
不支持筛选又要实现级联,这就迫使我们不得不“手工”进行筛选,通常我们有两种做法:( 1 )添加 webService 数据连接,利用 webService 进行筛选( 2 )在上一级的下拉列表框的 changed 事件中添加动作,只要上一级的下拉列表框中的值发生变化,就修改下一级选项的备选值。
这两种方法的优点在于灵活,适用于数据量大且变动频繁的情况。但是毕竟是需要代码开发,对于无代码基础的业务人员设计表单是不是有简便的方法呢?
下面我就来介绍一种适用于少量数据的方法 ~
【题设】
学校里每个年级拥有的班级数目都不同,在选择班级时,我们需要先选择年级,然后将该年级所包含的班级筛选出来以供用户选择。
【准备】
在数据源中添加如下域组:
所有域均为文本类型,其中带有蓝色小箭头的“ Option ”和“ ClassOption ”为重复域组。
【详细步骤】
1. 进入“编辑默认值对话框”(工具 à 默认值)
2. 选中“ GradeChoice ”,在下方的“默认值”处填写“一年级”。
3. 同样为 ClassOption 赋默认值为“一年一班”:
4. 点击 ClassOption 右边的小箭头,选中其中的“在下方添加一个另一个 ClassOption ”。给新添加的 ClassOption 赋值为“一年 2 班”:
5. 点击 Option 右边的小箭头,选中其中的“在下方添加一个另一个 Option ”。
给新添加的 Option 中的 GradeChoice 赋值为“二年级”:
6. 修改新添加的 Option 中的 ClassOption 的默认值。以此类推,根据实际的年级数及班级数给域赋默认值。
7. 给表单拖入控件下拉列表框,绑定数据源为“ Grade ”,双击下拉列表框,在弹出的属性框中的“列表框项”中选择“在表单数据中查找值”,在“选择存储项的重复组或项”的“项”中选择“ GradeChoice ”:
8. 拖入重复表控件,将重复表绑定在 Option ,并选择显示“ ClassChoice ”列:
9. 将重复表中显示的 ClassChoice 文本框通过右键菜单更改为下拉列表框,并修改下拉列表框属性,在“列表框项”中选择“在表单数据中查找值”,在“选择存储项的重复组或项”的“项”中选择“ ClassOption ”:
10. 设置重复表的显示规则:
11. 发布到 sharepoint 服务器的效果:
 
【总结】
这种方法不要求代码,但是初次操作的话还是有些耗时的,建议在数据量小且变动不频繁的情况下考虑这种方法。
认为添加默认值的步骤麻烦的话,直接修改 xsn 中的 template.xml 文件应该也是可以的(没亲自试,觉得应该可以)。

本文出自 “sunny的技术博客” 博客,转载请与作者联系!

你可能感兴趣的:(级联,下拉,休闲,infopath,无代码)