-2

私はいつも、ストアド プロシージャが 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 は少しです。

4

5 に答える 5

1

テキストボックス式で次のようなものを使用します。

=IIf(IsNothing(Fields!DateTime.Value), "", Fields!DateTime.Value)
于 2013-08-19T15:21:24.007 に答える
1

これに関するドキュメントはないようです。次善の策は、この Q&A に、私たちの集合的な経験に基づいて物事を文書化することです。

「 NULL値を持つDATETIMEを表示するとき、SSRSは何をしますか? 」という質問を想定します...

...答えは、代わりに空の文字列を表示することです。自分で何らかの作業を行わない限り、NULL 値が他のものとして表示される再現可能なシナリオはありません。次に例を示します。

  • クエリが NULL を何か別のものに COALESCE する場合、たとえば文字列 "NULL" または MIN DATETIME;
  • テキストボックス値の式がある場合、たとえばIIF(Fields!MyDateTime.Value Is Nothing, "01-01-1900", Fields!MyDateTime.Value)
于 2013-08-20T09:57:04.717 に答える