润乾报表主子报表通过参数控制子报表显示

 

客户需求:

      通过参数控制 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: 对引入式子报表,计算后,那就没有原来的格子了 故需要在子报表中控制。