Sql SSRS报告未显示数据
我刚刚创建了一个SQLServer2005SSRS报告,数据没有显示在预览窗格中 根据字符串参数从存储过程正确填充数据集。我可以在数据窗格中执行它。在预览窗格中运行报告时,将显示正确的行数,但单元格内容不包含任何数据 源数据集基于SQL Server 2005中传递的字符串参数的存储过程,该参数返回临时表的内容。然后,数据集将字段映射到局部变量。我可以在数据视图中正确执行此操作 存储过程Sql SSRS报告未显示数据,sql,sql-server,reporting-services,reportingservices-2005,Sql,Sql Server,Reporting Services,Reportingservices 2005,我刚刚创建了一个SQLServer2005SSRS报告,数据没有显示在预览窗格中 根据字符串参数从存储过程正确填充数据集。我可以在数据窗格中执行它。在预览窗格中运行报告时,将显示正确的行数,但单元格内容不包含任何数据 源数据集基于SQL Server 2005中传递的字符串参数的存储过程,该参数返回临时表的内容。然后,数据集将字段映射到局部变量。我可以在数据视图中正确执行此操作 存储过程 ALTER PROCEDURE spWebReportStage25BuildReview @Bu
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、行组和列组上的过滤器是什么
- 数据集的一般结构是什么?它的结果是什么
- 参数是如何构造和使用的
设置FMTONLY ON
。这将检索元数据,但不会显示数据我也有同样的问题。这是我发现的。这是我的密码:
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