我使用水晶报告。我将在其中使用 2 个子报表。仅当符合某些条件时才应显示子报表。考虑我们将输入设为 0,然后只显示主报告。如果主报表的输入为 1,则显示主报表和子报表 1。如果输入为 2,则应显示主报告和两个子报告。我怎样才能做到这一点?
提前致谢,
我使用水晶报告。我将在其中使用 2 个子报表。仅当符合某些条件时才应显示子报表。考虑我们将输入设为 0,然后只显示主报告。如果主报表的输入为 1,则显示主报表和子报表 1。如果输入为 2,则应显示主报告和两个子报告。我怎样才能做到这一点?
提前致谢,
右键单击您的子报表并转到格式化子报表。
在通用选项卡中,您将看到一个选项来抑制。
单击它旁边的自定义公式按钮 ( x-2 )。
输入您需要的任何公式。只要它产生一个布尔值。
在您的示例中,对于 subreport 1,使用if {input}=0 then true else false
和对于 subreport2,使用if {input}=0 or {input}=1 then true else false
。
我会将每个子报告放在它们自己的部分中,但这对于完成这项工作并不是绝对必要的。但是,如果您这样做了,那么您只需转到 Section Expert 并单击 Suppress (No Drill Down) 行上的 X-2 按钮。在那里你可以做类似的事情
如果 {?MyInt} = 1 则为真
// 如果您正在检查的一个或多个条件为真,这将禁止此部分。
在这种情况下,我有一个名为 MyInt 的参数字段,如果数字为 1,它将抑制整个部分。显然,您需要再添加一个或两个 If 来专门管理您的需求。
请记住,它也不必是参数字段。您几乎可以使用任何其他字段作为您的标准。另外,正如我在开始时所说,您不必压制整个部分。您可以通过转到对象属性上的通用选项卡对单个对象(在您的情况下为子报表)执行此操作。从那里您可以使用 Suppress 复选框对面的 X-2 按钮执行相同的操作。