8

列の 1 つが TimeSpan 型であるレポートとデータソースがあります。を使用すると、TimeSpan 値がレポートに正しく表示されるように見えますがFields!TheTime.Value、問題はありません。

  • 07:02:00
  • 05:41:00

しかし、これらの値を合計して、グループの合計時間を取得したいと思います。C# などでは、もちろん TimeSpan + 別の TimeSpan を実行できるので、それらを追加できることはわかっています。私は試した

=Sum(Fields!TheTime.Value)

しかし、それはある種の長い数として出力されてしまいます。たとえば、上記の出力時間の場合、457800000000合計として取得します。そして、それは何であるべきですか?

とにかく、レポートでタイムスパンの値を合計するにはどうすればよいですか? 上記の期間については、最終的に合計したいと思い12:43:00ます。私の頭が数学でもう一度失敗しない限り...しかし、あなたはアイデアを得る:p

4

3 に答える 3

16

ため息をつく解決策はうっとうしいほど単純です...なぜ私はそもそもそれを試してみなかったのですか?まあ...TimeSpanクラスにアクセスできることに気づかなかったからかもしれません...自分が盲目だと思っていたからかもしれません...しかし、とにかく、ここにあります:

=TimeSpan.FromTicks(Sum(Fields!TheTime.Value))

D'oh!

于 2009-03-02T09:13:37.723 に答える
1

@Svish - 回答について不確実性があったため、以前の投稿を削除しましたが、@pfunk に同意します。

私は最終的にSSRSを元に戻し、遊んでみました.確かにあなたの大きな数字は目盛りの数であるように見えるので、結果のフォーマットが少しうまくいくように見えます.

興味深いことに、私の以前の複雑な回答は、DATETIME を合計できないため、SSRS (および SQL) では実行できない DateTime 値 (私のクエリで SQL Server DATETIME データ型を使用) を合計するための回避策でした。将来の参考のためにここにもう一度含めますが、以前は少し触れていたと思います:)

以下のコードは、DateTime フィールドを double に変換し、結果を合計してから DateTime に戻し、hh:mm:ss にフォーマットします。

=Date.FromOADate(Sum(Fields!TheTime.Value.ToOADate())).ToString("hh:mm:ss")
于 2009-02-27T19:04:21.887 に答える