2

rdlc レポート ファイルがあり、各グループの最後の項目のみを含む合計を作成しようとしています。次のようなテーブルがあります。

Place                 = ?                              (Group header 1)
    User              = ?                              (Group header 2)
        Date          =Last(Fields!Number.Value)       (Group header 3)
            Number    =Fields!Number.Value             (Detail row)

言い換えれば、Userそこに、合計が必要Dateです...もしそれが理にかなっているなら...

Number行には ごとに多くの数値が含まれていますDate。ただしDate、残りはカウントされないため (ただし、表示する必要があるため)、その日の最後の数字のみを表示します (ただし、表示する必要があります)Userそのユーザーのすべての日付の最後の数字を合計したいと思います。そして同じPlaceです(これは、すべてのユーザーの毎日の最後の数字の合計になります)。

誰でもこれで私を助けることができますか?私は(少なくとも私には)明らかなことを試しました=Sum(Last(Fields!Number.Value))が、(これらの関数でグループを指定しようとしましたが、違いはありませんでした)コンパイルしようとするとエラーが発生します:

テキストボックス 'numberTextbox' の値式には、別の集計関数 (または RunningValue) への引数に集計関数 (または RunningValue または RowNumber 関数) が含まれています。集計関数は、他の集計関数内にネストできません。

どちらが理にかなっていると思います...しかし、どうすればこれを行うことができますか?


更新:別の列を追加し、最後の数字をその列にコピーすることで問題を解決しました。このようにして、すべての数値を表示し、合計される数値のみを含む列で合計を行うことができます。誰かが私の元の問題の解決策を持っているかどうか、私はまだ非常に興味があります...もしそうなら、答えを投稿してください!

4

3 に答える 3

0

データ セットを変更するのが最も簡単な解決策かもしれませんが、クエリを複雑にすることなくこれを実行したい場合は、「カスタム集計」を試すことができます。

これに対する正確な手法は SSRS のバージョンによって異なりますが、私の理解では、SSRS 2008 より前はそれほどうまく機能していませんでした。

アイデアは、カスタム コードを記述して、各日付の最後の値を含む配列を維持することです。1 つの関数は日付の「最後の値」を更新し、別の関数は配列内の値を合計します。ヘッダーは後者の関数を呼び出します。ヘッダーが処理される前に、詳細行ごとに前者の関数が 1 回呼び出されるように共謀します。

SSRS 2008 の手法を説明する記事が掲載されたブログを次に示します。

また、SRSS 2005 でこれを機能させる方法についての洞察も得られますが、やはり信頼性が低いようです。

于 2011-12-20T21:53:11.600 に答える
0

あなたがやろうとしていることを正確に理解しているかどうかはわかりません。おそらく、合計を使用する代わりに =Last(Fields!Number.Value,"Group 1") + Last(Fields!Number.Value,"Group 2") + Last(Fields!Number.Value,"Group 3") のようなもの関数?

于 2009-05-06T13:42:28.127 に答える
0

これを行う最も簡単な方法は、日付フィールドに表示しているレコードのみを含めるようにデータセットを変更することです。そうすれば、奇妙で厄介なことをしようとする代わりに、単純な sum() を使用でき、機能しない可能性があります。

于 2009-05-06T13:58:41.380 に答える