Crystal Reports ShiftDateTime不会生成“Where子句”

时间:2014-04-25 15:02:10

标签: crystal-reports where-clause

我的水晶报告没有创建" where子句"在它的" sql查询"。

在我的"记录选择公式"我称之为改变日期时间的公式: {@starttime}

 ShiftDateTime ({MYLABOR.STARTED}, "GMT,0","");

***如果我用数据库中的实际StartTime字段替换{@StartTime},那么我得到我的" where子句"报告非常快。

任何人都知道为什么该公式会停止" where子句"从生成?

这是我的"记录选择forumal":

{@StartTime} >= {?FirstPeriodStartDate}
and
{@StartTime} <= dateadd("d",14,({?FirstPeriodStartDate}))

1 个答案:

答案 0 :(得分:0)

Crystal没有将这个逻辑添加到WHERE子句中,因为ShiftDateTime是一个Crystal函数而不是数据库可以使用的有效函数。基本上,Crystal不知道如何将其转换为有效的SQL。当您在记录选择公式中的数据库字段上使用Crystal函数时,几乎总是如此。

所以在这种情况下发生的事情是Crystal离开WHERE子句逻辑并从数据库获取所有记录然后在本地应用选择...这就是为什么你看到如此剧烈的性能减慢;无论转班开始时间如何,您都会从数据库中获取所有记录。