在水晶报告中对记录进行分组

时间:2012-01-04 10:08:41

标签: vb.net crystal-reports

我的oracle数据库中有一个表,其中包含以下模式:student(studentNumber,name,dateOfCreation)。

dateOfCreation是学生记录的创建日期。

在水晶报告中,我必须使用dateOfCreation字段将记录分组到以下组中:

  1. 超过4周(dateOfCreation超过4周前的记录)。

  2. 2至4周(dateOfCreation超过2周前,但不到4周前的记录)。

  3. 1至2周(dateOfCreation超过1周前但不到2周前的记录)。

  4. 不到1周(dateOfCreation小于1周前的记录)。

  5. 我已尝试使用群组专家按指定顺序进行分组,但我找不到这些群组。请帮忙。我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

创建要分组的公式。

公式可以读取(伪代码):

if CreationDate > 4 weeks
then A;
else if CreationDate >2 weeks and CreationDate <4 weeks
then B;

然后,您可以在此公式上创建一个组。

CR具有足够的日期功能,以便找到创建日期和当前日期之间的日期差异。

答案 1 :(得分:0)

正如@vice建议的那样,创建一个公式,然后对其进行分组 - 这样的公式应该有效:

if      DateDiff ("d", {student.dateOfCreation}, CurrentDate) > 28 then 1
else if DateDiff ("d", {student.dateOfCreation}, CurrentDate) > 14 and
        DateDiff ("d", {student.dateOfCreation}, CurrentDate) < 28 then 2
else if DateDiff ("d", {student.dateOfCreation}, CurrentDate) >  7 and
        DateDiff ("d", {student.dateOfCreation}, CurrentDate) < 14 then 3
else if DateDiff ("d", {student.dateOfCreation}, CurrentDate) <  7 then 4

{student.dateOfCreation}可能需要修改以匹配Crystal对此字段的表示 - 您应该能够在公式编辑器的“字段树”窗格中找到它。)

请注意,此公式与您问题中的条件完全匹配 - 因此不允许正好为1周,2周或4周的dateOfCreation值。我建议您调整它以考虑这些因素。