0

私はSSRSレポートに取り組んでいます。そのグループセクションに1つのレポートLong-Onlyがあり、次のように、ある式という名前の1つの値があります。

=IIF(CDec(Parameters!NAV.Value) > 1,((SUM(Fields!LongMV.Value) - SUM(IIF(Right(Fields!SecurityType.Value, 4) = "Cash" OR Left(Fields!SecurityType.Value, 8) = "Treasury", Fields!LongMV.Value, 0)))/(Parameters!NAV.Value/1000)) -1,0)

上記の式は、LONGVALUE

この関数を実行したいのですが(サンプル値を入れてこの関数のみ)実行する方法はありますか?

NAV.Value = 1200 SUM(Fields!LongMV.Value)= 49

これは何をし(Right(Fields!SecurityType.Value, 4) = "Cash"ますか?

私はssrsの報告に不慣れですが、誰かが表現を知るのを手伝ってくれませんか。

レポートにはストアドプロシージャを使用しています。

ありがとう

4

1 に答える 1

1

少しフォーマットすると次のようになります。

=IIF
(
  CDec(Parameters!NAV.Value) > 1
  ,
  (
    (
      SUM(Fields!LongMV.Value) -
        SUM
        (
          IIF
          (
            Right(Fields!SecurityType.Value, 4) = "Cash" OR Left(Fields!SecurityType.Value, 8) = "Treasury"
            , Fields!LongMV.Value
            , 0
          )
        )
    ) /(Parameters!NAV.Value/1000)
  ) - 1
  , 0
)

したがって、ここでは、各グループについて、式が次のように計算していることがわかります。

If NAV parameter > 1, return 0

Else return group level ((LongMV - Cash Long MV) / NAV parameter / 1000) - 1

どこCash Long MVにありますか:

Group level Cash type Long MV + Group level Treasury type Long MV

これが式が計算しているものです。ここでの質問が何であるかはまだわかりません。データの意味に基づいて、上記をあらゆる種類のコンテキストに配置できるのはあなただけです。

これは、同僚とさらに話し合うことができるものですか?

コメント後に編集:

Right()文字列の右側から指定された文字数を返す標準のSSRS/.NET関数です。

Right(Fields!SecurityType.Value, 4) = "Cash"セキュリティタイプ値の最後の4文字に基づいて、特定のセキュリティタイプを計算に含める必要があるかどうかを確認します。これには、たとえば、決済済み現金未決済現金などのセキュリティタイプが含まれます。

特定の値を使用してテストする場合は、それらの値をストアドプロシージャのデータセットに返すことです。たとえば、返されるLongMVの合計が必要な値になるようにします。

または、それらを数式にハードコーディングすることもできます。明確な答えがある質問ではありません。

于 2013-03-06T12:04:56.117 に答える