【ABAP系列】SAP ABAP 動態指針


公眾號: matinal
本文作者: matinal
 

 

前言部分

大家可以關注我的公眾號,公眾號里的排版更好,閱讀更舒適。

正文部分

有收有放,轉在說明,后面舉例,給初學者(因為有很多人問到我這個)

    關於abap指針的一些資料。
    1.什么是abap指針:
    在abap里面,fieldsymbol就相當於c語言的指針。如果你定義並且分配了相應的結構或者變量給它,其實它就指向這個結構或者變量的地址,如果修改了fieldsymbol的值,則相應結構或者變量的值也隨之更改。
    2.如何定義指針:
    基本形式:field-symbols.
    附加信息:
    1....type:定義一個數據類型,然后定義指針
    2....typerefto:指針指向類或者接口
    3....typerefto:指針指向數據結構
    4....typelineof:指針內表的行項目
    5....like:指針為數據庫表類型
    6....likelineof:指針類型為數據庫表的行項目
    7....type<>:指針為內表
    3.如何分配指針:
    (1).assignfto.:分配一個指針,包括以下幾種類型
    1....casting...:主要對unicode系統地操作
    1a....casting
    1b....castingtypetype
    1c....casting...decimalsdec
    1d....castinglikef1
    2....typetype:直接指定類型
    3....decimalsdec:指定小數點位數
    4....rangerange:指定范圍
    (2).分配結構中的某個字段給指針
    assigncomponentidxofstructurestructo.
    assigncomponentnameofstructurestructo.
    (3).分配類的方法給指針
    assigndref->*to.
    (4).從f開始,是f的n倍長之后的內容分配給指針
    assignfincrementnto.
    (5).分配局部變量給指針
    assignlocalcopy
    3a.assignlocalcopyoffto.
    3b.assignlocalcopyofinitialfto.
    3c.assignlocalcopyofinitiallineofitabto.
    4c.assignlocalcopyofmaintablefield(f)to.
    (6).assigndynamicj:動態分配指針
    4a.assign(f)to.
    4b.assignoref->(f)to.
    4c.assign(f1)=>(f2)to.
    4d.assigntablefield(f)to.
    4e.assignlocalcopyofmaintablefield(f)to.
    4f.assignlocalcopyof...(f)to.
    4.如何取消分配:
    unassign.

例1:

 

field-SYMBOLS: <wa> TYPE any,
               <wa2> TYPE any.
ASSIGN WA_MARA to <wa>.
select single *
  from MARA into WA_MARA.
WHILE sy-subrc = 0.
  ASSIGN COMPONENT sy-index of STRUCTURE <wa> to <wa2>.
  IF sy-index = 5.
    itab-ZXXX1 = <wa2>.
  ENDIF.
  IF sy-index > 9 and sy-index < 25.
    itab-ZXXX2 = <wa2>.
  ENDIF.
  APPEND itab.
ENDWHILE.


例2:

 

 

LOOP AT ITAB.
  CONCATENATE T_A ITAB-A INTO T_B.
  ASSIGN (XXX) TO <A>. ITAB2-A1 = <A>. APPEND ITAB2. ENDLOOP.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM