在同一张纸上打印多份副本。水晶报道。 。净

时间:2011-10-24 12:04:22

标签: c# .net winapi printing report

使用Crystal Reports和.NET我需要在每张纸上打印2份相同报告。我能够使用两个子报告将CanGrow设置为false,但这不起作用,因为我的报告可能有多个页面,CanGrow将只裁剪报告的其余部分。将CanGrow设置为false将导致两个报告重叠,或者一个接一个地打印。我也尝试再次制作一个双重报告,Header - details - footer和Header - details - footer(重复相同的信息),但水晶报告不允许我有多个细节部分(它们之间有页眉页脚部分)。

我可以使用MsWord重现我想要的内容,在打印设置中将打印机设置“打印多份”更改为2,然后键入并将页面范围设置为“Page:1,1,2,2, 3,3,4,4 ......“但Crystal Reports的打印API不允许我调整这些设置,甚至不打算从.NET打印API,所以我使用Native Win32 API,但即使我是能够使用Win32执行此操作我不知道如何告诉Crystal Reports使用我的打印功能。

我对水晶报道很陌生,所以也许有一个简单的解决方案。如果有人可以帮忙。

2 个答案:

答案 0 :(得分:1)

我认为您需要按照自己的方式保存子报表,并且需要复制报表详细信息,但是您不能将子报表的两个实例放在同一部分中,并希望它们能够正确地隔离自己。您需要在主报表中使用第二个详细信息部分作为第二个子报表,然后它们不应相互覆盖。细节部分都需要cangrow = true set。


好的,你需要的只是2个报告,一个按照客户想要的方式(页眉,页脚等)用作子报告,一个没有任何页眉或页脚,但有2个详细信息部分,cangrow = true和每个细节部分中的子报表的实例。我不确定为什么你想在5条记录后想要一个新的页面,但是试着把它拿出去看看你是否可以在主报告中打印两次相同的子报告。

答案 1 :(得分:1)

我想我有点解决了。我创建了两个报告:Orignal和Copy,并且除了详细信息部分之外还删除了所有部分,并使用此处提到的解决方法添加了一个组:

http://www.c-sharpcorner.com/UploadFile/mahesh/SubReportPH10062006160749PM/SubReportPH.aspx

能够使用在每个页面上重复的标题。

我将所有标题信息放在组标题上,并在组页脚上显示报告页脚信息(其他部分无法使用,因为它们不会考虑我需要的间距,这是此变通办法的主要缺点) ,并将详细信息部分限制为只填充页面一半的记录。在复制版本中,我在标题中添加了一个等于页面一半的空格。然后我创建了报告,该报告将包含所有部分被抑制的子报表和仅一个详细信息部分,并将两个子报表添加到另一个之上。这将在页面底部打印第二个子报表,从第一个子报表的标题中留出空格打印在顶部,我现在还不知道如何在每个页面重复基础部分,但我想我不会需要它。