这是我过去设法提出半解决方案的问题,但我认为其他人可能会更清楚。
我在 Crystal Reports 10 中有一个报告,用作生产区域的订单摘要表单。我们有标准产品,每个代码只有一个项目,然后我们有工具包。套件将包含一个主要项目和一个辅助项目,这两个项目在本摘要中都需要自己的页面,因为它们会转到不同的区域。
为了实现这一点,我从报告中获取了正常的详细信息区域并制作了每个部分的副本。第二组详细信息部分仅显示记录何时包含工具包,并强制在其前面添加新页面。对于普通观察者来说,这使得它看起来好像订单上有两个单独的项目,而实际上只有一个。
在我的页面标题中,有一个标记只需要在这些辅助页面上显示。我的问题是这些第二页没有特殊的属性,它们将它们与记录的第一页区分开来。为了实现这种格式化,我创建了一个有效的公式,但它并不适用于所有可能的配置。
公式为:
(PageNumber = 2
or ({%kit count} = 1 and (PageNumber - 1) = RecordNumber)
or ({%kit count} > 1 and (PageNumber -2) = RecordNumber)) then false
%kit count
只是一个公式,可以在报告中获得套件代码的总计数。
目前这仅适用于少数特定情况。我确信在我可以使用的可用值中存在某种模式,但我只是没有看到它。
我需要能够在套件的每个第二页上触发此公式。我怎么能做到这一点?
编辑:截图请求。 (支持你自己)
(原件http://cl.ly/392f033Y131e3r0l100V)
答案 0 :(得分:1)
如果没有讨论,很难完全理解你想要做的事情。以下是我认为你想用一些组成数据做的解决方案:
OrderNo Line Kit Rush
1 1 a 0
1 1 b 0
1 2 NULL 0
1 3 NULL 1
1 4 NULL 1
我根据公式创建一个组(假装OrderNo和Line是varchar,所以我不需要强制转换:)。
if {Rush} = 1 then
{OrderNo} & '-Rush'
else if isnull({Kit}) then
{OrderNo} & '-' & {Line}
else
{OrderNo} & '-' & {Line} & '-' & {Kit}
然后在组标题中,我将您当前拥有的所有内容放入页眉并启用Repeat Group Header on each Page.
然后最终把我的细节放进去。