如何在Visual Studio 2008中向rdl报表添加下拉列表

时间:2015-09-18 15:21:29

标签: report rdl

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

这是如何实现的?

1 个答案:

答案 0 :(得分:0)

它是这样实现的......

添加新数据集:

  • 右键点击数据集'并添加新数据集
  • 将其命名为
  • 选择'使用我的报告中嵌入的数据集'
  • 粘贴查询,将单个列列表返回到查询框
  • 点击“确定”

添加新参数:

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

集:

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

现在:

  • 选择数据集,值字段和标签字段
  • 对默认值执行相同操作

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

e.g。对于名为' Name'的数据集,您可以将查询更改为

SELECT * FROM tbl WHERE Name = @Name

...这可以根据需要重复多次:预览,保存,关闭和部署。

EDIT。

如果您启用了“允许选择多个值”'那么参数将是以逗号分隔的值列表。

为此,您需要查询:

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(Item VARCHAR(100))
AS

BEGIN
    DECLARE @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

结束