Crystal子报告存储过程参数

时间:2011-07-25 15:04:28

标签: crystal-reports

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

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

我无法看到如何将传递给子报表的参数提供给返回数据的存储过程。

3 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:1)

我知道这个问题已经过时但在别处找不到令人满意的答案。我找到的简单解决方案是在crystal命令中实现存储过程,就像任何其他命令sql一样。无论如何,我无法将参数显示在左下角的下拉列表中。类似于下面的内容,其中ZNG_PROACTIVE_STREET_SWEEPS是存储过程的名称,两个参数是存储过程所接受的内容。

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

答案 2 :(得分:0)

在考虑然后进行一些搜索之后,我收回了原来的答案。

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

某人博客中的最​​新帖子涵盖了与SQL命令驱动的子报表相同的活动 Using SQL Commands and Parameters

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


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

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

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