字符串类型字段上的多个范围过滤器会中断日期范围过滤器

时间:2018-09-27 13:53:56

标签: crystal-reports crystal-reports-2013

我的报告提取了乔布斯和这些工作的分包合同。我正在使用转包起始日期的参数“ BegDate”和“ EndDate”进行过滤。直到...为止,它都可以正常工作。然后,我需要过滤结果以仅包括10000至19900和50000至59000的作业,Job是一个String字段,但其中的数据看起来像这样的“ 10000-”,请注意在数字的末尾,我必须添加破折号或过滤器不起作用,但这不是问题。无论如何,如果我只过滤日期范围,而其中一个工作范围都很好。当我添加第二个工作范围过滤器时,它将中断日期范围过滤器。

这是我的过滤器:

这有效:

{JCJM.Job} in "10000-" to "19000-" and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}

这会破坏日期过滤器(结果将完全忽略日期过滤器):

{JCJM.Job} in "10000-" to "19000-" or
{JCJM.Job} in "50000-" to "59000-" and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}

1 个答案:

答案 0 :(得分:1)

所以我从我的老师那里得到了答案,这是给其他人的:

在记录选择公式中,“或”运算符与“和”运算符之间存在一个优先顺序问题。

通常,您需要将作业范围(和“或”运算符)括在括号中。但是,当您使用“范围内”运算符时,可以通过将值括在方括号中来组合两组或更多组范围。这样就代替了在工作范围之间使用“或”运算符的需求,例如:

{JCJM.Job} in ["10000-" to "19000-", "50000-" to "59000-"]
and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}