私はいつも、ストアド プロシージャが null の datetime を返したときに、SSRS レポートがそのセルに注意を向けていると考えていました。問題は、私の経験では、これが常に正しいとは限らないということです。理由がわかりません。レポートが空白で表示される場合があり、日時が null の場合は注意が必要です。何故ですか?
これがどのように機能するかを説明するルールやドキュメント (理にかなっている) はありますか? 使用しているツールに一貫性がない場合、一貫性を維持することは困難です。まったく同じ方法で設定された 2 つのレポートを作成できます。1 つはマインドデートを表示し、もう 1 つは null 日時の空白を表示します。理解できません。
編集:
まず第一に、そうです、気の利いたことが多くの人に起こりました。 https://www.google.com/search?num=50&q=ssrs+null+date+show+blank&oq=ssrs+null+date+show+blank&gs_l=serp.3...8759.9774.0.9941.10.10.0.0. 0.0.152.888.8j2.10.0....0...1c.1.25.serp..8.2.166.kl2WBVx4Ijw
ほぼすべての結果で、空白が必要なときに心構えについて話している人がいます。結果の多くは Stack Overflow からのものであるため、決して起こらないと言う前に、完全に間違っていることを認識してください。あなたはそれを見たことがないかもしれません。何年にもわたる食事と何千回もの食事の中で、私の食べ物に切断された指を見たことはありません. それが誰かに起こっていないという意味ではありません.....
最小日付を表示している例:
レポートでは、テキスト ボックスの式は次のとおりです。
=Fields!SecondaryInjuryRecordDate.Value
数値の書式設定は、プレースホルダーのプロパティ ウィンドウで Date->01/31/2000 に設定されています。非常に簡単で、奇妙なことは何もありません。右?
プロシージャでは、その列のコードは次のとおりです。
CASE WHEN ISNULL(l.SecondaryInjury, 0) = 0 THEN '' ELSE l.SecondaryInjuryDXDate END AS SecondaryInjuryRecordDate
その結果、SecondaryInjuryDXDate が null の場合は常に注意が表示されました。私はこれに切り替える必要がありました:
CASE WHEN ISNULL(l.SecondaryInjury, 0) = 0 THEN '' ELSE ISNULL(l.SecondaryInjuryDXDate, '') END AS SecondaryInjuryRecordDate
...日付がnullのときに空白を取得します。
SecondaryInjuryDXDate は DATETIME で、SecondaryInjury は少しです。