zoukankan      html  css  js  c++  java
  • 【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.
  • 相关阅读:
    C#使用Oracle.ManagedDataAccess.dll
    C#调用webservice
    “认证发布”和“获取展示”,如何在 SharePoint 中正确使用 RSS Feed。
    不怕你配置不会,就怕你看的资料不对!MIM 与 SharePoint 同步完全配置指南。
    SharePoint Server 2013 安装篇
    打印机服务不能正常启动
    JAVA课程体系
    学习网
    Oracle Database 11g安装教程
    方法重载
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11183832.html
Copyright © 2011-2022 走看看