1

レポートで次のようなマトリックスを定義しています。

SSRS マトリックス

からの値をからのTotal値でRow 5割った別の行を追加したいTotalRow 1

これらの行は動的に生成されるため、どうすればこれを行うことができますか?

最初の列はグループ化され、合計列はSUMです。グループ化列に基づいて合計値を選択し、2 つを分割する必要があります。

4

1 に答える 1

1

行 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()

注: 私はこれをテストしていないので、タイプミスや構文エラーがある可能性がありますが、一般的な考え方はわかります。

これをどのように使用するかによって、変数を「共有」として宣言しないことを検討したい場合があります。

新しいページでの SSRS コード変数のリセット

于 2013-12-18T09:06:05.247 に答える