我有一个报告,偶尔会在一个组中有多个详细记录。在这种情况下,我只想显示序列中的最后一个。我有一个与每条记录关联的序列号,因此我需要抑制组中除最大序列号之外的所有细节行。
我尝试使用全局变量重新计算每个详细记录的最大值,但我还没有能够编写一个公式,在打印时,可以使用此最大序列号来抑制如果行不包含等于最大序列号的值。
答案 0 :(得分:0)
根据我的理解,你有这样的数据组织:
Data1 Data2 SeQuencenumber
1 a 1
2 b 1
2 c 2
2 d 3
根据我的理解,您希望输出看起来像(按Data1分组):
Data1 Data2 SeQuencenumber
1 a 1
2 d 3
为此,您需要编写详细的公式部分,该部分将比较您当前的详细序列号和该组的所有计数(Data1)。右键单击您的详细信息部分,然后在此处
编写公式公式如下:
if {SequenceNumber} = count ({SequenceNumber},{Data1}) then true
else false
希望它有所帮助,如果您有任何其他问题可以随时提出。
答案 1 :(得分:0)
尝试这样:
Shared Stringvar array concatenate;
concatenate:=concatenate+CStr(Sequencenumber);
现在处于抑制细节状态:
Shared Stringvar array concatenate;
if Maximum(concatenate)=Sequencenumber
Then false
else true
答案 2 :(得分:0)
我尝试过类似于KuKeC的解决方案,但使用最大功能而不是计数。但是在查看KuKeC解决方案时,我终于看到当细节中的日期与参数日期不匹配时,我已经在抑制细节带,但最大函数是给出所有数据的最大值,无论是否显示。
所以我首先需要添加一个公式字段,只有当数据日期与参数日期匹配时才会返回序列号
if {PSLRegister.PSLRPPStartDate} = {?PP_Start_Date} then
{PSLRegister.PSLRSeqNo}
else
0
然后我在等式中使用此公式字段来抑制详细记录
Maximum({@SeqIfDateMatch}, {TrnsltEmployee.TSEmployeeID}) <> {PSLRegister.PSLRSeqNo}
感谢所有