SSRS子报告未在生产中显示

问题描述 投票:0回答:2

有时候我真的很讨厌M $。

我有一个SSRS报告,该数据集由存储过程填充。 报告显示结果每页一个区(分组的行)。 存储过程正在返回聚合计数。 到现在为止还挺好。

我在tablix中添加了两个子报告,一个在左列,一个在右边。 几乎完全一样。 我单击了该单元格,单击了“插入”,然后选择了“ SUB-REPORT”。 然后,我单击新的SUB-REPORT,并使用下拉列表指定要用作子报告的报告。

它们也具有由存储过程提供的数据集,该数据集可能从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会显示“错误:无法显示子报表。”

子报表采用完全相同的参数。 子报告获取地区ID,年份等来提取数据。

我用另一个名称重新创建了有问题的子报表,并在主报表中将其替换为相同的结果。

我已经重新创建了主报表,并给了它两个子报表,结果完全相同,子报表1和子报表1b不起作用,子报表2起作用。

我使用ExamDiff(无耻的插件,出色的工具!)将子报表文件相互比较,没有发现真正的区别。

我使用XML记事本(另一个有用的工具)打开了主报表文件,发现它们的设置方式没有真正的区别。

所有报告都存储在同一目录中。

我打开了项目文件,但没有发现任何感兴趣的内容。

我什至添加了外部工具,以清除其他地方建议的本地报告缓存

我感到难过。 我敢肯定这已经遇到过。 有指针吗?

一如既往,感谢我的同胞关于堆栈溢出的问题。 为地球上的开发人员提供最佳建议。

reporting-services ssrs-2008 ssrs-2012
2个回答
0
投票

这可能是旧的FMTONLY和SSRS问题。
有关更多详细信息,请参见这些链接
http://www.sqlservercentral.com/articles/Reporting+Services+(SSRS)/119024/

使用SET FMTONLY的SSRS中没有用于动态SQL存储过程的字段

当最初未显示结果集时,我在一些旧的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

0
投票

说真的,有时候我讨厌M $。

两个子报表的存储过程仅带回4个字段,其中一个我什至不使用(区ID)。 该报告在一个表中只有三个文本框,一个只是文字。 另外两个是

=Description + " (" + code + ")"

=DistCounts

绝对没有这些。

最后,我们采用了可行的方法,将XML复制到新的子报表中,更改了数据集,字段名称和文字,然后重新部署,该方法就可以了。 比较一个可以正常工作的系统和不可以正常工作的系统。 啊!

就像我说的,两者都使用相同的输入参数,存储过程只是在计算不同的字段。 在野鹅追逐上浪费了一天多,而我们仍然不知道出了什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.