公式字段中的过滤功能

时间:2019-10-15 06:56:15

标签: crystal-reports report

我是Crystal Reports(2016)的新手,我现在正在为我们部门进行评估。 我从CR访问SAP Info Set表中的数据。到目前为止,一切正常。

我的数据具有以下格式,并逐行读取:

Source data

如您所见,有时存在一个Q编号,其位置为100和105,有时只是位置为100。因此,有时存在重复的Q值。 我需要的是,在现有职位105的情况下,仅使用此行即可。如果没有位置105,请使用位置100的行。这应该消除重复项,只保留我需要的信息。

在我的报表中添加新的公式字段后,它应显示如下数据(右列):

Needed data

我已经使用“ onlastrecord”功能进行了尝试,但是没有所需的结果。在两个位置的情况下,仅使用位置105的线即可。但是,仅显示位置为100的Q号。

到目前为止,这是我的代码:

  

如果onlastrecord = true且(tonumber({Z_QM_INFOSET_CR.VIQMFE-POSNR})= 0100)

     

然后再选择{Z_QM_INFOSET_CR.QMEL-QMNUM}

     

如果(tonumber({Z_QM_INFOSET_CR.VIQMFE-POSNR})= 0105)

     

然后{Z_QM_INFOSET_CR.QMEL-QMNUM}

我希望我的案子可以理解。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我了解您需要一种在以下情况下可以打印出值的公式:

  1. 显示位置为105时的q数
  2. 在位置为100且没有相同q数的105时显示q数。

所以,我建议一种检查下一条记录和最后一条记录的轮廓条件的方法。

尝试以下公式:

if {Z_QM_INFOSET_CR.VIQMFE-POSNR} = "0105" 
then {Z_QM_INFOSET_CR.QMEL-QMNUM}
else if onlastrecord and {Z_QM_INFOSET_CR.VIQMFE-POSNR} = "0100"
then {Z_QM_INFOSET_CR.QMEL-QMNUM}
else if {Z_QM_INFOSET_CR.VIQMFE-POSNR} = "0100"
and next({Z_QM_INFOSET_CR.QMEL-QMNUM}) <> {Z_QM_INFOSET_CR.QMEL-QMNUM}
then {Z_QM_INFOSET_CR.QMEL-QMNUM}
else ""
相关问题