簡體   English   中英

SSRS 錯誤 - “報表項表達式只能引用當前數據集范圍內的字段,或者如果在聚合內

[英]SSRS Error - "Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate

我是 SSRS 的新手,我不確定它是否會做我想做的事情。

我在 SSRS 中收到以下錯誤:

“文本框‘Textbox17’的值表達式引用字段‘DayCnt’。報表項表達式只能引用當前數據集范圍內的字段,或者如果在聚合內,則引用指定的數據集范圍。字段名稱中的字母必須使用正確的大小寫。”

我有一個 3 行 3 列的列表。 我需要跨行和列使用多個數據集。 我希望報告中的所有內容都根據每個數據集都有的學校 ID 進行分組。

在某些情況下,我將在每個單元格中使用多個數據集,並且我正在使用一個文本框,然后將數據集字段拖入其中。 我不確定分組是否是問題所在。 我不確定如何一次對整個列表進行分組,或者它是否基於行,或者分組如何與具有多列的列表一起使用。

我怎樣才能讓列表中的所有內容都基於學校 ID?

謝謝您的幫助。

在此處輸入圖像描述

可以在同一數據區域(表等)中引用多個數據集,但前提是對除您的分組所基於的主要數據集之外的所有數據集使用聚合函數是有意義的。 我不確定這對您的用例是否有意義。

聚合函數類似於First 如果您不指定數據集,則默認為“當前數據集”。 據我所知,當前數據集是一個不可見的默認值,您無法在 UI 中的任何位置看到或設置它。

=First(Fields!MyField.Value)

對比

=First(Fields!MyField.Value, "MyDataset")

現在,有一些關於 Report Builder UI 的棘手事情需要了解。

  • 當您將一個字段拖到報表中時,它創建的表達式不會指定數據集。
  • 當您將一個字段拖到報表中時,它會更改當前數據集!

這會導致令人惱火的行為,例如:

  1. 創建數據區域。
  2. 將其分組設置為Dataset1中的一個字段。
  3. Dataset1一個字段。
  4. 運行報告。 有用!
  5. Dataset2一個字段。 正如您所期望的,RB 將自動使用聚合函數。
  6. 再次運行報告。 現在你得到一個錯誤,不是在你的任何一個字段上,而是在你的數據區域的分組上。

問題是從Dataset2字段將當前數據集更改為Dataset2 ,並破壞了所有使用Dataset1而未明確指定的內容。 解決方案是 hacky:

  1. 手動更改Dataset2中所有字段的表達式,以便它們明確引用數據集,或者
  2. 通過從Dataset1中拖入一個字段並將其刪除來重置當前數據集。

您不能僅在一個 SSRS 表上使用不同的數據集。 一張表應該只引用一個數據集。

您的問題的解決方案是:重新創建數據集(查詢),如果它們位於不同的服務器實例上,則嘗試使用分布式查詢獲取一個數據集,或者當它們位於同一服務器上時指定數據庫名稱。

您可能對數據集做了一些修改,但沒有刷新字段。

暫無
暫無

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

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