2

在 Crystal Reports 2008 中,我有一个带有 arg_beg_date 和 arg_end_date 参数的主报表。我想将这些传递给子报表,但无法传递。子报表有一个带有 SQL 查询的命令 - SELECT * FROM TXFR 以保持简单。我在名为 beg_date 和 end_date 的子报表中创建了两个参数,然后将 WHERE TXFR_DATE BETWEEN {?BEG_DATE} AND {?END_DATE} 添加到查询中。我尝试更改子报表链接,在可用字段中找到 arg_beg_date,然后单击“>”将其移动到要链接到框的字段。

那时我只看到 ?Pm-?arg_beg_date 和“参数字段”作为“要使用的子报表参数字段”框中的选项。我无法将主报告中的 arg_beg_date 链接到我在子报告中创建的 beg_date 参数。

我在另一个问题中看到有人建议选中“根据字段选择子报告的日期”框并选择“报告字段”,但我无法做到这一点。它只是突出显示并选择框中低于该字段的字段。

有任何想法吗?

4

2 回答 2

3

我最近构建了相同的报表,其中子报表是命令行。我还没有编写程序,但是如果您将参数从主报告传递到子报告,参数应该是这样的。

在您的子报表 SQL 中,参数必须是这个

在 {?Pm-?arg_beg_date} 和 {?Pm-?arg_end_date} 之间的 TXFR_DATE

然后在您的参数列表中,创建

  • pm-?arg_beg_date
  • pm-?arg_end_date

在您的主报告中,更改子报告链接...

  1. 添加 ?arg_beg_date 参数
  2. 确保未选中“根据字段选择子报表中的数据”
  3. 对 ?arg_end_date 参数执行相同操作

如果您想传递字段而不是参数,并且您在主报告中使用命令,则与上述步骤相同,但看起来像这样。

子报表 SQL

{?Pm-Command.FieldName}

参数列表

Pm-Command.FieldName

于 2012-10-17T11:27:02.767 回答
0

我弄清楚我做错了什么。参数未显示在要链接的列表中,因为类型不匹配。我的主报表中的参数类型是DateTime,我的子报表中的类型是Date。它们必须完全匹配。

谢谢你的帮助。

于 2012-10-17T17:53:35.593 回答