Reporting services 能够在ssrs中选择多个日期(参数)

Reporting services 能够在ssrs中选择多个日期(参数),reporting-services,Reporting Services,是否有一种方法可以让我选择多个日期,并将其作为存储过程的参数传递给ssrs中的报告。为参数选择“允许多个值”将显示一个下拉列表。但是,我是否可以获得日历控件,在该控件中可以选择多个日期。SQL Server Reporting Services(自2008 R2版起)没有内置此功能。我还没有看过2012年,但如果它能提供这样的机会,我会感到惊讶 (您始终可以使用ReportViewer控件、URL访问或其他访问方法构建自己的界面来显示报告。)正如Jamie所说,您不能真正做到这一点。根据我的经验

是否有一种方法可以让我选择多个日期,并将其作为存储过程的参数传递给ssrs中的报告。为参数选择“允许多个值”将显示一个下拉列表。但是,我是否可以获得日历控件,在该控件中可以选择多个日期。

SQL Server Reporting Services(自2008 R2版起)没有内置此功能。我还没有看过2012年,但如果它能提供这样的机会,我会感到惊讶


(您始终可以使用ReportViewer控件、URL访问或其他访问方法构建自己的界面来显示报告。)

正如Jamie所说,您不能真正做到这一点。根据我的经验,我遇到的“最佳”解决方法是将参数值作为一个文本字符串传递,并使用拆分函数在存储过程中解析WHERE条件

    USE [YOUR DATABASE]
    GO

    SET ANSI_NULLS ON
    GO
     SET QUOTED_IDENTIFIER ON
    GO

   CREATE FUNCTION [dbo].[split](
      @delimited NVARCHAR(MAX),
      @delimiter NVARCHAR(100)
    ) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
    AS
    BEGIN
      DECLARE @xml XML
      SET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>'

      INSERT INTO @t(val)
      SELECT  r.value('.','varchar(MAX)') as item
      FROM  @xml.nodes('/t') as records(r)
      RETURN
      END
那么存储过程中的where条件如下

 where  convert(varchar(10), cast([YOURDATE] as date), 101)  IN (select val from dbo.split(@Paramater,','))
我希望这有帮助

 where  convert(varchar(10), cast([YOURDATE] as date), 101)  IN (select val from dbo.split(@Paramater,','))