如何在 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
结束
我需要使用 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
结束