SSRS报告构建器2.0存储用于查询结果的STATIC DATA

时间:2013-10-03 09:02:34

标签: sql sql-server ssrs-2008

是否有人知道是否有办法将电子表格导入报表生成器2.0,然后使用我的数据集进行计算。

这似乎是一个新手问题,因为我对报告生成器的有限经验无济于事。

我想这样做的原因是,我不必让我的主数据集运行查询来计算成千上万条记录的平均值,因为它需要很长时间才能运行。通过使基准平均数据静态,我想运行我的查询并在报表生成器中进行计算,这将使其快100倍。

感谢您提前的时间

2 个答案:

答案 0 :(得分:0)

除了您要查询的其中一个数据库之外,

“报告”构建器没有可以“导入”电子表格的任何位置。并且Excel不是SSRS支持的数据源,但是可以将使用ODBC DSN的报表数据源添加到相应的Excel文件中。 (我没试过)。

但是,我可以预见到这种方法存在一些问题 - 它可能会在多个用户下感到不安,我希望您可能会发现该文件已被锁定,因此您无法轻松更新它。

可能有效的方法可能是将静态数据上传到Access数据库(通过OLE DB Jet提供程序支持),并将其作为数据源引用;但最好的方法是将静态数据导入主数据库中的表并使用它。

答案 1 :(得分:0)

您可以通过将计算字段添加到数据集(DS)来解决此问题。我假设您的静态数据可以通过至少使用一个现有字段与您的数据集相关联。使用Switch功能,您可以填充计算的字段。 Switch“计算表达式列表并返回与列表中第一个表达式相对应的Object值,该值为True。”

您可以使用以下功能:

=Switch(Fields!DsField1.Value = 2, “Your Value1”, Fields!DsField1.Value = 5, “Your Value2”, Fields!DsField1.Value = 10, “Your Value3”, ….)

如果您有任何需要检查的条件,可以在Switch语句之前添加它,如下所示:

=IIF(Fields!DsField20.Value <>1000, Switch(Fields!DsField1.Value = 2, “Your Value1”, Fields!DsField1.Value = 5, “Your Value2”, Fields!DsField1.Value = 10, “Your Value3”, ….), Nothing)

您可以在Excel工作表中使用您的值,以便更轻松地创建公式。只需在第一行创建公式,向下复制行以扩展公式,并覆盖所有值。然后从Excel中将数据列复制并粘贴到您计算的字段中。

以下是My Excel公式的示例。这是我能做的最好的,因为我无法在这里粘贴样本。您可以复制并粘贴它们,并将它们替换为您自己的值。

在单元格中 - A2 2
在单元格中 - B2 YourValue1
在单元格中 - C2 YourOtherValue1
在单元格中 - D2 YourOtherOtherValue1
在单元格中 - E2 YourOtherOtherOtherValue1
在单元格中 - F2 ="Fields!DsField1.Value ="&A2&","&""""&B2&""""&","
在单元格中 - G2 ="Fields!DsField1.Value ="&$A2&","&""""&C2&""""&","
在单元格中 - H2 ="Fields!DsField1.Value ="&$A2&","&""""&D2&""""&","
在单元格中 - I2 ="Fields!DsField1.Value ="&$A2&","&""""&E2&""""&","**

对不起,如果有什么我错过了;我急忙这样做了。