【问题标题】:I am getting a Parameter error when previewing my report预览报告时出现参数错误
【发布时间】:2019-08-12 14:46:54
【问题描述】:

enter image description here我创建了一个查询并在查询中添加了日期参数。当我运行报告时,我收到错误消息

"报告参数 'StartDate' 具有 DefaultValue 或 ValidDate 这取决于报告参数“StartDate”。向前 依赖项无效。

我使用相同的数据库和相同的参数编写了大量报告,并且一直有效。我现在在另一家公司工作,它使用与我以前的雇主相同的 ERP 软件,所以我不确定有什么区别。我正在使用 Visual Studio 2015 和 SQL 2014

WHERE (invoicedate BETWEEN @StartDate AND @Enddate)

我的参数设置设置为使用常规下的日期/时间,以及从可用值下的查询中获取值。没有指明默认值。

【问题讨论】:

  • 听起来像是级联问题。您确定您报告的参数顺序与存储过程(或 SQL 脚本)中的顺序匹配吗?

标签: sql date dependencies parameter-passing forward


【解决方案1】:

我相信这是一个与级联相关的问题。确保变量的类型匹配,因为它们都应该是datedatetimestring。另外,请这样做:

1- 确保报告中参数的顺序与 SQL 脚本中的顺序完全匹配。示例:如果报告中有@param1=startDate@param2=EndDate,则确保脚本首先将startDate 作为@param1,然后将EndDate 作为@param2。

2- 如果 EndDate 基于 StartDate(如 EndDate=DateAdd(month,2,StartDate),请确保在 EndDate 之前选择 StartDate。

3- 删除 SSRS 中定义的默认值(如果有),但在您的 SQL 脚本中设置它。

另外,如果您使用“级联参数”,这是一个很好的来源:

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/aa337169(v=sql.105)

【讨论】:

  • 这是一个确定的日期。它只有一个列,即发票日期,所以基本上参数允许用户选择第一个发票日期和最后一个发票日期。即获取一个月、一年、一天等的销售额。开始日期在列表中的结束日期之前,并且没有默认值。
  • @Jetta 你可以尝试在 SQL 服务器上运行 SQL Profiler,启用错误列,然后执行 SQL 报告吗?您可以在 Profiler 上看到查询,然后尝试自己在 SQL Window 上运行相同的查询,您将能够调试错误。你以前用过 SQL Profiler 吗?
  • 另外,能否请您发送您的 SSRS 设计的屏幕截图,显示所有参数?您是否尝试更改报告中的参数顺序并执行报告?
  • 我添加了一个屏幕截图,虽然它可能不是您想要的。在分析器中,报告没有返回任何错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-16
  • 2015-05-10
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
相关资源
最近更新 更多