设计师可以做兼职的网站有哪些,wordpress数据清除缓存,企业网站模板科技感,网赌网站怎么建设参考大佬文章学习#xff0c;总结了下没有提到的点#xff1a;SAP ABAP指针的6种用法。_abap 指针-CSDN博客
定义指针#xff1a;其实指针这玩意#xff0c;就是类似你给个地方#xff0c;把东西临时放进去#xff0c;然后指针就是这个东西的替身了#xff0c;写代码的…参考大佬文章学习总结了下没有提到的点SAP ABAP指针的6种用法。_abap 指针-CSDN博客
定义指针其实指针这玩意就是类似你给个地方把东西临时放进去然后指针就是这个东西的替身了写代码的时候更方便指针可以直接赋值。 FIELD-SYMBOLS: F1,F2,F3.ASSIGN 结构体 TO F1.参照结构体定义指针ASSIGN 变量 TO F2.参照变量定义指针
动态指针分配 N -结构的字段技术名称或者当前行 SY-INDEX这种变量可以是动态的 结构-结构体工作区之类的 指针-一般以F开头 粗浅理解为将结构中的某个N的值 分配给指针
哈哈怎么感觉说了好像没说~还得自己理解。
仔细一点就是把结构中具体的某一个字段分配给指针这个字段可以是动态变化的也可以是静态的某个字段这里的N代表的是结构中的字段技术名称。听不懂没关系可以看下面示例代码参悟。
ASSIGN COMPONENT N OF STRUCTURE 结构 TO 指针.
使用场景
可以用灵活计算财务在一行的账龄金额例如 T100,T200或者各个期间的金额累计如DMBTR1,DMBTR2……结构的T100,T200可以参考如下代码动态替代以下计算累计的方式 REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE 1,char2 TYPE i VALUE 2,char3 TYPE i VALUE 3,char4 TYPE i VALUE 4,END OF wa_tab.DATA:comp(6) VALUE CHAR05.FIELD-SYMBOLS: F1,F2,F3.ASSIGN WA_TAB TO F1.ASSIGN COMP TO F2.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I,LS_SUM TYPE I.DO 4 TIMES.LS_I LS_I 1.LS_TEST char LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE F1 TO F3.IF F3 IS ASSIGNED AND SY-SUBRC 0.LS_SUM LS_SUM F3.WRITE :/ 第 LS_I 次累计 , LS_SUM .ENDIF.ENDDO.
注意事项
1.需要配合sy-subrc 来判断是否分配成功
而不是 IF F3 IS ASSINGED这个只是判断有没有分配不能判断有没有成功分配到值
如图结果第五次为999 REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE 01,char2 TYPE i VALUE 02,char3 TYPE i VALUE 03,char4 TYPE i VALUE 04,END OF wa_tab.DATA:comp(6) VALUE CHAR05.FIELD-SYMBOLS: F1,F2,F3.ASSIGN WA_TAB TO F1.ASSIGN COMP TO F2.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I.DO 5 TIMES.LS_I LS_I 1.LS_TEST char LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE F1 TO F3.IF sy-subrc 0.WRITE:/ F3.ELSE.F3 999.WRITE:/ F3.ENDIF.CLEAR F3.ENDDO. 2.如果下一次没有分配成功,指针的值仍为上一次分配的值第五次执行结果等于第四次并不是第五次没有分配成功指针就会清空 REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE 1,char2 TYPE i VALUE 2,char3 TYPE i VALUE 3,char4 TYPE i VALUE 4,END OF wa_tab.DATA:comp(6) VALUE CHAR05.FIELD-SYMBOLS: F1,F2,F3.ASSIGN WA_TAB TO F1.ASSIGN COMP TO F2.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I,LS_SUM TYPE I.DO 5 TIMES.LS_I LS_I 1.LS_TEST char LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE F1 TO F3.IF F3 .WRITE:/ F3.ENDIF.ENDDO.