Ssrs

SSRS 計算欄位異常行為

  • August 5, 2021

我有一個帶有計算欄位的數據集:

= IIF(String.IsNullOrEmpty(Fields!Event.Value), "\t", Fields!Event.Value) & ", " &   
  IIF(String.IsNullOrEmpty(Fields!Action.Value), "\t", Fields!Action.Value) & ", " & 
  IIF(String.IsNullOrEmpty(Fields!RequestedBy.Value), "\t", Fields!RequestedBy.Value)

然後使用查找表達式在報表內的表內訪問此欄位:

=Join(LookupSet(Fields!contactid.Value, Fields!ContactParticipantValue.Value, Fields!RowSummary.Value, "EventRequests"), Environment.NewLine)

當我執行它時,最初一切正常,並且正確的數據顯示在單元格中。但是會顯示警告:

Warning 1   [rsRuntimeErrorInExpression] The Value expression for the field ‘RowSummary’ contains an error: (processing): (field.ExprHost != null)  0   

然後,如果我轉到下一頁,所有單元格現在都包含 #Error 而不是“RowSummary”資訊。如果我然後返回上一頁,該頁過去包含所有正確的數據,所有單元格現在都替換為#Error。

我找到了一種解決方法,我將一個隱藏列表容器添加到報表的 END 中,並將 DataSet 屬性設置為“EventRequests”數據集,其中包含計算欄位。我不必添加任何欄位或使此列表可見,但不知何故,僅在報告上顯示列表就可以防止#Error 替換我的所有數據。這並不能完全解決問題,因為當我導出為 PDF 時,我仍然收到錯誤消息。

有誰知道為什麼會這樣?

這是因為它可能在該特定欄位/位置沒有值,因此首先將值提供框替換為:

iif(IsNothing(sum(field)),"0",(sum(field))

然後用以下表達式替換行匯總欄位:

=iif(cInt(ReportItems!textbox1name.value)=0,100,(ReportItems!textbox2.value/iif(cInt(ReportItems!textbox1name.value)=0,100,ReportItems!textbox1name.value)*100))

由於評論沒有任何格式,我必須使用“答案”部分來評論 Vandana 的答案。

萬達娜,我不確定我是否理解你的回答。我沒有在我的計算欄位中使用任何數字,所以我不確定使用“總和”有什麼幫助?

另外,我沒有使用摘要行。Join/LookupSet 表達式與所有其他數據一起位於正常行中。

我的 Kludge 解決方案的輸出類似於:

First Name     |     Last Name     |     Event,Action,User
  John        |       Doe         |   Christmas, Remove, AdminUser
  Jane        |       Doe         |   Christmas, Add, AdminUser
  John        |       Doe         |   Team Build, Add, JDoeUser

引用自:https://dba.stackexchange.com/questions/24765