我有一个相当简单的子报表,当没有为其选择记录时,我想禁止它。问题是我有这个子报表的页眉和页脚部分,其中包含静态元素(文本框、行等)。我已将包含子报表的部分、子报表本身以及子报表中的部分设置为在没有记录时全部隐藏。然而,子报告无论如何都会显示出来。没有数据的数据部分确实被抑制了,但页眉和页脚似乎使子报表保持可见。
有任何想法吗?哦,我正在运行 Crystal-Reports 2011。谢谢!
我有一个相当简单的子报表,当没有为其选择记录时,我想禁止它。问题是我有这个子报表的页眉和页脚部分,其中包含静态元素(文本框、行等)。我已将包含子报表的部分、子报表本身以及子报表中的部分设置为在没有记录时全部隐藏。然而,子报告无论如何都会显示出来。没有数据的数据部分确实被抑制了,但页眉和页脚似乎使子报表保持可见。
有任何想法吗?哦,我正在运行 Crystal-Reports 2011。谢谢!
我自己在 CR2008 中遇到了这个问题。以下是我为完成这项工作所做的步骤:
编辑:如果您的子报表确实返回记录,但只是没有显示,那么请尝试使用共享变量。为此,您首先需要考虑用于在子报表中显示记录的逻辑。这可能是在细节部分抑制公式中找到的任何逻辑,但它在很大程度上取决于您的特定子报表的格式。
现在,在子报表的报表标题中初始化一个共享 numbervar,然后使用上述逻辑在每次显示一行时递增它。
回到主报表中,您可以检查该变量的值以有条件地抑制子报表的部分。我说“可能”是因为 CR在查看抑制公式之前可能不会评估子报表的变量,而是试一试。您需要whileprintingrecords;
在部分抑制公式中使用关键字来延迟其评估。祝你好运!
您是否尝试过使用抑制公式?
右键单击格式字段> 检查抑制> 单击编辑公式[x-2]按钮
很难遵循帖子中的所有内容,但如果数据相互冲突,则添加一个部分并将您的子报告放在该部分中,并确保选中可以增长。
如果您有要显示的静态数据,那么您可能需要创建 2 个子报表,一个包含静态数据,一个包含动态数据,如果为空则禁止显示。