IF用法的问题:
* LOOP AT g_t_result.
* IF g_t_result-ktgrm ne '01' and g_t_result-ktgrm ne '10' and g_t_result-ktgrm ne '08'
* and g_t_result-ktgrm ne '16' and g_t_result-ktgrm ne '17' and g_t_result-ktgrm ne '18'.
* delete g_t_result.
* clear g_t_result-ktgrm.
* ENDIF.
** IF g_t_result-wbstk ne 'C'.
** delete g_t_result.
** clear g_t_result-wbstk.
** ENDIF.
* ENDLOOP.
当一条数据同时满足不是01,10,08,16,17,18,C时,会出现问题,会删除内表g_t_result中上一条满足条件的数据,具体什么原因本人还是不太懂,
修改后的用法:
LOOP AT g_t_result.
IF g_t_result-ktgrm ne '01' and g_t_result-ktgrm ne '10' and g_t_result-ktgrm ne '08'
and g_t_result-ktgrm ne '16' and g_t_result-ktgrm ne '17' and g_t_result-ktgrm ne '18'.
delete g_t_result.
elseif g_t_result-wbstk ne 'C'.
delete g_t_result.
ENDIF.
ENDLOOP.
或者对判断分开,做两次LOOP:
* LOOP AT g_t_result.
* IF g_t_result-ktgrm ne '01' and g_t_result-ktgrm ne '10' and g_t_result-ktgrm ne '08'
* and g_t_result-ktgrm ne '16' and g_t_result-ktgrm ne '17' and g_t_result-ktgrm ne '18'.
* delete g_t_result.
* clear g_t_result-ktgrm.
* ENDIF.
* ENDLOOP.
*
* LOOP AT g_t_result.
* IF g_t_result-wbstk ne 'C'.
* delete g_t_result.
* clear g_t_result-wbstk.
* ENDIF.
* ENDLOOP.
本人不知道这里IF的用法,小菜鸟一个!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23537555/viewspace-659747/ ,如需转载,请注明出处,否则将追究法律责任。