SSRS 子报告未在生产中显示
SSRS Sub-Report not displaying in production
有时候我真的很讨厌 M$。
我有一份 SSRS 报告,数据集正在由存储过程填充。报表每页显示一个区(分组行)的结果。存储过程是 returning 聚合计数。到目前为止一切顺利。
我在 tablix 中添加了两个子报表,一个在左列,一个在右列。几乎完全一样。我点击了单元格,点击了插入,然后选择了 SUB-REPORT。然后我单击新的 SUB-REPORT,并使用下拉列表指定要用作子报告的报告。
他们也有一个由存储过程提供的数据集,可能 return 从 0 到几行。两个子报告使用完全相同的参数,具有相同的名称。
---------------------------------------------------
|___________________DISTRICT 12___________________|
|_____________Item 1|__75|____________Item 2 |__42|
|_____________Item 3|__15|____________Item 4 |__45|
|_____________Item 5|___5|____________Item 6 |__16|
|_____________Item 7|__65|____________Item 8 |___0|
|_____________Item 9|__12|___________Item 10 |__55|
|=================================================|
|______Sub Report 1______|______Sub Report 2______|
|_________category 1|__27|_________category A|__16|
|_________category 2|__15|_________category B|__42|
|_________category 3|___2|_________category C|__60|
|_________category 4|___6| |
|_________category 5|__16| |
---------------------------------------------------
它在 Visual Studio 中看起来和工作正常。每个子报告单独运行良好,在主报告中也运行良好。但是当我部署所有 3 个报告时,子报告 1 显示 "Error: Subreport could not be shown."
子报表采用完全相同的参数。子报告获取地区 ID、年份等以提取数据。
我用另一个名称重新创建了有问题的子报表,在主报表中替换了它,结果相同。
我重新创建了主报告,给它两个子报告,结果完全相同,子报告 1 和子报告 1b 不起作用,子报告 2 起作用。
我使用 ExamDiff(无耻的插件,优秀的工具!)将子报告文件相互比较,没有发现真正的差异。
我用 XML 记事本(另一个有用的工具)打开了主报告文件,发现它们的设置方式没有真正的区别。
所有报告都存储在同一目录中。
我打开了项目文件,没有发现任何有趣的东西。
我什至按照其他地方的建议将外部工具添加到 clear local report cache。
我很难过。我敢肯定这以前遇到过。有什么指点吗?
一如既往地感谢Stack Overflow上的同胞们。全球开发人员的最佳建议来源。
这可能是旧的 FMTONLY 和 SSRS 问题。
有关详细信息,请参阅这些链接
http://www.sqlservercentral.com/articles/Reporting+Services+(SSRS)/119024/
No fields for dynamic SQL stored procedure in SSRS with SET FMTONLY
我在一些旧的 SSRS 存储过程中使用了它,当时结果集最初没有显示
CREATE PROCEDURE report1 AS
BEGIN
DECLARE @FMTONLY BIT;
IF 1 = 0
BEGIN
SET @FMTONLY = 1;
SET FMTONLY OFF;
END
-- Stored proc main code here
IF @FMTONLY = 1
BEGIN
SET FMTONLY ON;
END
END -- End of stored proc / RETURN
说真的,有时候我讨厌 M$。
两个子报表的存储过程只带回4个字段,一个我什至不用(地区ID)。报告只有table三个文本框,一个只是文字。另外两个是
=Description + " (" + code + ")"
和
=DistCounts
绝对没有这些。
最后,我们采用了有效的方法,将 XML 复制到一个新的子报表中,更改了数据集、字段名称和文字,重新部署,然后它起作用了。将有效的与无效的 2 进行比较……没有任何意义。啊啊啊!
正如我所说,两者使用相同的输入参数,存储过程只是计算不同的字段。白白浪费了一天多的时间,还不知道哪里出了问题。
有时候我真的很讨厌 M$。
我有一份 SSRS 报告,数据集正在由存储过程填充。报表每页显示一个区(分组行)的结果。存储过程是 returning 聚合计数。到目前为止一切顺利。
我在 tablix 中添加了两个子报表,一个在左列,一个在右列。几乎完全一样。我点击了单元格,点击了插入,然后选择了 SUB-REPORT。然后我单击新的 SUB-REPORT,并使用下拉列表指定要用作子报告的报告。
他们也有一个由存储过程提供的数据集,可能 return 从 0 到几行。两个子报告使用完全相同的参数,具有相同的名称。
---------------------------------------------------
|___________________DISTRICT 12___________________|
|_____________Item 1|__75|____________Item 2 |__42|
|_____________Item 3|__15|____________Item 4 |__45|
|_____________Item 5|___5|____________Item 6 |__16|
|_____________Item 7|__65|____________Item 8 |___0|
|_____________Item 9|__12|___________Item 10 |__55|
|=================================================|
|______Sub Report 1______|______Sub Report 2______|
|_________category 1|__27|_________category A|__16|
|_________category 2|__15|_________category B|__42|
|_________category 3|___2|_________category C|__60|
|_________category 4|___6| |
|_________category 5|__16| |
---------------------------------------------------
它在 Visual Studio 中看起来和工作正常。每个子报告单独运行良好,在主报告中也运行良好。但是当我部署所有 3 个报告时,子报告 1 显示 "Error: Subreport could not be shown."
子报表采用完全相同的参数。子报告获取地区 ID、年份等以提取数据。
我用另一个名称重新创建了有问题的子报表,在主报表中替换了它,结果相同。
我重新创建了主报告,给它两个子报告,结果完全相同,子报告 1 和子报告 1b 不起作用,子报告 2 起作用。
我使用 ExamDiff(无耻的插件,优秀的工具!)将子报告文件相互比较,没有发现真正的差异。
我用 XML 记事本(另一个有用的工具)打开了主报告文件,发现它们的设置方式没有真正的区别。
所有报告都存储在同一目录中。
我打开了项目文件,没有发现任何有趣的东西。
我什至按照其他地方的建议将外部工具添加到 clear local report cache。
我很难过。我敢肯定这以前遇到过。有什么指点吗?
一如既往地感谢Stack Overflow上的同胞们。全球开发人员的最佳建议来源。
这可能是旧的 FMTONLY 和 SSRS 问题。
有关详细信息,请参阅这些链接
http://www.sqlservercentral.com/articles/Reporting+Services+(SSRS)/119024/
No fields for dynamic SQL stored procedure in SSRS with SET FMTONLY
我在一些旧的 SSRS 存储过程中使用了它,当时结果集最初没有显示
CREATE PROCEDURE report1 AS
BEGIN
DECLARE @FMTONLY BIT;
IF 1 = 0
BEGIN
SET @FMTONLY = 1;
SET FMTONLY OFF;
END
-- Stored proc main code here
IF @FMTONLY = 1
BEGIN
SET FMTONLY ON;
END
END -- End of stored proc / RETURN
说真的,有时候我讨厌 M$。
两个子报表的存储过程只带回4个字段,一个我什至不用(地区ID)。报告只有table三个文本框,一个只是文字。另外两个是
=Description + " (" + code + ")"
和
=DistCounts
绝对没有这些。
最后,我们采用了有效的方法,将 XML 复制到一个新的子报表中,更改了数据集、字段名称和文字,重新部署,然后它起作用了。将有效的与无效的 2 进行比较……没有任何意义。啊啊啊!
正如我所说,两者使用相同的输入参数,存储过程只是计算不同的字段。白白浪费了一天多的时间,还不知道哪里出了问题。