2009-07-13 48 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