2013-03-15 110 views
0

非常感謝您花時間回答我的問題。將字段添加到SSRS 2008報告中的表達式中

我在SSRS報告系統中遇到表達式問題。 我是從我在報告中提供的數據集添加所需的字段,但是當我嘗試預覽報告中,我得到以下信息領域:

「用於報表參數‘Policies_Total’ 值表達式指的是一個字段,在報表參數 中不能使用字段。「

這是我的表達:

=IIF(Sum(Fields!policy_id.Value, "DataSet1") Is Null, 0, Count(Sum(Fields!policy_id.Value, "DataSet1"))) 

這是suppoed從Crystal轉換報告,其中有如下表現:

If IsNull ({usp_rep_agent_cases;1.policy_id}) then 
    0 
Else 
    Count ({usp_rep_agent_cases;1.policy_id}) 

任何幫助深表感謝。

謝謝

回答

0

對於SSRS表達式,你需要使用IsNothingNULL檢查,是這樣的:

=IIF(
    IsNothing(Sum(Fields!policy_id.Value, "DataSet1")) 
    , 0 
    , Count(Sum(Fields!policy_id.Value, "DataSet1")) 
) 

事實上,整個表情似乎有點奇怪;你用你的表情專門試圖達到什麼目的?你只是想計算非空值?

=Sum(IIf(IsNothing(Fields!policy_id.Value), 1, 0), "DataSet1") 

另外,你的錯誤似乎是說,一個參數被引用字段時這是不允許的,這可能不是通過改變語法來解決;我想在這裏需要更多關於你想要實現的信息。

+0

非常感謝你。 – user2174391 2013-03-20 12:48:47

+0

不客氣。如果您發現答案有幫助,請考慮投票並/或將其設置爲接受的答案。 – 2013-03-20 13:03:26

1

我認爲這可能很簡單,理解應該在創建大部分字段之前將「參數」傳遞到SSRS。如果此參數取決於首先選擇的其他值,則不能先列出它,因爲該字段尚未填充到我所知的位置。看起來你正在嘗試使用表達式來計算某個數據集中某個字段的某些內容,而只需創建一個數據集並直接引用該字段即可。因此,而不是試圖表達你可以選擇一些其他選項,而不是:

  1. 選擇你的參數「可選值」選擇「獲取從查詢值」的左窗格中。你可以使用你的查詢,這是一個'數據集',值是自我解釋的,標籤是最終用戶將看到的顯示。

  2. 選項「允許空」值將接受空值

你可能會碰到有多個數據集可能需要使用的情況下,多選擇或查詢的對象。根據我對SSRS的經驗,當您嘗試引用用於顯示數據的數據集時,會發生一些情況,這些數據集用於確定事件或操作。 SSRS的相對性也越慢,你做的表達式就越多,所以做一個完整的報告,除了表達式和使用RDL語言的內置功能,並不是真的值得恕我直言。

+0

我用Ian Preston幫助製作了一個簡單的現場盒子,似乎解決了這個問題。謝謝您的意見。 – user2174391 2013-03-20 12:52:13