2017-01-06 4 views
0

RDLで日付時刻データ型に空の値を与える方法を教えてください。私は次のことを試していますが、データがない行に01/01/00を取得しています。RDLの日付時刻データ型に何も(空の値)を渡す方法

=iif(Fields!D_date.Value is nothing,Nothing,Fields!D_date.Value) 

私は

=iif(Fields!D_date.Value=0,Nothing,Fields!D_date.Value) 

または

=iif(Fields!D_date.Value="",Nothing,Fields!D_date.Value) 

を使用する場合でも、私は私のデータ行でエラーを取得しています。

''をストアドプロシージャに渡しています。その列のデータがない場合

SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 

ALTER PROCEDURE [dbo].[uspDBLines] 
    (@InLinesPerPage int) 
AS 
    DECLARE @TotalRows int 
    DECLARE @Remainder int 
    DECLARE @NumPages int 
    DECLARE @NextPageRows int 

    SET @TotalRows = 0 

    SELECT 
     ROW_NUMBER() OVER (ORDER BY P_id) AS InvoiceRow, 
     CusID, B_id, Inv_No, B_Desc, D_date, Qty, Size, Price, Amt 
    INTO 
     #tempInvoice 
    FROM 
     Purchase_Details 

    SET @TotalRows = @@ROWCOUNT 

    IF @TotalRows = 0 
    BEGIN 
     WHILE @TotalRows < @InLinesPerPage -- Add Blank Rows will generate blank invoice. 
     BEGIN 
      SET @TotalRows = @TotalRows + 1 

      INSERT INTO #tempInvoice (InvoiceRow, CusID, B_id, Inv_No, B_Desc, D_date, Qty, Size, Price, Amt) 
      VALUES (@TotalRows, '', '', 0, '', '', 0, '', 0, 0) 
     END 
    END 
    ELSE 
    BEGIN 
     SET @Remainder = @TotalRows % @InLinesPerPage -- get remainder 

     IF @Remainder != 0 
     BEGIN 
      -- Get the current page increase by 1 because we have a remainder. 
      SET @NumPages = @TotalRows/@InLinesPerPage + 1 
      SET @NextPageRows = @NumPages * @InLinesPerPage 

      WHILE @TotalRows < @NextPageRows -- Add Blank Rows 
      BEGIN 
       SET @TotalRows = @TotalRows + 1 

       INSERT INTO #tempInvoice (InvoiceRow, CusID, B_id, Inv_No, B_Desc, D_date, Qty, Size, Price, Amt) 
       VALUES (@TotalRows, '', '', 0, '', '', 0, '', 0, 0) 
      END 
     END 
    END 

    SELECT * 
    FROM #tempInvoice 
    ORDER BY InvoiceRow ASC 

    RETURN 
+0

あなたは 'NULL'か空文字列' "" 'を試しましたか? – Stephen

+0

RDLの中に空の文字列を与えるために#Errorがあります。私は表現の中でNULLを試しましたが、インテリセンスは通過できません。 – 4stars

+0

値はどうしますか?他の場所で使っていますか? RDLは、 '= Fields!D_date.Value'だけでは問題ありません。空の場合には、格納されたprocの中に 'NULL'を入れてください。 – Stephen

答えて

1

テーブルは非常によく、すべての無効な日付のために充填1/1/1900ような日付を持っていることがあります。

これは、私が使用しているストアドプロシージャです。だから、報告書は、彼らがNULLでないので、そこにあるものを表示しているだけです。

=IIf(Fields!D_date.Value = Nothing, Nothing, Fields!D_date.Value) 

SSRSはNothingと比較するis演算子を使用していません:彼らは本当にNULL使用している場合、この

=IIf(Fields!D_date.Value <= CDate("1/1/1900"), Nothing, Fields!D_date.Value) 

だから、この表現を試してみてください。

関連する問題