对于以下查询
SELECT *
FROM (VALUES ('England','London',9787426),
('England','Manchester',2553379),
('Scotland','Edinburgh',452194),
('Scotland','Glasgow',1168270),
('Wales','Cardiff',447287)) V(Country, City, Population)
从 "报告向导 "中创建报告(有以下选项)。
构建一个类似于
(罗伯特-布鲁克纳称之为 "无头") 此处)
当面对这样的报表结构时,有什么简单的方法可以将其转换为下面的格式(国家标题在tablix主体之外)?
即不需要删除现有的组,然后重新添加?
方法0。 如果有一个现有的表(或使用向导),就会有 没办法 比你解释的方法更有效。通过删除和读取组。
方法1: 你可以设计tablix从 挠 在报表设计器中,添加tablix,设置数据集并添加组。添加tablix,设置数据集并添加组。
方法2.在报表设计器中添加tablix,设置数据集,添加组。 另一种方法是修改xml代码(RDL)。
对你的设计进行清理。去掉第二行,将国家数据元素添加到详细行中,这样你的设计看起来就像这样,没有垂直合并和虚线。
要想通过xml代码添加组头,你需要将组头移动到你想要的位置。TablixCell
从 TablixRow
到 TablixRowHierarchy
.:
切断 TablixCell
碎片 TablixRow
->TablixCells
含有您的国家数据,并将其保存在另一个记事本中。
删除相应的 TablixColumn
在...之下 TablixColumns
重命名TablixCell
结点至 TablixHeader
添加 <Size>1in</Size>
残缺 TablixHeader
和 CellContents
粘贴 TablixHeader
碎片 TablixRowHierarchy -> TablixMembers -> TablixMember
其间 SortExpression
和 TablixMembers
.
<TablixMember />
碎片 TablixColumnHierarchy
. 它应该与报告中的列数相匹配,除了虚线前的列(或虚线组前的列)。TablixHeader 元素定义了该组的头。
TablixCells 元素定义了Tablix主体部分一行中的单元格列表。
以下是RDL规格的链接. 它没有2012年的版本,但2008年的版本看起来还是不错的。
这是RDL规范中Tablix的模式图。当你的数据在TablixHeader中时,列将是垂直合并的,并且虚线在Tablix行外。当它在TablixCells中时,它是TablixRow的一部分。
似乎没有一个简单的方法来添加 "TablixHeader"。类别列 的父组。
我所知道的最简单的方法是在你想要回列的行组中添加一个相同字段的父组。这将创建一个新的类别列,你可以删除旧的分组。只是只删除组,而不是相关的单元格&列。
在你的情况下,你会在 "父组 "上添加一个父组。Country
字段到现有的 Country
分组。现在您应该恢复了国家的类别列,您可以删除原来的 Country
分组。
我将按照以下步骤进行。
这是最终的输出。