SSRS多个单细胞

时间:2018-04-09 13:34:37

标签: sql-server reporting-services

我正在尝试找出向SSRS报告添加多个字段的最佳方法。 报告中有一些绘图和tablix,它们是从查询中填充的,但现在我被要求添加一个包含~20个值的表。问题是我需要将它们放在特定的顺序/布局中(我无法通过排序获得),并且它们可能需要在上面添加一个描述,它将是静态文本(而不是来自数据库)。

我想避免这样的情况:我保留20个相同查询的副本,返回单个单元格,唯一的区别在于: WHERE myTable.partID = xxxx 我有可能保留一个单一的查询,它接受一个参数,我可以通过表达式或任何其他方式指定某个参数吗? 不是经典的SSRS参数,因为我需要为每个单元格使用不同的参数... 或者我是否需要创建20个查询来获取所有这些单个值,然后将它们作为单独的文本字段放在报告上?

1 个答案:

答案 0 :(得分:0)

当我在过去完成此操作时,我会构建一个查询,通过某种键获取所需的所有数据。

例如,我可能有一个标题和值列表,每行一个,我需要显示为报告页面的一部分。数据集查询可能看起来像......

DECLARE @t TABLE(Key varchar(20), Amount float, Caption varchar(100))
INSERT INTO @t
SELECT 'TotalSales', SUM(Amount), NULL AS Amount FROM myTable WHERE CountryID = @CountryID 
UNION 
SELECT 'Currency', NULL, CurrencyCode FROM myCurrencyTable WHERE CountryID = @CountryID
UNION 
SELECT 'Population', Population, NULL FROM myPopualtionTable WHERE CountryID = @CountryID

SELECT * FROM @t

结果数据集看起来像这样。

Key           Amount    Caption
'TotalSales'  12345     NULL
'Currency'    NULL      'GBP'
'Population'  62.3      NULL

让我们称这个数据集为dsStuff,然后在每个单元格/文本框中xpression就像是。

=LOOKUP("Population", Fields!Key.Value, Fields!Amount.Value, "dsStuff")

=LOOKUP("Currency", Fields!Key.Value, Fields!Caption.Value, "dsStuff")