我们在表单的填报过程中,经常需要填写省市区信息,如何实现快捷方便的联动填写呢?

已有《省市区》模板,“省市区”数据批量导入(详见教程
批量导入
),省市区excel数据的获取(详见
下载省市区excel数据
);

有以下3种实现方式:
①下列列表联动
②列表选择联动
③树形列表联动
1.下拉列表联动
在“省份”上单击【﹀】从“省份下拉列表”中选择省份“江苏省”,在“城市”上单击【﹀】,弹出的下拉列表中只显示“江苏省下所有的城市列表”,选择“南京市”后,在“地区”上单击【﹀】,弹出的下拉列表中只显示“南京市下所有的地区列表”,实现联动

实现分析:上图中以下拉列表的方式呈现数据,使用下拉列表的数据接口;
省市区基础数据存放在《省市区》模板中,需要设计3个数据接口。第1个数据接口“所有省份下拉列表”,没有参数,将所有的省份去重筛选出来,以便选择;第2个数据接口“根据省查询所有城市下拉列表”,有1个参数“省份”;第3个数据接口“根据省和城市查询所有地区下拉列表”,有2个参数“省份”和“城市”;
在《客户档案》模板中调用已设计好的数据接口并给参数赋值;
①在《省市区》模板中设计数据接口“省份下拉列表”(详见
下拉列表
数据接口的应用)。该数据接口的类型为“下拉列表”,“取值”来自“数据表”“本模板”的“省份”数据项;

②在《省市区》模板中设计数据接口“查询城市下拉列表(省份)”。该数据接口的类型为“下拉列表”,“取值”来自“数据表”“本模板”的“城市”数据项;
需要筛选指定“省份”的城市列表,设置“过滤设置”,选择“表达式过滤”,添加参数“省份”,并填写“过滤条件”;

③在《省市区》模板中设计数据接口“查询地区下拉列表(省份,城市)”。该数据接口的类型为“下拉列表”,“取值”来自“数据表”“本模板”的“地区”数据项;
需要筛选指定“省份”和“城市”的城市列表,设置“过滤设置”,选择“表达式过滤”,添加参数“省份”和“城市”,并填写“过滤条件”;

④在《客户档案》的填写规范中调用已设置的数据接口。
进入《客户档案》的模板设计界面,打开“数据定义管理”,在“省份”的填写规范上调用《省市区》的“省下拉列表”;

⑤在“城市”的填写规范上调用《省市区》的“查询城市下拉列表(省份)”,该数据接口带有1个参数,将“本表单.省份”赋值给参数,并勾选“必填”,则只有当“本表单的省份”填写后,再单击城市的【﹀】才会运行该数据接口进行查询;

⑥在“地区”的填写规范上调用《省市区》的“查询地区下拉列表(省份,城市)”,该数据接口带有2个参数,将“本表单.省份”和“本表单.城市”赋值给参数,并勾选“必填”,则只有当“本表单的省份和城市”都填写后,再单击地区的【﹀】才会运行该数据接口进行查询;

这种实现方式用户需要单击进行选择,选项过多时,比较浪费时间,是否可以根据用户知道某几个字模糊查询并选择填写提高效率呢?
2.列表选择联动
在“省份”上填写内容后,下方根据填写的内容弹出模糊查询符合条件的省份列表,选择省份“广东省”,在“城市”上填写内容时,下方根据填写的内容在“广东省”内模查询符合条件的城市列表,在“地区”上填写内容后,下方根据填写的内容,在“广东省广州市”内模糊查询符合条件的地区列表;

实现分析:省市区基础数据存放在《省市区》模板中,需要设计3个数据列表选择的数据接口,并勾选“支持模糊查询”。第1个数据接口“省份列表”,没有参数,将所有的省份去重筛选出来,以便选择;第2个数据接口“根据省查询所有城市列表”,有1个参数“省份”;第3个数据接口“根据省和城市查询所有地区列表”,有2个参数“省份”和“城市”;
在《客户档案》模板中调用已设计好的数据接口并给参数赋值;
①在《省市区》模板中设计列表选择类型的“省列表”数据接口(详见
列表选择
数据接口的应用)。数据源默认为“本模板”,勾选“重复数据只显示一次”,数据列中添加“省份”数据项,并
勾选“支持模糊查询”,过滤条件无需设置;

②在《省市区》模板中设计列表选择类型的“城市列表(省份)”数据接口。数据源默认为“本模板”,数据列中添加“城市”数据项,并
勾选“支持模糊查询”,勾选“重复数据只显示一次”;

过滤条件中添加参数“省份”,为了实现
参数有值时精确查询,无值时查询所有,设置下图的“过滤条件”,并给接口命名;

③ 在《省市区》模板中设计列表选择类型的“地区列表(省份,城市)”数据接口。数据源默认为“本模板”,数据列中添加“地区”数据项,并勾选
“支持模糊查询”;

过滤条件中添加参数“省份”和“城市”,为了实现参数有值时精确查询,无值时查询所有,设置下图的“过滤条件”,并给接口命名;

④在《客户档案》的填写规范中调用已设置的数据接口。
进入《客户档案》的模板设计界面,打开“数据定义管理”,在“省份”的填写规范上调用《省市区》的“省列表”,给"本表单.省份”赋值,
为了能达到手动输入和选择的效果,输入方式选择“手工输入+对话框选择”;

⑤在“城市”的填写规范上调用《省市区》的“城市列表(省份)”,该数据接口带有参数“省份”,先给参数赋值“本表单.省份”,再将数据源查询的结果赋值给"本表单.城市”,
为了能达到手动输入和选择的效果,输入方式选择“手工输入+对话框选择”;

⑥在“地区”的填写规范上调用《省市区》的“地区列表(省份,城市)”,该数据接口带有参数“省份”和“城市”,先给参数赋值“本表单.省份”和“本表单.城市”,再将数据源查询的结果赋值给"本表单.地区”,
为了能达到手动输入和选择的效果,输入方式选择“手工输入+对话框选择”;

3.树形列表联动
还有一种实现联动的方式,通过树形列表实现联动,在“省份”上手工输入或者单击【...】进行选择,显示所有信息的“省市区”3级树形,在“城市”上手工输入或者单击【...】进行选择,若有省市信息,则只显示具体的某个省市(下图为广东省广州市)的3级树形,在“地区”上手工输入或者单击【...】进行选择,若有省市信息,则只显示具体的某个省市(下图为广东省广州市)的3级树形;

实现分析:省市区基础数据存放在《省市区》模板中,需要设计1个树形列表的数据接口,使用默认值+形如模糊查询的方式进行查询;在《客户档案》模板中调用已设计好的数据接口并给参数赋值;
① 在《省市区》模板中设计列表选择类型的“地区树形”数据接口(详见
树形列表
数据接口的应用)。数据源默认为“本模板”,树形的构造方式选择“多数据项分级”,设置“分级数据项”-“省份”、“城市”、“地区”;

设置“过滤设置”,添加2个参数“省份”和“城市”,为了达到当参数没有填写内容时候可以查询全部,设置“
默认值”,则将所有的省或者市的数据查询出来;
设置“过滤条件”,使用
形如,根据参数的值模糊查询;

②在《客户档案》的填写规范中调用已设置的数据接口。
进入《客户档案》的模板设计界面,打开“数据定义管理”,在“省份”的填写规范上调用《省市区》的“地区树形(省份,城市)”,给参数赋值,当参数的值为空时,根据数据接口自带的默认值进行查询,当参数有具体的值时,根据具体的值进行模糊查询;

设置“树形配置”,勾选“填报允许手工输入”;

③在“城市”和“地区”的填写规范(3个填写内容规范一样)上调用《省市区》的“地区树形(省份,城市)”,给参数赋值,当参数的值为空时,根据数据接口自带的默认值进行查询,当参数有具体的值时,根据具体的值进行模糊查询;

设置“树形配置”,勾选“默认展开树节点”,默认展开第一层(地区上设置默认展开2级),勾选“填报允许手工输入”;
