2010-12-02 133 views
4

我有一个运输标签,需要在Dymo标签打印机上打印,每个页面上的数据略有不同。这可以用一个.rpt来完成,所以用户只需要打印一份报告,而不是三份?Crystal Reports 11 - 如何在多个页面上打印不同的数据

http://imgur.com/5UUl4

+0

抱歉,Imgur是OV呃容量,所以你链接不起作用。 – 2010-12-02 16:53:31

+0

欢迎来到SO。您无需在此处链接到外部图像服务器。有一个按钮可以让SO托管图像并将其显示在问题中。 – PowerUser 2010-12-02 22:30:23

回答

2

它是因为我已经使用Crystal Reports中虽然一个表,以获得三个数据行,但是您可以将.RPT设置为具有三个明细部分(A/B/C)并让B和C“在之前打印新页面”。这样每个细节将在三个单独的部分。

你不应该用自定义公式来做任何疯狂的事情。所有你需要做的就是每次显示三段数据,每页一页,每页都略有不同。

(当然你可以使用一个头,只是把不​​断变化的数据在细节部分...但是这将需要更多的时间来得到正确的然后就在每个数据段重复所需的数据。)

确认

  1. 打开报表
  2. 右键点击详细secton
  3. 选择 “插入部分下方”
  4. 重复步骤2 & 3次
  5. 确认您看到三个细节部分
  6. 对于部分A & B和选择“新建页后”使用“节专家”(或Visual Studio属性)。 (如果使用Section Expert,请确保您位于Paging选项卡上。)
  7. 在每个Detail部分创建所需的内容。
  8. 您可能想要取消所有其他部分,包括报表/页眉&页脚。

.RPT主体节设置

Report Setup

节专家

Section Expert

0

你有两种基本的方法。
您可以使用组并使用该选项在组发生更改时为组启动新页面。另一种选择是使用子报表,但我会避免使用此选项。如果您想要我详细说明,请告诉我。

+0

谢谢马克。当你说“......当它改变”时,你的意思是数据改变了吗?只要我们清楚,所有三个标签都需要每次都打印一次。 – tlascek 2010-12-02 21:24:56

0

如果你能得到你的数据重复三次,因此每对您的报告“记录”是重复的,你可以做多的细节部分的东西(从部分专家创建了三个细节部分)

然后用'Supress(无法钻取)',根据记录号码依次显示标签的每个版本。 alt text

对于每个细节部分中添加上述式(使用基本语法)

  1. formula = (Remainder(RecordNumber,3) <> 1)
  2. formula = (Remainder(RecordNumber,3) <> 2)
  3. formula = (Remainder(RecordNumber,3) <> 0)

然后在每个你的创建的每个略微不同的标签细节部分。

我设法做一个交叉连接,像这样(在SQL Server),假设一个名为ReportData数据

;with cte as 
(
select 1 as ver 
union 
select 2 as ver 
union 
select 3 as ver 
) 
select * from 
cte cross join ReportData 
order by OrderNumber, ver;