前向依赖在SSRS中无效。

51

我在创建SSRS报告时遇到了问题。

错误提示:

Error 1 [rsInvalidReportParameterDependency] 报告参数“COUNTRY”具有依赖于报告参数“COUNTRY”的DefaultValue或ValidValue。 正向依赖关系无效。 C:\ Users \ wiksat \ Desktop \ New Folder \ New folder \ Visual Studio 2008 \ Projects \ Report Project2 \ Report Project2 \ matrix_cascading.rdl 0 0

现在我应该怎么做?有什么建议吗?

7个回答

101

出现此错误的另一个原因是报表参数的顺序不正确。例如,如果您有以下内容:

@Param1
@Param2
@Param3

如果您在填充@Param1的查询中尝试使用@Param3,它会抛出这个错误。您需要使用报表设计器顶部的上/下箭头适当地排序参数。


1
报表服务首先按照参数设置的顺序执行查询。因此,如果给定参数的数据集需要第二个参数的值,则需要确保该第二个参数在参数列表中位于第一个参数之上。 - Héctor Espí Hernández

19

我曾经也遇到过同样的问题,并且发现将参数在报表参数窗口中上移,错误就消失了,报表也正常显示。


1
当我实现一个单下拉列表时,这对我很有用,它是由我的代码传递的值驱动的。我首先添加了下拉列表和数据集,然后再添加参数。这种顺序将传递的参数(param1)添加到需要它的参数(param2)之后。将param1移动到param2之前可以解决错误。 - fujiiface
1
要将报告参数上移,请选择它,然后使用CTRL +向上箭头。 - CowboyBebop

13

似乎你已经设置了一个报告参数,该参数引用了自身,换句话说,这是只有一个参数的“级联参数”。这是行不通的。

要显示国家列表,你的报表数据集应该类似于:

select CountryID, CountryName from Country

对于你的参数的可用值,CountryID将成为Value字段,而CountryName将成为Label字段。

如果您有兴趣使用级联参数,请参考:http://msdn.microsoft.com/en-us/library/aa337169.aspx


+1. 这对我来说特别有用,因为它与级联参数的链接相关。 - Colin

7

我自己造成了这个问题 - 我试图使用相同的数据集来填充参数值,并且这个相同的数据集也用于查询结果。以前它运行得很好,但那时我有另一个数据集用于这个参数。在我的伟大智慧中,我决定删除这个“无用”的数据集,结果引发了问题。经典的先有鸡还是先有蛋的问题 :)


2
我也遇到了这个问题,为了让其他人清楚,你需要两个数据集返回相同的查询,一个未经过参数源筛选,另一个通过参数筛选后用于报告。 - Andrew Grothe

4
当你在报表级别添加了参数的默认值,并且在用于检索数据的存储过程中声明了该参数时,就会发生此错误。
解决方案:
1.尝试删除在存储过程中声明的参数,并使用箭头键在报表中将参数向上或向下移动。
2.删除报表级别的默认值,而是将它们添加到存储过程中。

0

创建一个新的数据源 从新的数据源中读取报告所需的参数


0

在编程中,你必须考虑依赖关系来进行排序

  1. 1个参数A
  2. 2个参数B
  3. 3个参数C

这意味着C依赖于B,而B又依赖于A。这个顺序必须在参数窗口中正确排列,否则会出现错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接