我是SSRS的新手,请原谅我的新手。我正在使用 Sql Server 2008 ,我想在报告的多列中显示一个表中的单个字段。就像我打印标签一样。我怎样才能做到这一点?
例:
而不是印刷:
安德烈
奥斯汀
芭芭拉
鲍勃
布鲁诺
凯茜
CHIS
...
我想打印列(比如3个固定列):
编辑:如果我运行报告并点击“打印布局”按钮,我可以看到多个列。我可以将此模式设置为默认模式吗?
答案 0 :(得分:13)
对于标签的水平布局......
一种选择是在报表或正文元素上使用columns属性。 这并不总是正确显示在reportviewer上。我注意到即使它在您的IDE上正确显示以及导出为PDF时也是如此。在报告查看器中,它只显示一列。此外,它从上到下依次蜿蜒标签,然后从左到右。
一种选择是每3行使用一个矩阵和组(如果你想要3列)。
这个有点复杂。
我选择的解决方案是在页面上放置3个垂直列表。在每个列表中放置相同的标签。返回数据集中的行号。然后只需过滤模3上的每个列表
例如
结果集
RIndex Fname
1 abe
2 burt
3 fred
4 george
过滤表达式
list 1 -> =Fields!RIndex.Value mod 3 = =1
list 2 -> =Fields!RIndex.Value mod 3 = =2
list 3 -> =Fields!RIndex.Value mod 3 = =0
结果
Abe Burt Fred
George
答案 1 :(得分:6)
我使用的方法与Vern建议的方法有点相似但差别很大,值得一提。
您可以直接在查询中将ROW_NUMBER与模数(%)运算符组合在一起,以构建应显示记录的列号。这是一个在考虑群组的情况下生成一个的示例:
declare @numberOfColumns int = 4;
select dpc.EnglishProductCategoryName, dp.ProductAlternateKey
, (ROW_NUMBER() OVER (
PARTITION BY dpc.EnglishProductCategoryName
ORDER BY dp.ProductAlternateKey) + @numberOfColumns - 1) % @numberOfColumns + 1
as DisplayColumn
from dbo.DimProduct dp
inner join dbo.DimProductSubcategory dps on dps.ProductSubcategoryKey = dp.ProductSubcategoryKey
inner join dbo.DimProductCategory dpc on dpc.ProductCategoryKey = dps.ProductCategoryKey;
为了显示这个,我使用嵌套表,然后在DisplayColumn上过滤。
阅读以下文章了解所有详细信息:Creating Multiple-Column Reports
答案 2 :(得分:3)
使用Visual Studio中的“报告”菜单,然后选择“报告属性”。您可以在“布局”标签中设置列。
有关详细信息,请参阅此有关简报式报告的msdn文章:http://msdn.microsoft.com/en-us/library/ms159107.aspx
此方法确实存在局限性,但在某些情况下可能不适用:
仅支持PDF和图像渲染器 时事通讯报道。