润乾报表主子报表通过参数控制子报表显示
客户需求:
通过参数控制 1 张汇总表中展现哪个或者哪几个子报表
制作报表样式如下图:
其中第 2 行 隐藏行表达式为 if(@arg1==1,true,false) 插入的子报表是 aa00.raq
第 4 行 隐藏行表达式为 if(@arg1!=1,true,false) 插入的子报表是 2.raq
子报表引用方式为:嵌入式
初始表样:
这样预览查看效果时 我们会发现无论参数 arg1 的值是什么,两个子报表都会展现出来,没有隐藏,没能达到我们想要的效果。
下面针对子报表的引用方式(嵌入式 / 引入式)分别介绍说明在初始表样的基础上怎样实现动态隐藏子报表的效果。
1. 嵌入式
第一步:增加空白列;
第二步:分别选中第 2 行和第 4 行重写隐藏行表达式 保存。如下图
第三步:分别给参数 arg1 赋值为等于 1 或者不等于 1 预览效果如下图:
arg1 为 1, 第 2 行隐藏行表达式成立 隐藏
arg1 为 4, 第 4 行隐藏行表达式成立 隐藏
2. 引入式
实现方法是在子报表里设置隐藏,主报表传参数过去进行控制。
具体步骤:
第一步:将子报表的引用方式修改为“引入式”;
第二步:分别打开两个子报表 aa00.raq ,2.raq ,为其报表增加参数 arg1 并将所有的未隐藏的行设置隐藏行表达式,保存;
比如以子表 aa00.raq 为例,其对应的是主表第 2 行,那么就把第二行设置的隐藏行表达式对 aa00.raq 中所展现的行都设置一下隐藏行表达式 if(@arg1==1,true,false)。
第三步:在主表中对应子表打开“子报表单元格属性定义”增加参数 arg1 如下图:
第四步:保存预览。
ps: 对引入式子报表,计算后,那就没有原来的格子了 故需要在子报表中控制。