1

有没有一种方法可以让我选择多个日期并将其作为存储过程的参数传递给 ssrs 中的报告。选择允许参数的多个值会给出一个下拉列表。但是我可以在其中选择多个日期的日历控件吗?

4

2 回答 2

2

从版本 2008R2 开始,SQL Server Reporting Services 没有内置此功能。我没有看过 2012,但如果它提供了这个功能,我会感到惊讶。

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

于 2012-04-09T14:39:38.303 回答
0

正如杰米所说,你不能真正做到这一点。根据我的经验,我遇到的“最佳”工作是将您的参数值作为一个文本字符串传递,并使用拆分函数在存储过程中解析您的 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

您的参数在您的存储过程中将是这样的:

   @Parameter VARCHAR(200)

然后你的存储过程中的 where 条件将是这样的

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

我希望这有帮助!

于 2016-11-01T14:28:07.387 回答