公式字段过滤功能

Filtering function in formula field

我是 Crystal 报告 (2016) 的新手,我现在正在为我们的部门进行评估。 我从 CR 访问 SAP 信息集中的数据 table。到目前为止效果很好。

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

Source data

如您所见,有时位置 100 和 105 有一个 Q 号,有时只有位置 100。所以有时会有重复的 Q 号。 我需要的是,在现有位置 105 的情况下只使用这条线。如果没有位置105,就用位置100那一行,这样应该可以去掉重复,只留下我需要的信息。

将新公式字段放入我的报告后,它应该显示如下数据(右侧列):

Needed data

我已经用 "onlastrecord" 函数试过了,但没有得到所需的结果。在两个位置的情况下,它只使用位置为 105 的行。但只有100位的Q号不显示

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

If onlastrecord=true and (tonumber({Z_QM_INFOSET_CR.VIQMFE-POSNR})=0100)

then {Z_QM_INFOSET_CR.QMEL-QMNUM} else

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

then {Z_QM_INFOSET_CR.QMEL-QMNUM}

我希望我的情况是可以理解的..

非常感谢!

我知道您需要一个公式来打印这些情况下的值:

  1. 显示第105位的q数
  2. 显示位置为100且没有105相同q号的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 ""