0

別のテキストボックスで計算を行うためにそれを使用/参照できるように、変数(パラメーターではない)の式を作成しようとしています。複数のデータセットがあり、SUM(SUM(Fields!amount.Value))これらのデータセットごとにが必要です。次に、これらの番号を別のテキストボックスで使用して、互いに追加します。構文についてサポートが必要です。SUMは問題なく単独で使用できます。たとえば、これは正常に機能します。

=SUM(Fields!Amount.Value, "DataSet1")

しかし、それを次のように修正しようとするとエラーが発生します(これは私が実際に必要としているものです):

=SUM(SUM(Fields!amt.Value, "Acctrange_90300_90399_InterestExpenses"))

エラーが発生します

「レポート'body'の変数式は、スコープのない集計式を使用します。レポートにデータセットが1つだけ含まれている場合を除き、データ領域外で使用されるすべての集計にはスコープが必要です。」

構文/paranthesesの配置に問題があるという予感があります。助言がありますか?

4

3 に答える 3

1

アウターSUMにもスコープが必要です。これを試して:

=SUM(SUM(Fields!amt.Value,"Acctrange_90300_90399_InterestExpenses"),"Acctrange_90300_90399_InterestExpenses")

これも(いくつかの新しい別の方法で)失敗すると思いますが、そのエラーによって解決策に近づくことができます。

于 2012-09-06T02:33:02.650 に答える
1

おそらくサンプルデータと予想される解決策を含む詳細な例を提供していただけますか?

なぜSUM(SUM())したいのかわからないからです。内部のSUM()は単一の整数値になりますが、なぜ単一の値に対して別のSUMを実行する必要があるのでしょうか。それが機能したとしても、それは同じ値になります。質問を間違って理解してしまったことをお詫びします。コメントできないので答えていますが、あなたが何を探しているのかをはっきりと知りたいです。SUM(SUM()、SUM()、SUM()...)を実行しようとしているかどうかはわかります。のように、合計の合計。

詳細をお問い合わせするためだけに回答して申し訳ありませんが、コメントオプションが表示されません。


アップデート:

わかりました今私はあなたがのようなものを持っていると思います

      | a  | b  | c  | d  |
---------------------------
1     | *  | *  | *  | *  |
---------------------------
2     | *  | *  | *  | *  |
---------------------------
3     | *  | *  | *  | *  |
---------------------------
total | w  | x  | y  | z  |

だからSUM(Fields!a.Value)あなたに与えるだろうw、そしてあなたにSUM(Fields!b.Value)与えるだろうx、等々。そして、あなたは欲しいw+x+y+zですか?もしそうなら、あなたはこれを行うことができます:

計算フィールドをデータセットに追加して、次のような行の合計を計算します

{ (a1+b1+c1+d1),(a2+b2+....), .... }

次に、変数から、

SUM(Fields!CalculatedField.Value)

上記の例では、計算フィールドに次のような式を与えることができます。

= CInt(Fields!a.Value)+CInt(Fields!b.Value)+CInt(Fields!c.Value)+CInt(Fields!d.Value)

これにより、計算フィールドの各エントリが、すべてのフィールドの各エントリの合計になります。したがって、計算フィールドの合計があなたの答えになります。

それがあなたが望んでいたことを願っています。そうでなければ、私は問題を理解しようとしました。:)

于 2012-09-06T15:25:38.167 に答える
0

SSRSがこのような頭痛の種を私に与えたいとき、私はごまかします。内部計算を非表示のテキストボックスに入れるか、表示したい場合はそれを表示するボックスに名前を付けてから、名前で参照します。したがって、txtFirstColumnSumというテキストボックスの最初の列の合計と、txtSecondColumnSumというテキストボックスの2番目の列の合計がある場合は、次を使用します。

=cdec(ReportItems!txtFirstColumnSum.Value)+ cdec(ReportItems!txtSecondColumnSum.Value)...

これを行う別の方法は、組み込みのスコープを使用することですが、フィールド間の計算を処理するカスタムコードを記述します。たとえば、前年同期の現在の年初来の売上のパーセンテージが必要で、ゼロ除算も確認したい場合は、式でそれを行うことができますが、いくつかのレベルで使用するため、代わりにカスタムコード:

Public Function DeltaPercent(ByVal currentAmount as decimal,ByVal pastAmount as Decimal) as Decimal
    Dim difference as decimal
    Dim result as decimal
    if pastAmount<>0 then
        difference=currentAmount-pastAmount
        result=difference/pastamount
    else
        result=0
    end if
return result

End Function

次に、%の変更を取得するために、次のように呼び出します。

=Code.DeltaPercent(Sum(Fields!SalesYTD.Value, "SalesTerritory"),Sum(Fields!SalesPY1TD.Value, "SalesTerritory"))

もっと早く知ってもらいたいヒント:構文を使用する場合

ReportItems("txtFirstColumnSum").Value 

正しく入力する必要があります。上記のbang構文(!)を使用すると、インテリセンスが得られます。

于 2017-02-27T19:01:43.447 に答える