3

我在本地处理模式下使用报告服务。

我将报告数据设置为从 sql 数据库中提取的数据集。

当我来呈现报告时,我收到两个警告:

  1. 数据集“PPA_Dev”包含字段“电子邮件”的定义。数据源返回的结果集中缺少该字段。

  2. 数据集“PPA_Dev”包含字段“电子邮件”的定义。数据扩展在读取字段期间返回错误。位置 9 的字段没有数据。

我在生成的报告中看到的是空的电子邮件列。

为什么会发生这种情况?

更新

生成数据集的 sql 正在返回正确的信息。

最后,我在记事本中摆弄了 rdlc 文件,破坏了整个报告,恢复了代码,现在它可以正常工作了。不知道为什么坏了,不知道为什么修好了,这一切都非常令人沮丧。

4

8 回答 8

3

听起来数据集定义包含一个名为“电子邮件”的字段,该字段不会从您的源查询中返回,但如果没有更多信息,很难确定。

您能否修改问题以包含用于生成数据集的 SQL?

于 2009-07-15T07:17:55.163 回答
3

我有一个类似的问题。对我来说,RDLC 看起来不错。最终,我注意到数据集参数的列出顺序与存储过程中的顺序不同。当我在数据集中对它们重新排序以匹配 SP 时,一切都很好。遇到此错误时,我会将其添加到您的检查列表中。

于 2014-08-05T00:42:45.997 回答
2

针对 SharePoint 列表创建报告时,我遇到了这个问题。如果列表中的列为空,则查询响应中不会返回该列。我在 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). 然后在报告中用新变量替换原始字段的出现。

于 2013-09-17T02:08:25.853 回答
2

我也有这个问题。当我在 Visual Studio Xml 编辑器中检查 rdlc 时,我发现在 rdlc 的“DataSets/DataSet/Fields”部分中错误地指定了被投诉的字段(上述原始问题中的电子邮件)。删除这些字段更正了问题。

我之前更改了 Datasource 对象,看起来 rdlc 数据集没有使用已更改的字段进行更新。

于 2012-06-09T07:58:38.597 回答
2

有确切的错误消息并注意到(感谢上面的 dkritz 帖子)我的数据集中的字段不在我的最终 SQL 选择中。所以我从数据集中删除了这些字段,瞧。

一点历史 - 原始数据集使用查询文本。我删除了该数据集并创建了另一个(对 ds 使用相同的名称)。这个新的引用了一个存储过程,一些字段与原来的不同。我认为因为 ds 的名称相同,所以它从原始 ds 中提取字段并将其与新 ds 组合。该错误是指旧 ds 的字段。

于 2015-09-08T18:06:53.273 回答
1

直接将表与 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

于 2017-05-12T04:40:54.677 回答
0

我有一个类似的问题,但对于 SSAS 源。有一个字段被过滤为空列,因此它没有显示在执行的输出中,但该字段在Fields列表中。与源查询中的字段相比,字段的顺序也是混合的。

我所做的是混合了其他人的提示:

  • 删除此字段为空值
  • 将字段的顺序更改为与源查询中的相同
  • 重新启动Visual Studio - 因为即使我执行了上述步骤,错误仍然出现。重启VS后,警告神奇地消失了!
于 2020-09-02T11:41:40.933 回答
0

对我来说,单引号引起了问题。

   <Field Name="Field1">
      <DataField>Field1"</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>

更正包含<DataField>Field1"</DataField>如下的行:

   <Field Name="Field1">
      <DataField>Field1</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
于 2019-12-18T13:29:32.977 回答