2015-09-04 65 views
0

我有一个报告,偶尔会在一个组中有多个详细记录。在这种情况下,我只想显示序列中的最后一个。我有一个序列号与每个记录相关联,所以我需要禁止组中具有最大序号的组中的所有明细行。只显示水晶报表中的最后一个序列

我试过使用全局变量来重新计算每个详细记录的最大值,但是我一直无法编写一个公式,即在打印时可以使用此最大序列号来抑制行不包含等于最大序列号的值。

+0

您是否尝试过使用数组 – Siva

回答

0

从我了解你这个组织的数据:

Data1  Data2 SeQuencenumber 
1   a  1 
2   b  1 
2   c  2 
2   d  3 

,从我理解你希望你的输出样子(通过数据1组):

Data1  Data2 SeQuencenumber 
1   a  1 
2   d  3 

要做到这一点,你需要详细编写公式部分,该部分比较您当前的详细序列号和该组所有的计数(Data1)。右键单击您的详细信息部分,写公式这里enter image description here

计算公式如下:

if {SequenceNumber} = count ({SequenceNumber},{Data1}) then true 
else false 

希望它能帮助,如果您有任何问题随时问。

0

尝试这样的:

在细节抑制状态
Shared Stringvar array concatenate; 

concatenate:=concatenate+CStr(Sequencenumber); 

现在:

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

我曾试图类似于从KuKeC之一,但与最大功能,而不是解决方案计数。但是,在审查KuKeC解决方案时,我终于看到,当细节日期与参数日期不匹配时,我已经压制细节带,但最大功能是给出所有数据的最大值,无论是否显示。

所以,我首先需要添加一个公式字段,将返回只有当数据日期相匹配的参数日期

if {PSLRegister.PSLRPPStartDate} = {?PP_Start_Date} then 
    {PSLRegister.PSLRSeqNo} 
else 
    0 

然后我用这个公式场方程中压制详细记录序号

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

感谢所有