Crystal reports 在命令上使用公式字段

Crystal reports 在命令上使用公式字段,crystal-reports,Crystal Reports,我将查询添加为命令。现在我希望在日期部分有这种灵活性。我想从公式字段中检索一个值,如下所示: select field1, field2, field3, case when flag = 0 and yes_date = {@the_date} then 'ok' when flag > 0 then 'not_ok' end as currentsts from trans 在调用报告之前,应用程序将填充公式字段@

我将查询添加为命令。现在我希望在日期部分有这种灵活性。我想从公式字段中检索一个值,如下所示:

select field1, field2, field3,
  case 
    when flag = 0 and yes_date = {@the_date} 
      then 'ok'
    when flag > 0  
      then 'not_ok'    
  end as currentsts   
from trans

在调用报告之前,应用程序将填充公式字段@The_date。我如何才能做到这一点?

您不能在命令查询中使用公式。只能使用从Database Expert创建的命令参数。命令参数如下所示:

是的日期={?日期}

使用命令参数运行报告时,可以使用建议的默认值,也可以手动在中输入值。该值随后成为查询的一部分,通常位于where子句的某个位置


您可以尝试在命令查询开始时将公式选择到临时变量中: 声明@The_Date AS Date=从表1中选择ISNULLt2.Date,t1.Date作为t1左外联接表2作为t2 ON t2.pk=t1.pk,其中whatever='{?parameter}';
但这必须返回一个值。否则,您必须将命令查询放入子报表,并将公式作为参数传递到子报表链接中。

错误是什么?它需要是从应用程序传递的值。没有解决办法?我不知道有什么方法可以在SQL级别上传递参数而不用手动输入。网上有许多关于如何使用创建参数而不是命令参数的技术文章,其中可以使用默认值。。。但您必须返回所有结果集,然后在之后而不是之前过滤它。