レポートで次のようなマトリックスを定義しています。
からの値をからのTotal
値でRow 5
割った別の行を追加したいTotal
Row 1
これらの行は動的に生成されるため、どうすればこれを行うことができますか?
最初の列はグループ化され、合計列はSUM
です。グループ化列に基づいて合計値を選択し、2 つを分割する必要があります。
レポートで次のようなマトリックスを定義しています。
からの値をからのTotal
値でRow 5
割った別の行を追加したいTotal
Row 1
これらの行は動的に生成されるため、どうすればこれを行うことができますか?
最初の列はグループ化され、合計列はSUM
です。グループ化列に基づいて合計値を選択し、2 つを分割する必要があります。
行 1 と行 5 の値は一定ですか、それとも計算対象の行番号は常に 1 と 5 ですか?
カスタム コードを使用して値を変数に格納し、それらを使用して計算を実行できます。
Col1 の値と Col2 の計算値の両方を取る関数を作成します。次に、Row1 を var1 に、Row5 を var2 に割り当てます。次に、Total 値として表示する 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
コードの反復ごとに、i が 1 ずつ増加します。反復ごとに、値が 1 または 5 かどうかがチェックされます。
合計列では、次を使用できます。
=Code.GetRowFive() / Code.GetRowOne()
注: 私はこれをテストしていないので、タイプミスや構文エラーがある可能性がありますが、一般的な考え方はわかります。
これをどのように使用するかによって、変数を「共有」として宣言しないことを検討したい場合があります。