ABAP 动态指针

正文部分

有收有放,转在说明,后面举例,给初学者(因为有很多人问到我这个)

    关于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.

 

点击进入:ABAP 动态指针

我在公众号里写了很多SAP的文章

有兴趣可以关注一下

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值