2012-06-08 89 views
0

我試圖使用SSRS 2008 R2檢查我們是否符合使用標準記錄患者信息的標準。例如,在PatientID的組頭中,我有=Not IsNothing(Fields!DATEOFBIRTH.Value)。現在,我想要計算返回True的患者數量。最顯而易見的方法是從SSRS中的組標題總計表達式

=Sum(Iif(Not IsNothing(Fields!DATEOFBIRTH.Value) 
     , 1 
     , 0 
     ) 
    ) 

(這實際上是不行的,因爲我有每個患者多行,但不要在意的時刻。)問題是,如果我找到我的邏輯是錯誤的,我有在兩個地方進行糾正,如果我忘了它並不明顯。在Crystal中,我要麼使用正在運行的計數器,對組中的更改進行評估,要麼使用WhilePrintingRecords;進行手動計數,得出的公式會在兩個位置返回T/F結果。普遍接受的SSRS方式是做什麼的?謝謝。

回答

2

如果您想集中邏輯,您可以在報告中使用自定義代碼或創建自定義程序集。使用自定義代碼時,如果您發現需要進行更改,則必須更新每個使用相同邏輯的報表,但添加到報表很簡單。使用自定義程序集時,您必須創建一個類庫,對其進行編譯並將代碼添加到您的機器中,以便BIDS可以使用它(以及適用於每個開發人員的機器)和報告服務器。自定義程序集的優點是有一個地方可以存儲邏輯(不包括DLL的分佈),因此每次更新邏輯時都會自動更新每個報告。此鏈接是您的起點,並提供有關這兩個選項的更多詳細信息的鏈接:http://msdn.microsoft.com/en-us/library/ms155798(v=sql.100).aspx