2015-09-04 62 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} 

感謝所有