我在報告中定義的基質中類似於這樣劃分兩個特定值值來自Row 1
從矩陣
由於這些行是動態生成的,我怎麼能做到這一點?
第一列是分組的,而Total列是SUM
。我需要根據分組列將總數值挑出來,然後除以二。
我在報告中定義的基質中類似於這樣劃分兩個特定值值來自Row 1
從矩陣
由於這些行是動態生成的,我怎麼能做到這一點?
第一列是分組的,而Total列是SUM
。我需要根據分組列將總數值挑出來,然後除以二。
行1和行5的值是否不變,或者您計算的行數始終是1還是5?
您可以使用自定義代碼將值存儲在變量中,然後使用這些值執行計算。
創建一個同時採用Col1值和Col2的計算值的函數。然後它將Row1分配給var1,將Row5分配給var2。然後它將返回Col2的值作爲總值顯示。
有意義嗎?讓我知道如果你需要一些幫助,功能...
編輯
SSRS:
Col 1 | Col 2 | Col 2 Expression
England | 201 | =Code.SetOneFive(Count(Fields!Country.Value))
Ireland | 451 | =Code.SetOneFive(Count(Fields!Country.Value))
Scotland | 215 | =Code.SetOneFive(Count(Fields!Country.Value))
Wales | 487 | =Code.SetOneFive(Count(Fields!Country.Value))
Zenovia | 2145 | =Code.SetOneFive(Count(Fields!Country.Value))
代碼:
Public Shared Dim i as Integer = 1
Public Shared Dim rowOne as Integer
Public Shared Dim rowFive as Integer
Public Function SetOneFive (byval _OneFive As Integer) as Integer
If i = 1 then
rowOne = _OneFive
Else If i = 5 then
rowFive = _Onefive
End If
i = i + 1
End Function
Public Function GetRowOne() As Integer
GetRowOne = RowOne
End Function
Public Function GetRowFive() As Integer
GetRowFive = RowFive
End Function
對於代碼的每一次迭代,我增加1.這是檢查每次迭代的值爲1或5.
在你的總列然後你可以使用:
=Code.GetRowFive()/Code.GetRowOne()
注:我還沒有測試,所以可能會有一些錯別字或語法錯誤,但你的總體思路。
取決於你如何使用這個你可能要考慮不聲明變量作爲「共享」:
它們不是恆定的。他們是動態的,行號將基於任何值是第1列。 – codingbadger
對不起,我認爲我在我的問題中沒有具體說明,我會將其編輯爲更精確。 – user3056839
你有沒有考慮使用組變量來存儲總量,然後與做你所需的計算那? –
@ mr.theTrain我該怎麼做?我認爲對我來說最簡單的選擇是將這些計算的大部分移動到SQL Server並保持報告非常簡單。 – codingbadger
不確定這是否直接適用於您的情況,但報告變量的好教程http://www.wiseowl.co.uk/blog/s283/group-variables.htm –