2010-12-10 90 views
1

這就是情況。矩陣的詳細信息單元調用一個自定義函數,用於確定傳入值的平均值。這些函數將轉換爲百分比,並由Code.Function()返回。矩陣還有一個小計列,按預期平均列數。一切都很好。但是,如果您願意的話,需求會發生變化,並且矩陣將轉換爲層次結構,並進行彙總「彙總」。SSRS - 如何確定在矩陣控制中訪問哪個列?

現在,當您摺疊行時,被平均的數據在細節級別上仍然是正確的。但是,相同的邏輯將不再滿足小計欄。理想情況下,我希望能夠在函數中確定哪一列當前被引用,並根據該參數執行不同的計算。雖然有很多關於作用域的討論,這是主要問題,但我無法將字符串作用域值傳遞給函數。

所以問題是:

  1. 你能確定你是目前在運行的列?
  2. 您可以確定並以某種方式傳遞報告中的範圍名稱嗎? (通過布爾周圍並沒有幫助)

任何意見,將不勝感激。謝謝!!

回答

0

從描述中很難判斷出你正在嘗試做什麼。

如果我在SSRS中嘗試這樣的事情,我首先會試圖提供所使用的任何存儲過程的結果中的信息,儘量使報表免於計算。

+0

實際上,由於計算是基於用戶與報告的交互作用,因此需要在飛行中完成。我會試圖澄清。將矩陣中的數據視爲非自然層次結構。報告加載時,所有行都摺疊。根據數據計算出五列,第六列是前五年的平均值。第六行在所有級別提供不正確的總計,直到用戶一直鑽到最低級別。我試圖修改執行計算的自定義代碼,將它的「範圍」考慮在內並提供正確的數據。 – attach 2010-12-13 13:34:59

+0

鑑於該行的範圍和級別都是在其他函數中構建的,您仍然需要一種方法來計算顯示/隱藏該組的控件的值。 – Nat 2010-12-13 20:26:11

+0

我不確定我是否正確解釋了這一點。我從數據中獲得所需的一切。我試圖做的是控制矩陣生成的總和列。如果您爲您的詳細信息單元格添加表達式,它將用於自動生成的總和列中。表達式中的數學(自定義VB函數)需要在範圍更改時進行更改。我只想確定函數中的範圍或列(在右鍵單擊報表的灰色區域並選擇「屬性」後寫入「代碼」選項卡)。 – attach 2010-12-14 19:43:36