如何在 Visual Studio 2008 中将下拉列表添加到 rdl 报告

How to add dropdown to an rdl report in Visual Studio 2008

我需要使用 Visual Studio 2008 向我的 .rdl 报告添加一个下拉框。

这是如何实现的?

是这样实现的...

添加新数据集:

  • 右键单击 'datasets' 并添加新数据集
  • 命名
  • Select 'Use a dataset embedded in my report'
  • 将returns单列列表的查询粘贴到查询框中
  • 点击确定

添加新参数:

  • 右键单击参数并添加新参数

设置:

  • 可用值
  • 从查询中获取值

现在:

  • Select 数据集、值字段和标签字段
  • 对默认值执行相同的操作

现在,更改主数据集查询(右键单击并编辑)以包含参数,即@?????在哪里 ????是您的数据集的名称。

例如对于名为 'Name' 的数据集,您可以将查询更改为

SELECT * FROM tbl WHERE Name = @Name

...这可以重复任意多次:预览、保存、关闭和部署。

编辑。

如果您启用 'allow to select multiple values',则参数将是逗号分隔的值列表。

为此,您需要如下查询:

SELECT RTRIM(LTRIM(Item)) AS Name INTO #Names FROM dbo.f_split(@Name, ',')

SELECT * FROM tbl WHERE Name IN ( SELECT Name FROM #Names )

注意:

使用以下内容创建 f_split 函数:

创建函数 [dbo].[f_split] ( @ItemList NVARCHAR(4000), @delimiter CHAR(1) ) RETURNS @IDTable TABLE(项目 VARCHAR(100))
作为

开始
声明 @tempItemList NVARCHAR(4000) SET @tempItemList = @ItemList

DECLARE @i INT    
DECLARE @Item NVARCHAR(4000)

SET @i = CHARINDEX(@delimiter, @tempItemList)

WHILE (LEN(@tempItemList) > 0)
BEGIN
    IF @i = 0
        SET @Item = @tempItemList
    ELSE
        SET @Item = LEFT(@tempItemList, @i - 1)
    INSERT INTO @IDTable(Item) VALUES(RTRIM(@Item))
    IF @i = 0
        SET @tempItemList = ''
    ELSE
        SET @tempItemList = RIGHT(@tempItemList, LEN(@tempItemList) - @i)
    SET @i = CHARINDEX(@delimiter, @tempItemList)
END 
RETURN

结束