将Crystal参数从主报表传递到命令对象

时间:2013-10-02 19:17:50

标签: crystal-reports-2008

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

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

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版,如果重要的话。

2 个答案:

答案 0 :(得分:0)

如果您使用的是SQL命令,请不要在主报表中创建参数。放置SQL的窗口有一个名为Parameter List的部分。在那里创建与查询相关的所有参数,它将被转移到主报告中。

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

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

答案 1 :(得分:0)

我发现创建命令对象,参数FIRST是关键。然后在子报表中创建参数(比如它是InstNo)。然后,您可以使用"更改子报告链接" (右键单击子报表),然后选择该参数作为要链接的参数。所以基本上是向后做,首先创建命令对象,然后将其链接回主报表。无论出于何种原因,如果你这样做,它不起作用(即使名称是相同的)。只是我的经历。