Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSRS报告未显示数据_Sql_Sql Server_Reporting Services_Reportingservices 2005 - Fatal编程技术网

Sql SSRS报告未显示数据

Sql SSRS报告未显示数据,sql,sql-server,reporting-services,reportingservices-2005,Sql,Sql Server,Reporting Services,Reportingservices 2005,我刚刚创建了一个SQLServer2005SSRS报告,数据没有显示在预览窗格中 根据字符串参数从存储过程正确填充数据集。我可以在数据窗格中执行它。在预览窗格中运行报告时,将显示正确的行数,但单元格内容不包含任何数据 源数据集基于SQL Server 2005中传递的字符串参数的存储过程,该参数返回临时表的内容。然后,数据集将字段映射到局部变量。我可以在数据视图中正确执行此操作 存储过程 ALTER PROCEDURE spWebReportStage25BuildReview @Bu

我刚刚创建了一个SQLServer2005SSRS报告,数据没有显示在预览窗格中

根据字符串参数从存储过程正确填充数据集。我可以在数据窗格中执行它。在预览窗格中运行报告时,将显示正确的行数,但单元格内容不包含任何数据

源数据集基于SQL Server 2005中传递的字符串参数的存储过程,该参数返回临时表的内容。然后,数据集将字段映射到局部变量。我可以在数据视图中正确执行此操作

存储过程

ALTER PROCEDURE spWebReportStage25BuildReview
    @BuildNumber as nvarchar(50)
临时表模式

CREATE TABLE #tmpModelZones
(
    BuildID bigint NOT NULL,
    BuildNo nvarchar(50) NOT NULL,
    ModelID int NOT NULL,
    ModelName nvarchar(50) NOT NULL,
    ZoneID int NOT NULL,
    ZoneName nvarchar(50) NOT NULL,
    SortOrder int NOT NULL,
    Created bit DEFAULT 0 NOT NULL,
    Closed bit DEFAULT 0 NOT NULL,
    PRIMARY KEY (BuildID, ZoneID)
)
SSRS数据集

SSRS数据集映射

SSRS数据集参数

使用参数执行数据集


显示的表上没有其他分组、筛选器或聚合。这只是一张以前从未见过的平板桌子。然而,SSR有时可能有点“关闭”,所以这里有一个可以尝试的列表。恐怕大多数都是“你试过把它关掉再打开吗?”

  • 删除与报告关联的
    .data
    文件
  • 复制/备份报告,并尝试将数据集添加到一个新的基本tablix中,以查看是否显示数据
  • 检查隐藏的属性。不要忘记(出于某些愚蠢的原因),它不是一个可见的Y/N字段,而是一个隐藏的Y/N字段
  • 仔细检查字体颜色和大小等
  • 在reportserver上运行报告(与预览相反),以检查该操作是否有效
  • 使用一些临时文本框显示参数的实际值,以检查它们是否与测试运行数据集时完全相同
  • 检查tablix中的代码隐藏(rdl中的xml)以查找意外的筛选器、隐藏属性、表达式等。即使您不能完全“阅读”RDL,通过语法突出显示,您也应该能够浏览RDL并提取大量有关此方面的信息
  • 检查和其他日志记录,查看在报告运行中返回了多少行
此外,如果您使用更多信息更新/编辑您的问题,将会有所帮助:

  • tablix有什么样的分组
  • tablix、行组和列组上的过滤器是什么
  • 数据集的一般结构是什么?它的结果是什么
  • 参数是如何构造和使用的

使用临时表时,SSRS无法获取元数据。因此,基本上有两种方法可以让SSR知道列名:

  • 添加
    设置FMTONLY ON
    。这将检索元数据,但不会显示数据

  • 转到“数据”选项卡,单击通用查询设计器,然后单击“刷新字段”。这将提示一个对话框来指定参数值。当我们在查询设计器中运行查询时,SSRS从存储过程中获取模式和数据。现在数据将在预览窗格中可用


  • 我也有同样的问题。这是我发现的。这是我的密码:

        DECLARE @tblPigProblems TABLE (
        Id          INT IDENTITY, 
        PPId            INT, 
        GaugeColor      VARCHAR(25), 
        FullStartTime       VARCHAR(25), 
        PigSystem         VARCHAR(25)
        )
    
        IF (1 = 0)
        BEGIN
            SELECT * FROM @tblPigProblems
        END
    
        ...
    
        SELECT '@tblPigProblems'    [PigProblems],  
        @p_vchLine      [Line],         
        GaugeColor      [Product],
        FullStartTime       [Start Time],
        PigSystem       [Pig System]
    FROM @tblPigProblems
    
    我所做的是使用初始的“SELECT*FROM@tblPigProblems”来确保如果在返回数据集的最终SELECT语句之前在代码中指定了任何错误消息,则SSRS能够从存储过程中确定字段。然后,在确定结果后,我为字段指定了一个别名。问题是字段的别名与声明的字段名不匹配(即:声明的字段“GaugeColor”与别名“[Product]”不匹配我在select中提供了创建结果集的选项。我实现这一点的方式是,当我刷新SSRS报告的数据部分中的字段,然后显示数据集字段时,它列出了表声明中的字段名(即:“GaugeColor”)。当我在数据集中执行存储过程时(单击!),SSRS中列出的结果集显示了字段别名(即:“产品”)。由于这些别名不匹配,因此我将字段分配给的文本框中没有显示任何内容(即:“=Fields!ColorGauge.Value”)。SSRS没有发现此差异并允许创建报告,但没有显示任何值。解决方法很简单,请替换:

        IF (1 = 0)
        BEGIN
            SELECT * FROM @tblPigProblems
        END
    
    与:


    Dan

    我遇到了一个工作报告停止显示数据的案例。我添加了另一个没有格式的表,链接到同一个数据集-验证了当SSR传递参数时查询不再返回数据。调查后,我注意到我的测试参数为“锚定日期”值的格式为YYYY-MM-DD,在更新的查询中,我对日期参数中的字符顺序进行了假设(对于一个连接,截断为yyy-MM)

    我怀疑SSR可能以不同的格式传递日期(MM/DD/YY是我当前日期默认值的文化设置)。因此,根据这种预感,我改变了SQL逻辑,以处理传递的任何日期格式。-例如,left(convert(date,@anchorDate,20),7)


    这解决了我的问题——我测试过的格式假设(在开发时测试查询的硬编码值)这些都是错误的假设。SSR也可以以本地格式传递数据-因此一定要注意这种假设。

    我也有类似的问题。在我的例子中,它甚至没有任何参数或任何东西,只是你能想象到的最简单的报告。它包括一个带有单个字段的表,没有使用任何筛选器。我确实成功地进行了竞争w一些数据,但只显示那些不适合单元格的行,从而迫使行高增加

    我对这个问题的修复方法是:从标准字体(10号,Segoe UI)更改字体或字体大小。然后,所有数据都是s
        IF (1 = 0)
        BEGIN
            SELECT '@tblPigProblems'    [PigProblems],  
            @p_vchLine      [Line],         
            GaugeColor      [Product],
            FullStartTime   [Start Time],
            PigSystem       [Pig System]
        FROM @tblPigProblems
        END