Crystal reports Crystal reports:打印每个人的第一条非空白记录

Crystal reports Crystal reports:打印每个人的第一条非空白记录,crystal-reports,suppress,Crystal Reports,Suppress,报告按全名对记录进行分组。我希望能够使用非空的描述字段显示每组中的第一条记录。如果所有记录都有空白描述,则应显示最后一条记录 因此,应该显示的是最新的评论,如果没有任何评论被记录,则显示为空白。 目前,我在报告中添加了以下代码: 详细信息-抑制(无向下钻取) 标题 详细信息 这将仅显示第一条记录,而不考虑内容。我需要的是添加代码以抑制记录,直到找到非空记录为止,或者如果没有找到记录,则显示最后一条记录。抑制具有空值的记录可能不适合计算详细信息记录的方法。原因是被抑制的记录仍将由公式计算,这将导致

报告按全名对记录进行分组。我希望能够使用非空的描述字段显示每组中的第一条记录。如果所有记录都有空白描述,则应显示最后一条记录

因此,应该显示的是最新的评论,如果没有任何评论被记录,则显示为空白。 目前,我在报告中添加了以下代码:

详细信息-抑制(无向下钻取)

标题

详细信息


这将仅显示第一条记录,而不考虑内容。我需要的是添加代码以抑制记录,直到找到非空记录为止,或者如果没有找到记录,则显示最后一条记录。

抑制具有空值的记录可能不适合计算详细信息记录的方法。原因是被抑制的记录仍将由公式计算,这将导致第一条记录被抑制为空,然后所有记录都将被抑制,因为
count
变量的值将大于1

我建议您在Select Expert中修改选择条件,以便不选择包含空值的记录,并且不可能成为数据集中每组的第一条记录。尝试以下公式

Not IsNull([TABLE.COLUMN])
其中,
[TABLE.COLUMN]
是数据集中可能包含空值的列。如果这不起作用,您可能还需要过滤掉空字符串值和空值。要做到这一点,您需要像这样修改公式

Not IsNull([TABLE.COLUMN]) or [TABLE.COLUMN] = ""
shared numbervar count;
count:=count+1;
Not IsNull([TABLE.COLUMN])
Not IsNull([TABLE.COLUMN]) or [TABLE.COLUMN] = ""