C# 在详细信息部分中没有数据时抑制页眉

C# 在详细信息部分中没有数据时抑制页眉,c#,winforms,crystal-reports,crystal-reports-2008,C#,Winforms,Crystal Reports,Crystal Reports 2008,我正在使用datatable加载crystal报表的数据。根据用户在DataGridview中过滤的数据,单击打印将在报告中显示过滤后的数据 一切都很好。我已经这样做了。当细节部分中没有数据时,我将使用下面的公式在抑制中抑制它 Shared NumberVar PageofLastField; If OnLastRecord then PageofLastField = PageNumber; 在页眉部分,当“详细信息”部分中没有数据时,将在页眉上方显示。下面是使用的公式 (参考) 最后一个

我正在使用datatable加载crystal报表的数据。根据用户在DataGridview中过滤的数据,单击打印将在报告中显示过滤后的数据

一切都很好。我已经这样做了。当细节部分中没有数据时,我将使用下面的公式在抑制中抑制它

Shared NumberVar PageofLastField;

If OnLastRecord then PageofLastField = PageNumber;
在页眉部分,当“详细信息”部分中没有数据时,将在页眉上方显示。下面是使用的公式

(参考)

最后一个字段的共享号码页;
PageofLastField:=PageofLastField;
如果pageofLastfield 0和PageNumber>pageofLastfield
那是真的
否则错误
下面是水晶报告的图像

当我点击前端的打印按钮时。当详细信息部分中没有数据时,将显示页眉

下图是报告的第二页,其中没有记录,并显示摘要

如果在标题部分使用以下公式

OnLastRecord AND Count({PaymentReportTable.InvID}) <> 1
OnLastRecord和Count({paymentreportable.InvID})1
在第二页中,即使显示记录,也不显示页眉。我理解这一点,因为公式说明了一切

我已经创建了大约12份Crystal报告,所有这些报告都面临着同样的问题


请给出建议。

我读了你的问题。告诉我当你不压抑的时候会发生什么

Shared NumberVar PageofLastField;

If OnLastRecord then PageofLastField = PageNumber;
我认为你的页脚是有价值的


您是否尝试
OnLastRecord或{GROUP FIELD NAME}Next({GROUP FIELD NAME})
将此条件作为您的参考链接。

我也尝试了…Pagenumber1和IsNull({paymentreportable.InvID})。如果第二页的InvID不为空,则显示标题。但当没有数据时,仍显示标题。可能重复:Hi Mate,如果我不抑制,我会得到一个带有页眉的表,并且报表页脚的详细信息会与之重叠。在简单的Works中,有一个带有列标题的表,报表页脚的详细信息会显示在表上。我尝试过上面提到的公式。但是仍然存在相同的问题。事实上,我不理解这个公式的确切作用。还有一个更重要的是,我没有在报表中使用任何组字段。我只是使用Dataset将所有数据从Datagridview发送到报表。当我使用您发布的公式(在参考中)时。Datagridview中的最后一行没有打印在报表中。否则一切正常。