使用CR 8.5生成报告。我将参数字段从VB传递给水晶报告。 我已经为报告添加了SQL查询,其中从参数字段中获取了“WHERE”条件。
说 select * from tableA其中column1 ='{?prameter1}'
我预览时报告为空..请告知我缺少的内容
答案 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记录选择条件有一些限制:
and
条件通常都可以,但and
和or
条件的混合,或者Crystal公式值的条件,可能会导致Crystal不修改查询条件。