SSRS子报告未在生产中显示

时间:2019-10-02 18:22:54

标签: reporting-services ssrs-2008 ssrs-2012

有时候,我真的很讨厌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记事本(另一个有用的工具)打开了主报告文件,发现设置方式没有真正的差异。

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

我打开了项目文件,但在那儿没有发现感兴趣的东西。

我什至按照其他建议将外部工具添加到clear local report cache中。

我很困惑。我敢肯定这已经遇到过。有指针吗?

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

2 个答案:

答案 0 :(得分:0)

这可能是旧的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

答案 1 :(得分:0)

严重的是,有时我讨厌M $。

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

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

=DistCounts

绝对不是这些。

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

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