簡體   English   中英

在SSRS 2008報告中將字段添加到表達式中

[英]Adding Fields into an expression in an SSRS 2008 report

預先感謝您抽出寶貴時間回答我的問題。

我在SSRS報告系統中遇到表達式問題。 字段我正在從報表中提供的數據集中添加必填字段,但是當我嘗試預覽報表時,出現以下消息:

“用於報表參數'Policies_Total'的值表達式引用一個字段。該字段不能在報表參數表達式中使用。”

這是我的表情:

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

假定可以從具有以下表達式的Crystal報表中進行轉換:

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

任何幫助深表感謝。

謝謝

我認為可能很簡單,那就是在大部分字段創建之前將“參數”傳遞給SSRS。 如果此參數取決於其他參數的值,那么您將無法首先列出該參數,因為據我所知該字段尚未填充。 看起來當您只是創建數據集並直接引用該字段時,您正試圖使用​​表達式來對數據集中的某個字段進行計數。 因此,您可以選擇其他幾個選項來代替嘗試表達式:

  1. 在參數“可用值”的左窗格中選擇“從查詢中獲取值”。 您可以使用作為“數據集”的查詢,其值不言自明,標簽是最終用戶將看到的內容。

  2. 選項“允許為空”值將接受一個空值

您可能會遇到可能需要使用多個數據集,多個選擇或查詢對象的情況。 以我對SSRS的經驗,當您嘗試引用用於顯示數據的數據集與用於確定事件或動作的數據集時,有時會感到惱火。 您做的表達式越多,SSRS的相對相對性就越慢,因此,只用表達式而不是利用RDL語言的內置功能來完成整個報表就不值得恕我直言了。

對於SSRS表達式,您需要使用IsNothing進行NULL檢查,例如:

=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")

另外,您的錯誤似乎是在不允許使用參數引用字段時,可能無法通過更改語法來解決。 我認為這里需要有關您要實現的目標的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM