如果数据表中没有行,抑制 Crystal Reports 部分

3
我有一个Crystal Report中的部分需要抑制。如果我使用的数据集中的特定表格中没有0行,则需要抑制它。我该如何做?提供的记录号特殊字段似乎是报告中记录的内部计数,与底层数据表中的行无关。
我正在使用C#创建报告,但我无法从代码中抑制该部分(它不适合项目结构)-我必须能够从报告本身完成。确实将相关表格传递到数据集中的报告中,但其中不包含任何行。必须有一种方法在报告本身内部确定这一点....
请问有人可以指点我正确的方向吗?
4个回答

6
在Crystal Reports设计器中,查看您的部分属性,应该有一个“抑制”选项,您可以给它一个公式来返回适当的布尔值。
然后,您可以在该公式中使用Count()函数,并且(我认为)可以将数据集的名称传递给Count()函数,以获取该数据集中的行数。
大约3个月前,我在一个复杂的报告上做了同样的事情,但我已经换了工作,无法再访问该报告,所以很抱歉我不能更具体,但希望这给您提供了一个起点。
刚刚快速谷歌了一下- 尝试这个

谢谢 - 它有点起作用了,但现在我因此又遇到了另一个问题。当表中有记录时,报告现在会重复整个详细部分,次数与该表中的行数相同...我还尝试使用子报表中的共享NumberVar来计算表中的行数,并且我可以成功地在主报表中抑制所需的部分,但是当有记录时,这种技术就会失败 - 它仍然抑制该部分。我在详细级别使用了许多表格,这可能没有帮助... - JamesW
我不得不添加一个公式来抑制我不想看到的后续行。这个添加纯粹是由于我的报告设计,所以我很乐意将您的回复标记为答案。再次感谢。 - JamesW
如果您的报表中每条记录都有一个小节,但您想要记录的摘要,那么您需要使用分组页眉并抑制详细信息。谢谢 :) - Andy Shellam

4
如果该部分仅包含数据库字段,例如没有文本字段,则您可以在“部分导出”(右键单击部分)中使用“Suppress Blank Section”设置来处理该部分。
作为替代方案,您可以在该部分的“Suppress”中使用以下公式:“Section Export”。
IsNull({table.field})

"

"{table.field}" 是数据集中的一个字段。

希望这有所帮助。

"

1

前往“区域专家”并点击“抑制(无钻取)”,尝试添加以下内容:

IF {"DragYourFieldHere"} = "" then true else false

0

创建一个虚拟分组,为每个页面检查其页眉,在虚拟分组的组页眉中添加该页眉。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接