Crystal reports 仅显示Crystal Reports中序列的最后一个

Crystal reports 仅显示Crystal Reports中序列的最后一个,crystal-reports,Crystal Reports,我有一份报告,在一个小组中偶尔会有多个详细记录。在这种情况下,我只想显示序列中的最后一个。我有一个与每条记录关联的序列号,因此我需要抑制组中除序列号最大的行以外的所有详细信息行 我已尝试使用全局变量重新计算每个细节记录的最大值,但我无法编写一个公式,在打印时,如果该行不包含等于最大序列号的值,则可以使用该最大序列号来抑制该行。据我所知,您的数据是由以下内容组织的: Data1 Data2 SeQuencenumber 1 a 1 2 b

我有一份报告,在一个小组中偶尔会有多个详细记录。在这种情况下,我只想显示序列中的最后一个。我有一个与每条记录关联的序列号,因此我需要抑制组中除序列号最大的行以外的所有详细信息行


我已尝试使用全局变量重新计算每个细节记录的最大值,但我无法编写一个公式,在打印时,如果该行不包含等于最大序列号的值,则可以使用该最大序列号来抑制该行。

据我所知,您的数据是由以下内容组织的:

Data1      Data2  SeQuencenumber 
1          a      1
2          b      1
2          c      2
2          d      3
根据我的理解,您希望您的输出是这样的(按数据分组1):

要做到这一点,您需要在详细信息部分编写公式,比较当前详细信息序列号和该组(数据1)的所有计数。右键单击详细信息部分,并在此处写入公式

公式如下所示:

if {SequenceNumber} = count ({SequenceNumber},{Data1}) then true 
else false
希望它能帮助您,如果您还有其他问题,请随时提问。

尝试以下方式:

Shared Stringvar array concatenate;

concatenate:=concatenate+CStr(Sequencenumber);
现在处于详细信息抑制状态:

Shared Stringvar array concatenate;
if Maximum(concatenate)=Sequencenumber
Then false
else true

我尝试了一个类似于KuKeC的解决方案,但是使用了最大值函数而不是计数。但是,在查看KuKeC解决方案时,我终于看到,当细节中的日期与参数日期不匹配时,我已经抑制了细节栏,但是最大值函数给出了所有数据的最大值,无论是否显示

因此,我首先需要添加一个公式字段,该字段仅在数据日期与参数日期匹配时才返回序列号

if {PSLRegister.PSLRPPStartDate} = {?PP_Start_Date} then
  {PSLRegister.PSLRSeqNo}
else
  0
然后我在方程中使用这个公式字段来抑制细节记录

Maximum({@SeqIfDateMatch}, {TrnsltEmployee.TSEmployeeID}) <> {PSLRegister.PSLRSeqNo}
最大值({@SeqIfDateMatch},{TrnsltEmployee.TSEmployeeID}){PSLRegister.PSLRSeqNo}

感谢所有

您是否尝试过使用阵列
Maximum({@SeqIfDateMatch}, {TrnsltEmployee.TSEmployeeID}) <> {PSLRegister.PSLRSeqNo}