2016-09-22 10 views
0

私は折れ線グラフと直列式のいずれかを持っているが、このようになります。SSRS - この表現を行う良い方法はありますか?

=IIF((DateDiff("dd", Fields!EstimatedImpDt.Value, Fields!ActualImpDt.Value) = 0) 
    ,100 
    ,(100 - (((DateDiff("dd", Fields!EstimatedImpDt.Value, Fields!ActualImpDt.Value)) 
       /(DateDiff("dd", Fields!CreateDt.Value, Fields!EstimatedImpDt.Value))) 
       * 100 
      ) 
    ) 
    ) 

私は、各フィールドにデータがあることを確認するチェックしました、と私は括弧がすべてであることを確認するためにチェックしました正しい場所にそれらのうちのいくつかは100%必要ではないかもしれませんが、私はそう信じています。それは計算されたシリーズが動作するようには見えません。目に見える形で間違った表現がありますか?これを行うより効果的な方法はありますか?

EDIT:

だから私は、この式から値を取得するタイムラインスコアは、私はレポートを含むページを実行すると、なぜそれがレポートに表示されないされた日付、として戻っていると思います。私は= CInt(Format())を使用して、全体の表現をしようとするが、それは動作しませんでした。ここ

は何が起こっているかのスクリーンショットです:

私は、データベース内の行を持っているが、それでもこの値のグラフ上の点があるはずです。

編集2:私はそれを理解しました。何らかの理由で "dd"を使用していたのは機能しませんでした。だから私はDateInterval.Dayに切り替えました。今は完璧です!

+0

どのような価値がありますか?なぜなら、私は表現を見れば否定的かもしれないからです。グラフのY軸は自動的に決定されますか? 式をテキストボックス/行列に入れてみましたが、それが返す値は何ですか? – NickyvV

答えて

0

この式は問題ありません。あなたはかっこの余分なセットをいくつか持っています。

私はあなたのIIFは、DIV0エラーを回避するためにDENOMINATOR式の

DateDiff("dd", Fields!CreateDt.Value, Fields!EstimatedImpDt.Value) 

ではなくNUMERATOR

DateDiff("dd", Fields!EstimatedImpDt.Value, Fields!ActualImpDt.Value) 

を確認するべきだと思います。

=IIF(DateDiff("dd", Fields!CreateDt.Value, Fields!EstimatedImpDt.Value) = 0, 100, 100 - (DateDiff("dd", Fields!EstimatedImpDt.Value, Fields!ActualImpDt.Value)/DateDiff("dd", Fields!CreateDt.Value, Fields!EstimatedImpDt.Value)) * 100) 
+0

分子がゼロならば、それは式のその部分には行きません。それは100になります。ちょっと気がついた詳細を追加しました。 –

関連する問題