0

我是报告服务和在 aspx (C#) 中使用报告查看器控件的新手。我目前正在开展一个项目,我需要根据地区填充报告。我正在使用 SQL Express 2008 R2。

我在报告中创建了一个区域参数,该参数使用以下查询填充了数据集:

在此处输入图像描述

SELECT RegionGUID, RegionDescription
FROM   utRegion

然后,这将创建一个具有可用值的 DropDownList,然后我在我的主报表数据集中使用它来根据所选区域获取我的结果。

在此处输入图像描述

我遇到的问题是,我的应用程序中的用户被分配到区域,并且根据谁登录到我的应用程序应该限制哪些区域可以通过报告服务使用。我可以通过报表查看器将参数从我的应用程序传递到报表服务中的报表,但是当我尝试向我的数据集添加一个用于填充区域 DropDownList 的参数时,我在部署时收到以下错误:

报告“/报告名称”的定义无效

预览时出现以下错误:

报告参数“RegionGUID”具有取决于报告参数“RegionGUID”的 DefaultValue 或 ValidValue。前向依赖项无效。

我对 region 参数的查询:

SELECT RegionGUID, RegionDescription
FROM   utRegion
WHERE  (RegionGUID = @RegionGUID)
4

2 回答 2

2

我在以下站点上找到了我的问题的解决方案: http ://www.sqlservercentral.com/Forums/Topic306513-150-1.aspx

正如 Jason Selburg 在上面的链接中所说,参数列表的顺序似乎很重要。

为了使我的应用程序正常工作,我做了以下工作:

  1. 删除了我现有的 RegionGUID 参数
  2. 添加了一个名为 UserAssignedRegion 的新参数,其可用值未指定,可见性为 hidden
  3. 重新添加了我的 RegionGUID 参数(可见性:可见)并将其设置为使用以下查询:

询问:

 SELECT RegionGUID, RegionDescription
 FROM utRegions
 WHERE RegionGUID = @UserAssignedRegion
于 2012-11-20T11:51:57.737 回答
0

您应该检查@RegionGUID参数的属性,特别是 DefaultValue 或 ValidValue 选项卡。两者之一或两者都可能取决于在其查询中使用参数本身的数据集。在使用参数本身时,您无法查询参数的默认值或有效值。

可用值的典型查询是:

SELECT DISTINCT  RegionGUID -- For value
                ,RegionDescription -- For label
FROM utRegion
-- No where clause, you can't or need to use the parameter itself

默认值的查询可能是相同的(可能只使用 First(...) 值)、NULL 或基于不同的数据集(也不使用参数本身)

于 2012-11-20T11:20:15.910 回答