0

我发现很多关于将参数传递到子报表的信息,但没有关于将它从主报表传递到主报表中的命令对象的信息。(是我能找到的最接近的。)

从供应商处收到的命令对象(名称更改以减少长度)包含

left join LOC L on L.ID = P.Loc_ID

我们将参数“Area”添加到主报告中。{?Area} 符合我们在公式中的预期,但它在记录选择中不起作用,因为它无法与来自命令对象的任何内容匹配。如果我将引用行中的表 LOC 替换为

left join **(select * from LOC where A = {?Area})** L on L.ID = P.Loc_ID

然后 SQL Server 抱怨“语法错误、权限冲突或其他非特定错误”[原文如此]

如果我在命令对象编辑器中创建参数(即使它已经存在于外部),那么整个 Crystal IDE 就会崩溃!

命令对象已经具有从主报告中神奇地获取的参数。在将其添加到命令对象之前,我必须将其从主报告(proctalgia)中删除吗?我在任何菜单上都找不到将这两个参数链接在一起的任何内容,就像我在子报表中可以找到的那样。

2008 版,如果这很重要的话。

4

2 回答 2

0

如果您使用 SQL 命令,请不要在主报告中创建参数。放置 SQL 的窗口有一个名为 Parameter List 的部分。在此处创建与查询相关的所有参数,并将其传输到主报告。

在您的编码中,您有 {?Area},创建一个名为 Area 的参数。

我找到了一个演示它的视频。它是 Crystal Reports 的旧版本,但仍然可以正常工作。 http://www.youtube.com/watch?v=BHNHsIUbcn8

于 2013-10-02T21:07:06.483 回答
0

我发现创建命令对象和参数 FIRST 是关键。然后在子报表中创建参数(比如 InstNo)。然后,您可以使用“更改子报表链接”(右键单击子报表),然后选择该参数作为要链接的参数。所以基本上是倒着做,先创建命令对象,然后将它链接回主报告。无论出于何种原因,如果您以其他方式执行此操作,它将不起作用(即使名称相同)。只是我的经验。

于 2016-09-19T13:09:07.610 回答