报告服务在长列表参数中搜索

时间:2014-12-12 11:32:27

标签: sql-server-2008 reporting-services parameters reporting

我有一个问题要问你。 我需要一个想法来搜索sql报告服务中的长参数列表中的项目。 例如,在要选择的参数列表中有一些数值,我必须选择其中一些。找到这些值存在问题,因为列表太大。 通过前几个字母搜索的东西会很棒,但可能是不可能的。 现在我真的不知道如何通过智能方法从参数列表中找到几个感兴趣的值。 请帮忙。

1 个答案:

答案 0 :(得分:1)

根据您的要求,我发现了一篇很棒的文章,详细解决了这个问题:

在数据库中创建一个函数。

CREATE FUNCTION [dbo].[SplitParameterValues] (@InputString NVARCHAR(max), @SplitChar VARCHAR(5))
  RETURNS @ValuesList TABLE
  (
  param NVARCHAR(255)
  )
  AS
  BEGIN
  DECLARE @ListValue NVARCHAR(max)
  SET @InputString = @InputString + @SplitChar
  WHILE @InputString!= @SplitChar
  BEGIN
  SELECT @ListValue = SUBSTRING(@InputString , 1, (CHARINDEX(@SplitChar, @InputString)-1))
  IF (CHARINDEX(@SplitChar, @InputString) + len(@SplitChar))>(LEN(@InputString))
  BEGIN
  SET @InputString=@SplitChar
  END
  ELSE
  BEGIN
  SELECT @InputString = SUBSTRING(@InputString, (CHARINDEX(@SplitChar, @InputString) + len(@SplitChar)) , LEN(@InputString)-(CHARINDEX(@SplitChar, @InputString)+ len(@SplitChar)-1) )
  END
 INSERT INTO @ValuesList VALUES( @ListValue)
  END
  RETURN
  END

使用获取可用值的过程,请参阅以下查询:

create PROCEDURE sp (@keyword nvarchar(50))
 AS
 SELECT     col
 FROM         table d
 inner join (SELECT [param] FROM SplitParameterValues (@keyword,',')) s on d.col like (s.[param]+'%')

然后创建一个用于提供关键字的参数。然后根据关键字添加另一个级联参数。有关详细步骤,请阅读以下链接中的源文章:

[Forum FAQ]How do I add a search feature in the parameter with long drop down list?