1 概述
若导航格数据是不规则的,则此时不方便建立相关数据源,因此我们可以通过导航约束功能实现数据的过滤显示。
2 示例效果
通过导航约束功能实现“税收收入分部门分税种”的示例效果,如下图:
3 制作步骤
模板设计效果如下:
该报表纵向是按税务部门分组,横向是税种信息,中间是税额数据。
1.横向税种利用了导航行的功能,从行头信息可以看出第三行是导航行,从D3到H3单元格中分别设置对应的税种过滤条件。
2.报表执行时D5单元格会自动搜寻到第三行这个导航行,跟随其横向航行且根据导航行上单元格的内容进行数据过滤。
1)设置导航格
强调一下,本报表只用了一个业务数据视图,B5是导航格。
2)设置导航行
我们需要D5单元格数据能向右横向扩展,并会过滤出相应税种的税额,那么就需要使用导航行功能。设置方式有两种:
方式一:选中第3行中任意单元格,勾选行属性中的“导航”功能, 如下图:
方式二:通过第三行行头右键点击“设置导航”菜单,这样就设置了第3行为导航行。
设置之后在设计界面上,所在行的行头会出现一个向右的箭头,如下图:
这就表示第三行已经被设置为导航行了,横向具有导航的功能。
3)设置导航约束(过滤条件)
为了使D5单元格数据能根据扩展到不同单元格位置而数据会相应过滤,则需要在导航行上的单元格上设置相应过滤条件,如选中D3单元格,在下方的设计区域“约束条件”框中输入:税种==”营业税”,如下图:
约束条件:表示过滤出满足该条件的数据。
互斥单元格:有“无”、“自定义”、“全部”三个选项。
- 默认为“无”,表示没有。
- “自定义”,可以在后面输入框中输入不包括的当前导航行中单元格的条件。
- 若为“全部”,则表示当前导航行中除当前单元格外的其它单元格。
同理设置E3,F3,G3单元格。
H3单元格:由于H5要显示其他税种的税额,即除了前面各种税的税额。因此H3单元格的“约束条件”为空,“互斥单元格”选项选择“自定义”,然后录入内容为“D3,E3,F3,G3”,最终H3单元格内容为:notin(D3,E3,F3,G3),如下图:D3单元格:税种=="营业税" E3单元格:税种=="个人所得税" F3单元格:税种=="企业所得税" G3单元格:税种=="城市维护建设税"
3)合计设置
“税收合计”单元格C5中输入表达式:=D5+E5+F5+G5+H5。4 总结
1)导航约束的价值
原本类似此类报表,需要有很多个导航格,导致数据集被加载多次,损害运行效率。
导航约束使得用尽量少的数据集就可以实现同样的功能,既极大提高了效率,又减轻了设计的工作量。
此种机制,很适合制作例如资产负债表、损益表等常见的报表。
2)导航约束的原理
在有导航行或导航列的情况下,一个导航格会进行自动扩展和延伸。
没有设置约束规则的行列,则导航格对该行或列不起作用。
3)导航约束的过滤条件的语法:参照SQL的语法。5 实例地址
所属应用:智能报表实例
模板地址:应用空间\lczReport\高级教程\导航行.hte
作者:zhaowenyao 创建时间:2023-06-30 15:37
最后编辑:fancy 更新时间:2024-10-31 17:13
最后编辑:fancy 更新时间:2024-10-31 17:13
