我正在SSRS 2008中创建一个"主"报告,该报告与其他人的报告进行协作.有时并非所有其他报告都是相关的,因此没有任何回报.我希望能够从主报告中排除这一点,因此它不会留下空白页面.
我知道'no-rows-message'功能,但整个页面只是"不适合这个人"并不是最好的解决方案!
基本上我正在寻找一种方法来确定子报表是否为"空"并在可见性表达式中使用它.
任何帮助都非常感谢
我从 Business Intelligence Development Studio (Visual Studio 2008) 收到了一个相当令人沮丧的错误。我有一个包含 4 个子报告的报告,这些子报告可能包含也可能不包含数据,因此它们的 HIDDEN 属性由表达式控制:
=IIF(ReportItems![SOME TEXT BOX].Value = 0, TRUE, FALSE)
Run Code Online (Sandbox Code Playgroud)
[SOME TEXT BOX] 的内容是存储过程为其各自子报表返回的行数,因此如果值为 0,则包含子报表的矩形设置为 HIDDEN = TRUE。
这适用于 4 个子报告中的 3 个,但由于某种原因,其中一个导致此错误:
[RECTANGLE CONTAINING SUB-REPORT] 的隐藏表达式包含错误:
请求类型为“System.Security.Permissions.SecurityPermission、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”的权限失败
一些谷歌搜索显示,这(显然)与访问权限有关,但大多数人似乎遇到了与 MS Sharepoint 相关的错误,并且解决方案似乎并不适用。
非常感激任何的帮助!
布赖恩
编辑:这只发生在 'ReportItems![SOME TEXT BOX].Value = 0' 返回 TRUE,即没有行时。
这个问题应该很简单,但我无法弄清楚答案,也不知道为什么我的存储过程不起作用.
CREATE PROCEDURE spTest_Delete
@ID int
AS
begin tran
declare @err int
declare @errMesage nvarchar(max)
set @errMesage = ''
set @err = 0
delete from Test
where ID = @ID
set @err = @@ERROR
set @errMesage = ERROR_MESSAGE()
if @err = 0
commit tran
else
begin
RAISERROR(N'Could not delete !Error nr: %d. Message: %s', 1, 16, @err, @errMesage)
rollback tran
end
Run Code Online (Sandbox Code Playgroud)
这个过程运行正常,但是如果对delete
语句有FK约束,它会遇到错误(这很好),我想抓住错误.
消息547,级别16,状态0,过程spTest_Delete,第12行
DELETE语句与REFERENCE约束"FK_TEstFK_Test"冲突.冲突发生在数据库"Test",表"dbo.Test",列"ID"中.该语句已终止.无法删除!
错误号:547.消息:(null)消息50000,级别1,状态16
我的消息变量总是为null,即使该delete
语句引发错误.