2009-07-13 169 views
2

我在本地處理模式下使用報告服務。SQL Reporting Services - 神祕警告

我將報表數據設置爲從sql數據庫中提取的數據集。

當我來到呈現報表,我得到兩個警告:

  1. 數據集「PPA_Dev」包含字段「電子郵件」的定義。該字段在數據源返回的結果集中丟失。

  2. 數據集'PPA_Dev'包含字段'EMail'的定義。數據擴展在讀取字段期間返回錯誤。沒有位置9的字段的數據。

我在生成的報告中看到的是電子郵件列爲空。

爲什麼會發生這種情況?

UPDATE

這是生成所述數據集返回正確信息的SQL。

最後,我在記事本中弄亂了rdlc文件,打破了整個報告,恢復了代碼,現在它工作正常。不知道爲什麼它被打破,不知道爲什麼它是固定的,這是非常令人沮喪的。

回答

1

聽起來像數據集定義包含一個名爲「電子郵件」的字段,它不是從您的源查詢返回的,但很難確定沒有更多信息。

您可以修改問題以包含用於生成數據集的SQL嗎?

1

我也有這個問題。當我在Visual Studio Xml編輯器中檢查了rdlc時,我發現被投訴的字段(上面原始問題中的EMail)在rdlc的'DataSets/DataSet/Fields'部分中被錯誤地指定。刪除這些字段糾正了問題。

我以前更改過數據源對象,看起來rdlc數據集沒有更新那些已被更改的字段。

1

我在創建針對SharePoint列表的報告時遇到此問題。如果列表中的列爲空,則該列未在查詢響應中返回。我找到了幫助解決問題的old post on www.msbicentral.com

報告特性,新功能定義添加到自定義代碼段:

Function NullAsEmpty(ByRef F As Field) As String 
    If F.IsMissing Then 
     Return "" 
    Else 
     If F.Value Is Nothing Then 
      Return "" 
     Else 
      Return F.Value 
     End If 
    End If 
End Function 

添加可以代替實際的領域中使用的變量。在我的情況下,我添加了一個變量reason,定義爲=Code.NullAsEmpty(Fields!Reason)。然後在報告中用新變量替換原始字段的出現。

0

我有一個類似的問題。對我來說,RDLC看起來不錯。最終我注意到,那些數據集參數按照與存儲過程不同的順序列出。當我在數據集中對它們進行重新排序以匹配SP時,一切都很順利。遇到此錯誤時,我會將其添加到您的檢查列表中。

0

有這個確切的錯誤信息,並注意到(感謝上面dkritz發佈)我的數據集中的字段不在我最後的SQL選擇。所以我從數據集中刪除了這些字段,並且瞧。

有點歷史 - 原始數據集使用查詢文本。我刪除該數據集並創建另一個(爲ds使用相同的名稱)。這個新的引用了一個存儲過程,其中一些字段與原始字段不同。我認爲,因爲ds被命名爲相同,它將原始ds中的字段從新ds中結合起來。錯誤是指舊ds的字段。

0

直接綁定表與SSRS報告工作正常。但是,當我用同樣的表在存儲過程中該報告已拋出

[rsMissingFieldInDataSet] The dataset ‘DataSet1’ contains a definition for the Field ‘Currency’. This field is missing from the returned result set from the data source. 

在開始添加

SET ARITHABORT ON; 

的SP修復了這個問題。

環境:Visual Studio 2008,SQL Server 2008