14

我有一个相当简单的子报表,当没有为其选择记录时,我想禁止它。问题是我有这个子报表的页眉和页脚部分,其中包含静态元素(文本框、行等)。我已将包含子报表的部分、子报表本身以及子报表中的部分设置为在没有记录时全部隐藏。然而,子报告无论如何都会显示出来。没有数据的数据部分确实被抑制了,但页眉和页脚似乎使子报表保持可见。

有任何想法吗?哦,我正在运行 Crystal-Reports 2011。谢谢!

4

4 回答 4

21

我自己在 CR2008 中遇到了这个问题。以下是我为完成这项工作所做的步骤:

  1. 进入您的子报告(我的意思是让它在自己的设计器窗口中打开)-> 进入“文件”菜单下的“报告选项”-> 选择“如果没有记录则禁止打印”
  2. 现在回到你的主报告。右键单击子报表 -> 转到“格式化子报表” -> 点击“子报表”选项卡 -> 选中“禁止空白子报表”复选框。
  3. 如果子报告是主报告部分中的唯一内容,请通过右键单击“部分编辑器”进入该部分 -> 选中“抑制空白部分”复选框。

编辑:如果您的子报表确实返回记录,但只是没有显示,那么请尝试使用共享变量。为此,您首先需要考虑用于在子报表中显示记录的逻辑。这可能是在细节部分抑制公式中找到的任何逻辑,但它在很大程度上取决于您的特定子报表的格式。

现在,在子报表的报表标题中初始化一个共享 numbervar,然后使用上述逻辑在每次显示一行时递增它。

回到主报表中,您可以检查该变量的值以有条件地抑制子报表的部分。我说“可能”是因为 CR在查看抑制公式之前可能不会评估子报表的变量,而是试一试。您需要whileprintingrecords;在部分抑制公式中使用关键字来延迟其评估。祝你好运!

于 2012-09-19T17:54:24.087 回答
0

您是否尝试过使用抑制公式?

右键单击格式字段> 检查抑制> 单击编辑公式[x-2]按钮

于 2013-10-01T01:27:57.737 回答
0

很难遵循帖子中的所有内容,但如果数据相互冲突,则添加一个部分并将您的子报告放在该部分中,并确保选中可以增长。

如果您有要显示的静态数据,那么您可能需要创建 2 个子报表,一个包含静态数据,一个包含动态数据,如果为空则禁止显示。

于 2014-09-24T19:08:23.670 回答
0

将 subReport 放在一个部分中,然后右键单击 Section=> Section Expert 然后在公共选项卡中选中 true 'Supress Blank Section',如下图所示。 在此处输入图像描述

于 2020-01-07T19:58:11.073 回答