【问题标题】:how to generate a report with some filter criteria in SSRS?如何在 SSRS 中生成包含某些过滤条件的报告?
【发布时间】:2013-03-08 17:35:20
【问题描述】:

我需要一份报告来确定哪个帐号与特定的汽车 VIN 对应。 该报告需要一些类似于 t-sql 中的“Like”的搜索或过滤条件。例如,如果某人查找以“231Z9”结尾的 VIN,那么他/她需要一些东西来过滤 VIN 列“VIN Like ‘%231Z9%’”,以查看是否有任何匹配项。 它还需要按客户名字和客户姓氏进行过滤。最后, 过滤器不应该嵌入到 sql 中,并且在应用时需要是“OR”而不是“AND”。 任何建议将不胜感激。谢谢

【问题讨论】:

  • 你试过什么?您是否尝试在查询中使用将成为 LIKE 一部分的参数?

标签: sql reporting-services filter report


【解决方案1】:

编写一个存储过程,它将为您返回报告的结果数据集。向stores 过程提供可以在SSRS 报告中查看并可以嵌入到SQL 中的参数。

要为报告指定相同的参数,您可以使用 SSRS 中的报告参数选项

【讨论】:

    【解决方案2】:
    1. 为 VIN 创建一个文本变量

    2. 为名字创建一个文本变量

    3. 为姓氏创建一个文本变量

    4. 使用谓词设置数据集

      Select (things)
      from (object)
      Where VIN like '%' + @VIN + '%' or
           FirstName like '%' + @FirstName + '%' or
           LastName like '%' + @LastName + '%'
      

    【讨论】:

    • 嗨 djangojazz,非常感谢您的建议。这是我到目前为止所做的 CREATE PROCEDURE Account_VIN_Lookup VIN int, FirstName varchar(50), LastName varchar(50) As Begin select (my columns) from (my tables) Where VIN like '%' + VIN + '%' or FirstName like '%' + FirstName + '%' or LastName like '%' + LastName + '%' 。我认为这不会起作用,因为我没有将我的变量提交给该列。你介意教我吗。谢谢
    • 我会坚持选择我给你的选择,用你想要的列替换我的(事物),用你的表、视图或表函数替换(对象)。恕我直言,通过创建教学过程增加另一层复杂性是过分的。
    【解决方案3】:

    我假设“过滤器不应该嵌入到 SQL 中”是指条件必须是参数化的,而不是硬编码的。存储过程对此很有用。

    如果您创建检索所需数据的参数化存储过程,请在使用该存储过程作为源的新 SSRS 报告中设置 DataSet。将自动生成报告参数以对应存储过程参数。您可以编辑报告参数(用于用户友好的标签,以控制它们是可选的还是必需的等)

    这是假设您的报告将通过网络访问。如果您的报告将成为客户端应用程序(而不是 Web 应用程序)的一部分,那么您实际上有更多可用选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多