如何在报表换行中创建列和/或在多列报表中打破?

时间:2010-11-19 22:48:12

标签: reporting-services

我有一个报告,我已将Columns属性指定为3。

我希望单个查询中的数据分布在这些列中。

然而,当我打印报告时,我只得到一个跨越多个页面的列,直到行用尽数据。

如何告诉rs我希望数据包含在接下来的两列中?

更新:好的,在technet上找到一个link,让我更好地解释多列(例如时事通讯风格):

  

多列,简报式报道   显示多个报告数据   相邻列。时事通讯风格   布局适用于整个报告。   定义多个列时   在报表中,报表设计器   计算列的宽度   报告,报告的宽度,   和之间的空间宽度   列数基于   列。然后它显示减少   设计表面,以便您可以放置   报告上的报告项目   适合列。请注意   必须是整个报告的布局   放置在简化的设计表面上。   显示其他列   你可以验证的数量   您定义的列将适合该页面   尺寸。你可以调整页面   尺寸,填充和边距以适应更多   页面上的列。

     

仅支持PDF和图像渲染器   时事通讯报道。

我仍然没有弄清楚如何制作列包装......但我会在周一进一步研究。

2 个答案:

答案 0 :(得分:0)

我通过以下方式解决了我的问题:

  1. 将3 Tablix放入我的SubReport
  2. 在我的SQL结果中添加Count Aggregate
  3. 在Tablix过滤器中执行%计算
  4. 例如,Tablix有一个像这样的过滤器公式:

    =IIF(Fields!MaxRowNumber.Value <= 10, 10, Fields!MaxRowNumber.Value * .4)
    

    因此,如果只返回十行,则在第1列中显示这十行。如果出现超过十行,则将40%的结果放在Tablix 1中。

    我对Tablix 2和3做了类似的计算,分别在每个Tablix中显示30%。

    感觉有点像黑客......但它确实有效。

答案 1 :(得分:0)

因此,一种方法是将多个tablix与用于检查RowNumber并相应地在每个表中显示特定记录的过滤器一起使用。

另一种方式称为通讯样式的报告 (link)。仅当报告导出为PDF或图像时,才会保留此格式。仅当在Visual Studio的“预览”选项卡上选择“打印布局”时,才可以预览。这是一个示例:

  1. 使用以下代码创建新报告。数据集:SELECT ID,NAME FROM TABLENAME
  2. 将新表添加到报告中,然后选择ID和Name作为列
  3. 单击tablix,然后按F4键编辑tablix属性。在属性窗口中,更改大小-将宽度设置为2in
  4. 单击报告页面边界之外的报告区域,然后按F4键编辑报告属性。在属性窗口中,将“列”值更改为3,将列间距值更改为0.1
  5. 在报告滚动到右侧时,您会注意到有2个新列(因此报告上总共3列-因为您在上面的步骤4中选择了3列)。现在,单击第2列开始处的页边距,然后将其向左进一步拉至使其接近第1列。这只是为了减少对大页面尺寸的需求。
  6. 右键单击报告页面边界之外的报告区域,然后选择“报告属性”。更改页面大小-将宽度设置为10in
  7. 预览报告。现在选择“打印布局”选项卡以查看结果。仅当将报告导出为PDF或图像时,才会保留此格式。

如第5点和第6点所述-由于报表主体会分成多列,因此您必须确保页面大小至少等于->([原始报表主体大小乘以列数] +所有列间距值)。否则,看起来会很乱。