我的报告中定义了一个类似于此的矩阵:
我想添加另一行Total
来自Row 5
除以Total
Row 1
值
由于这些行是动态生成的,我该怎么做?
第一列已分组,总计列为SUM
。我需要根据分组列选择总值并将两者分开。
答案 0 :(得分:1)
第1行和第5行的值是否为常数,或者您计算的行数是否始终为1和5?
您可以使用自定义代码将值存储在变量中,然后使用这些代码执行计算。
创建一个同时获取Col1值和Col2计算值的函数。然后它将Row1分配给var1,将Row5分配给var2。然后它将返回Col2的值以显示为Total值。
有意义吗?如果您需要有关该功能的帮助,请告诉我......
编辑
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
对于代码的每次迭代,i都会增加1.每次迭代都会检查值为1或5。
在您的总栏中,您可以使用:
=Code.GetRowFive() / Code.GetRowOne()
注意:我没有对此进行测试,因此可能存在一些拼写错误或语法错误,但您会得到一般的想法。
根据您的使用方式,您可能需要考虑不将变量声明为“共享”: