我的报告只有一条记录,但是,用户指定需要打印的次数,让我们说10次。每次打印时,它会打印同一份报告中的4份。像这样,Page 10 x 4,Page 2 x 4,Page 3 x 4等等。有10个应对,它们将共40页。
更新
我能够根据用户输入的值获得我需要的所有页面。所以,如果有10个托盘我有40页标签,这是正确的。现在需要显示的控件号部分。它有点像页码,但每4页数需要增加1.我假设我可以使用WhilePrinterRecords
和一些增量,但我仍然是Crystal的新手并且不熟悉它。
Example:
Page 1: Control number 1
Page 2: Control number 1
Page 3: Control number 1
Page 4: Control number 1
Page 5: Control number 2
Page 6: Control number 2
Page 7: Control number 2
Page 8: Control number 2
这将持续到没有更多页面要打印。
答案 0 :(得分:1)
如果您希望每个标签有4个副本,那么您可以在报告上创建具有相同信息的4个部分。确保为每个页面分配标签大小(例如4x6)。例如如果您的标题上有这些信息,请创建PHa,PHb,PHc和PHd,相同的细节或PF。
不知道这是否适合你,但至少是一个建议。您可以创建具有相同信息的抑制部分(例如10个部分)并创建一个控制该条件的参数默认为4.如果用户打印5,则将启用第5部分,如果要打印3则相同第四。
Upadte:如何获得增量:
在页面页脚上放置一个公式,如下图所示。它将在获取整数时返回值,并在等于0时将其抑制(右键单击它,数字选项卡,自定义,抑制为0)。
if pagenumber = Ceiling(pageNumber,4) then numbervar page := page +1
然后在你的PF上放置另一个公式,就像下面一个公式一样,并在pagenumber = Ceiling(pageNumber,4)
时禁止它,所以当另一个有值时它将不会显示,而另一个重叠另一个以获得相同位置的值。
if {1st formula} <> 0 then numbervar page1 := {1st formula};
page1 + 1
第二次更新:
因为是一个标签而且您的详细信息充当新页面,请执行以下操作:
创建一个新的详细信息部分,因此您将获得详细信息a和b,并将公式放在详细信息b
上答案 1 :(得分:0)
我已经使用了额外的表来进行这些技巧;这些表必须链接到报告以乘以主要查询结果。必须注意不要让多个用户打印输出混合。
示例,假设您的报表查询有一些唯一的ID链接,并且您的用户/会话也有一些唯一ID:
假设您要打印10个增加数字的报告 - 然后您将10条记录插入特殊表格,ctlnumber从1增加到10。
此解决方案的变体是使用其他一些非相关表,例如我们的包含所有日期的日期表:)
这两种解决方案都很难看,但它们通常都有效。
另一种方法是使用一些存储过程将这些序列号作为记录返回,并将报告链接到此类过程;但是,Crystal Reports和存储过程的行为并不总是很好。