如何在Crystal Reports 8.5中将参数字段传递给“命令查询”

时间:2011-11-07 08:43:42

标签: vb6 crystal-reports

使用CR 8.5生成报告。我将参数字段从VB传递给水晶报告。 我已经为报告添加了SQL查询,其中从参数字段中获取了“WHERE”条件。

说     select * from tableA其中column1 ='{?prameter1}'

我预览时报告为空..请告知我缺少的内容

1 个答案:

答案 0 :(得分:0)

在旧版本的Crystal中,无法修改查询以包含参数值 - 您只能添加常量值。因此,您修改的查询是从tableA中选择记录,其中column1等于字符串“{?prameter1}”,而不是参数{?prameter1}的

要通过参数值进行选择,请将查询重置为其默认值 - 可能是:

select * from tableA

并向Crystal记录选择对话框添加条件:

{tableA.column1} = {?prameter1}

(注意 - 在后一种情况下没有引号。)

编辑:

如上所述,您需要从查询中删除参数,因为它在Crystal中使用Show Query时以您看到的方式传递给SQL 完全。如果将查询修改为select * from tableA where column1={?prameter1},Crystal将尝试将该字符串作为SQL语句运行,因此将返回错误 - 它不会尝试将该参数的值替换为SQL语句。

但是,如果使用参数将Crystal记录选择条件添加到报表中,Crystal将在运行报表时尝试将选择条件添加到SQL - 如果使用后显示查询添加水晶记录选择公式,它应首先提示您输入参数值,然后显示包含您的选择条件的查询(使用参数的输入值,而不是参数名称)。

对SQL自动添加Crystal记录选择条件有一些限制:

  • SQL查询必须是非自定义的(即没有对查询的默认版本进行更改),否则Crystal将不会尝试修改查询 - 自定义优先。 (这就是 >将查询重置为默认格式的原因。)
  • Crystal记录选择标准需要相对简单 - 数据库和参数字段值的一系列and条件通常都可以,但andor条件的混合,或者Crystal公式值的条件,可能会导致Crystal不修改查询条件。