A merry heart goes all the way.
心旷神怡,事事顺利。
1
问题描述
小伙伴提问
**** 在结构LS_XSHK里如果没有 ZE00这个字段,然后用assign component去指向某个<field>,这个<field>能用 is
assigned来判断吗?
如下图所示,无ZE00字段,程序仍然走进了is assigned...
2
问题解决
个人测试
**** <f>在上一次已经assigned了。在使用 assign component语法并且结构中无字段时,程序并不会自动unassigned。需要
手动 unassign ed或使用sy-subrc来判断。
测试结果和源码如下。
BEGIN OF ls_line ,
z1 TYPE c VALUE 'A' ,
• z2 TYPE c VALUE 'B',
z3 TYPE c VALUE 'C' ,
z4 TYPE c VALUE 'D' ,
END OF ls_line .FIELD-SYMBOLS <f> .
DO 4 TIMES .
ASSIGN COMPONENT |Z{ sy \- index }| OF STRUCTURE ls_line TO <f> .
IF <f> IS ASSIGNED .WRITE : / sy \- index , 'Value:' , <f> .
ELSE .
WRITE : / sy \- subrc , 'Value:' , 0 .
ENDIF .
ENDDO .WRITE : / '--------------------------' .
DO 4 TIMES .
ASSIGN COMPONENT |Z{ sy \- index }| OF STRUCTURE ls_line TO <f> .
IF <f> IS ASSIGNED .WRITE : / sy \- index , 'Value:' , <f> .
UNASSIGN <f> .
ELSE .
WRITE : / sy \- subrc , 'Value:' , 0 .
ENDIF .
ENDDO .WRITE : / '--------------------------' .
DO 4 TIMES .
ASSIGN COMPONENT |Z{ sy \- index }| OF STRUCTURE ls_line TO <f> .
IF sy \- subrc EQ 0 .WRITE : / sy \- index , 'Value:' , <f> .
ELSE .
WRITE : / sy \- subrc , 'Value:' , 0 .
ENDIF .
ENDDO .以上是今日分享,希望对你有所帮助~~~
欢迎点赞、留言、分享
往期推荐
[ SAP GUI配置信息迁移
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247496356&idx=1&sn=30be2f3b5cde55994d7c8b0d58ffd29e&chksm=cf0a264af87daf5cc8502dfad7e3f732773b797c779a796124e772936898352cfcdfb3427398&scene=21#wechat_redirect)
[ SAP GUI ABAP代码导出PDF、HTML、RTF格式
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247496364&idx=1&sn=f5f0654d0805a1682d35a188aec0ef09&chksm=cf0a2642f87daf54241a5ebb150eaadacf6a2712169623001c43a6afc57052a75344433ef3d0&scene=21#wechat_redirect)
点个 在看 你最好看