【问题标题】:Crystal sub report stored procedure parameter水晶子报表存储过程参数
【发布时间】:2011-10-12 16:29:43
【问题描述】:

我正在使用 Crystal 报表设计器版本 11。

我有一个调用子报表的报表,并且我已经设置了链接参数。 子报表正在使用存储过程。

我看不到如何将传递给子报表的参数输入到返回数据的存储过程中。

【问题讨论】:

标签: crystal-reports


【解决方案1】:

在考虑和搜索之后,我收回了我原来的答案。

一旦您为 SQL 命令定义了参数,它们就可以作为来自报表外部的参数可见/可用。当您设置从调用报表到子报表的链接时,子报表参数将可见且可用,您可以将主报表中的字段链接到这些参数。

最近在某人的博客中发表的一篇文章涵盖了相同的活动,其中包含由 SQL 命令驱动的子报表 Using SQL Commands and Parameters

我希望这会有所帮助,我希望我最初的回答不会对您的报告进度产生负面影响。


原始答案 您不能将参数从报表对象传递给存储过程。当您在定义报表时首次引用 SP 时,存储过程将响应 CR Designer。 CR 仅从数据源接口创建指向存储过程参数的链接,而不是从报表创建链接。

您将在参数对象中看到一个条目,但它是只读的——您可以将它放在显示部分,但不能从报告公式、传递的值等中设置它。使用公式处理数据在调用存储过程之前将不起作用,也不会尝试通过主报表中的子报表链接传递数据。

使用其他设计工具,您可以拥有控制数据源接口并处理传入参数的数据的代码,但在 CR Designer 中,您几乎只剩下最少的选项。您可以右键单击参数并执行设置默认值、设置提示文本、设置格式的模式/掩码等操作,仅此而已。

【讨论】:

  • 我会收回我之前的答案...我会发布一个更新的答案。
【解决方案2】:

我知道这个问题很老,但在其他地方没有找到令人满意的答案。我发现的简单解决方案是在水晶命令中实现存储过程,就像任何其他命令 sql 一样。无论如何,我都无法让参数显示在左下角的下拉菜单中。类似于下面的东西,其中 ZNG_PROACTIVE_STREET_SWEEPS 是存储过程的名称,两个参数是存储过程所接受的。

[dbo].[ZNG_PROACTIVE_STREET_SWEEPS] @StartDate ={?begindate}, @EndDate = {?enddate}

【讨论】:

    【解决方案3】:

    这真的很晚了,但我正在研究同样的问题(我认为)并找到了解决方案。在主报表中,右键单击子报表和“更改子报表链接”。

    在顶部,在主报告中选择您的参数,然后单击向右箭头以添加到“要链接到的字段”。在窗口底部的子报表部分,更改左侧的“要使用的子报表参数字段”下拉菜单。它默认在子报告中创建一个新参数,您不想这样做。您想使用现有参数(使用存储过程自动添加)。在下拉列表中选择由存储过程自动创建的参数。

    这样做意味着您可以在主报表中拥有一个可以自动传递给子报表的参数,这意味着您不必为两个单独的参数输入相同的值。

    我希望这会有所帮助。它对我很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      相关资源
      最近更新 更多