Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 Tablix头在新页面上不重复,当子报表导致分页符时_Sql Server 2008_Reporting Services - Fatal编程技术网

Sql server 2008 Tablix头在新页面上不重复,当子报表导致分页符时

Sql server 2008 Tablix头在新页面上不重复,当子报表导致分页符时,sql-server-2008,reporting-services,Sql Server 2008,Reporting Services,我已经和SSR在一件简单的事情上争论太久了。我希望有人能帮我找到解决办法 我有一个报告,其中有许多配置文件,每个配置文件都有大量的数据部分。数据部分(各种表格和图表)彼此之间没有任何关联,除了它们“键”回父配置文件id之外 目标(看起来很简单)是在每个页面上都有一个包含概要信息的标题,然后将数据部分(每个部分的格式完全不同)布置好 我们遇到的第一个问题是,出于某种原因,SSRS2008不允许tablix单元格包含另一个具有不同数据集的tablix(我无法理解为什么它不能只要求基于父分组的过滤器)

我已经和SSR在一件简单的事情上争论太久了。我希望有人能帮我找到解决办法

我有一个报告,其中有许多配置文件,每个配置文件都有大量的数据部分。数据部分(各种表格和图表)彼此之间没有任何关联,除了它们“键”回父配置文件id之外

目标(看起来很简单)是在每个页面上都有一个包含概要信息的标题,然后将数据部分(每个部分的格式完全不同)布置好

我们遇到的第一个问题是,出于某种原因,SSRS2008不允许tablix单元格包含另一个具有不同数据集的tablix(我无法理解为什么它不能只要求基于父分组的过滤器)。针对此缺点的建议解决方法是将所有数据合并到一个巨大的数据集中(此处不可能,数据部分太多且变化太大),或者嵌入子报告并传递参数。虽然选项2增加了打印大量配置文件所需的“工作量”,但我们继续实施了这一点,它确实起了作用

问题出现在主tablix(包含子报表的tablix)上,该tablix的静态行标题组设置为“RepeatOnNewPage=true”。此设置允许页眉根据需要显示在每页上。。。除了子报表之外,子报表跨越多个页面,其中页眉未正确填写

由于某些原因,当子报表跨越多个页面时,父tablix的标题不会重复!这让我发疯,因为SSRS中的几个糟糕的设计决策似乎让我陷入了无法创建我想要的报告的境地。。。Header可以在没有子报表的情况下工作,但我需要子报表才能将数据节“连接”到概要文件

这似乎是一个简单而常见的要求。。。毕竟,这是一个从已有数十年历史的报告系统迁移而来的报告。我搜索了StackOverflow和Google但没有成功。。。我似乎有很多关于分页符的问题/答案,但没有任何建议可以通过子报表解决此问题


我在发这个,以防我遗漏了什么。如果有人有任何建议,我们将不胜感激。

我们已经解决了我们的问题。。。虽然不是以最理想的方式

页眉(主报告的页眉,而不是子报告的页眉)似乎是保持页眉部分一致性的唯一方法

我们在很大程度上基于以下博客帖子实施了一个解决方案:

我们在博客文章中稍作修改,从方法中删除了“id”,并添加了一个GUID,以确保即使用户同时运行多个报告副本,报告值也不会混淆。(在使用共享变量时,请记住,它们对于在报表服务器上跨执行实例和跨用户运行的报表是全局的,因此在使用它们时需要非常小心!)

在报告正文中,我们有一个隐藏的文本块,它调用:

=Code.SetValue("xxx",Fields!Field1.Value) & Code.SetValue("yyy",Fields!Field2.Value)
在报告页面标题中,我们将其引用为(例如):

这是因为正文是在页眉之前计算的,即使对于第1页也是如此

尽管如此,考虑到微软多年来对该产品的开发,最终还是对该产品进行了黑客攻击!为什么我们不能有嵌套的tablix和更易于使用的标题是我无法理解的。。。同样,这是从90年代初的一个项目升级报告,该项目毫无问题地完成了所有这一切。至少,给我们提供可以在处理报告时检索和设置的报告变量

不管怎样,事情就是这样。。。我们已经用共享变量测试了这个解决方案,它似乎运行得很好。我们将运行压力测试,以确保它的正确实施,如果我们发现任何进一步的问题,我会在这里发布一些东西


(如果有人知道其他方法来获得页面上一致的标题行,即使有高度较大的细节行,也请分享…

我也遇到了同样的问题。我发现解决这个问题的方法是对数据进行非标准化,添加一个“记录类型”字段来标识行是父行还是子行

我的tablix中有两个子表,都显示链接到外部分组的详细数据。如果我将子表的标题设置为在每个页面上重复(使用高级箭头>静态属性>KeepTogether=True,KeepWithGroup=After,RepeatOnNewPage=True),则其中一个子表将正确显示,但是父表的重复标题将消失

长话短说,这是一个非常烦人的问题。解决方案很简单,它对我有效,但可能不适用于所有人

下面链接的是一个连接到本地主机的SSRS2008示例RDL,其中有一个我遇到的问题示例,以及我实现的解决方案。如果您觉得有用,请随意使用

(我本来会把它贴在这里的,但似乎代码块的堆栈溢出失败了)


在每页上重复列标题的一种非常简洁的方法


在实施客户对SSRS报告的要求时,我们遇到了完全相同的问题, 并且尝试了很多事情,结果都失败了

就我们而言, 主报表有4个子报表。每个子报表都应在新页面中启动。而且,当新的子报表开始时,应该根据当前页面正文中的子报表动态更改页面标题

另外,子报告3中的一个子报告还有另一个案例。基本上,主报告是基于经销商级别运行的。但客户希望为每个与@Dealer参数相关的子经销商运行SubReport3。此外,客户希望在SubRep内的新页面中查看每个子经销商数据
=Code.GetValue("xxx")
=ReportItems!Tablix1_HiddenTextbox1.Value IS NOTHING