精华内容
下载资源
问答
  • abap如何定义动态变量,把字符串值做变量名 下面把c2变量名的值作为变量名并赋值: data: c1(2) type c,  c2(2) type c. field-symbols <fs> type any. c1 = ‘C2’. "此处要大写,abap中内部存储的变量名都...

    abap如何定义动态变量,把字符串值做变量名

    下面把c2变量名的值作为变量名并赋值:

    data: c1(2) type c,
       c2(2) type c.

    field-symbols <fs> type any.

    c1 = ‘C2’. "此处要大写,abap中内部存储的变量名都是大写的
    c2 = ‘test’.

    assign (c1) to <fs>. "赋值
    <fs> = ‘test2’.

    write: c2.

    这时候c2变量的值被修改成了test2。

    下面补充一下field-symbols用法:

    作为高级abaper,field-symbols语法一定要会用,它类似C++里的指针,是引用传递,指向变量的地址。

    FIELD-SYMBOLS:<FS>   [<TYPE>]
    

    当不指定<type>时,<fs>继承赋给它的变量的所有属性;
    当指定了<type>时,<fs>只能赋相同类型的值;
    然后赋值使用assign … to …语句,将变量分配给内部字段,例如:

      FIELD-SYMBOLS:<F2> TYPE ANY.
      DATA:DAT(5) TYPE C VALUE '12345'.
      ASSIGN DAT TO <F2>.
      WRITE:/ <F2>.
    
    展开全文
  • ABAP 动态指针

    千次阅读 2017-03-19 15:04:27
    博客转移,点击进入:ABAP 动态指针 我在公众号里写了很多SAP的文章 有兴趣可以关注一下 公众号:SAP Technical

    正文部分

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

        关于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的文章

    有兴趣可以关注一下

     

     

    展开全文
  • ABAP指针

    2019-12-10 14:36:19
    1. 什么是ABAP指针: 在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了...2. 如何定义指针: 基本形式:FIELD-SYMBOLS . 附加信息: … TYPE :定义一个数据类型,然后定义指针 … TYPE REF TO ...

    1. 什么是ABAP指针:
    在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指向这个结构或者变量的地址,如果修改了field symbol的值,则相应结构或者变量的值也随之更改。
    2. 如何定义指针:
    基本形式:FIELD-SYMBOLS .
    附加信息:

    1. … TYPE :定义一个数据类型,然后定义指针
    2. … TYPE REF TO :指针指向类或者接口
    3. … TYPE REF TO :指针指向数据结构
    4. … TYPE LINE OF :指针内表的行项目
    5. … LIKE :指针为数据库表类型
    6. … LIKE LINE OF :指针类型为数据库表的行项目
      3. 如何分配指针:
      (1). ASSIGN f TO .:分配一个指针,包括以下几种类型
    7. … CASTING … :主要对unicode系统地操作
      1a. … CASTING
      1b. … CASTING TYPE type
      1c. … CASTING … DECIMALS dec
      1d. … CASTING LIKE f1
    8. … TYPE type :直接指定类型
    9. … DECIMALS dec :指定小数点位数
    10. … RANGE range:指定范围
      (2). 分配结构中的某个字段给指针
      ASSIGN COMPONENT idx OF STRUCTURE struc TO .
      ASSIGN COMPONENT name OF STRUCTURE struc TO .
      (3). 分配类的方法给指针
      ASSIGN dref->* TO .
      (4). 从f开始,是f的n倍长之后的内容分配给指针
      ASSIGN f INCREMENT n TO .
      (5). 分配局部变量给指针
      ASSIGN LOCAL COPY
      3a. ASSIGN LOCAL COPY OF f TO .
      3b. ASSIGN LOCAL COPY OF INITIAL f TO .
      3c. ASSIGN LOCAL COPY OF INITIAL LINE OF itab TO .
      4c. ASSIGN LOCAL COPY OF MAIN TABLE FIELD (f) TO .
      (6). ASSIGN dynamicJ:动态分配指针
      4a. ASSIGN (f) TO .
      4b. ASSIGN oref->(f) TO .
      4c. ASSIGN (f1)=>(f2) TO .
      4d. ASSIGN TABLE FIELD (f) TO .
      4e. ASSIGN LOCAL COPY OF MAIN TABLE FIELD (f) TO .
      4f. ASSIGN LOCAL COPY OF … (f) TO .
      4. 如何取消分配:
      UNASSIGN .
    展开全文
  • 1.什么是ABAP指针: ...2.如何定义指针: 基本形式:FIELD-SYMBOLS. 附加信息: 1....TYPE:定义一个数据类型,然后定义指针 2....TYPEREFTO:指针指向类或者接口 3....TYPEREFTO:指针指向数据结...

    1什么是ABAP指针:

    ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指

    向这个结构或者变量的地址,如果修改了field symbol的值,则相应结构或者变量的值也随之更改。

    2如何定义指针:

    基本形式:FIELD-SYMBOLS .

    附加信息:

    1. ... TYPE :定义一个数据类型,然后定义指针

    2. ... TYPE REF TO :指针指向类或者接口

    3. ... TYPE REF TO :指针指向数据结构

    4. ... TYPE LINE OF :指针内表的行项目

    5. ... LIKE :指针为数据库表类型

    6. ... LIKE LINE OF :指针类型为数据库表的行项目

    3如何分配指针:

    1ASSIGN TO .:分配一个指针,包括以下几种类型

    1. ... CASTING ... :主要对unicode系统地操作

    1a. ... CASTING

    1b. ... CASTING TYPE type

    1c. ... CASTING ... DECIMALS dec

    1d. ... CASTING LIKE f1

    2. ... TYPE type :直接指定类型

    3. ... DECIMALS dec :指定小数点位数

    4. ... RANGE range:指定范围

    2分配结构中的某个字段给指针

    ASSIGN COMPONENT idx OF STRUCTURE struc TO .

    ASSIGN COMPONENT name OF STRUCTURE struc TO .

    3分配类的方法给指针

    ASSIGN dref->TO .

    4f开始,是fn倍长之后的内容分配给指针

    ASSIGN f INCREMENT n TO .

    5分配局部变量给指针

    ASSIGN LOCAL COPY

    3aASSIGN LOCAL COPY OF TO .

    3bASSIGN LOCAL COPY OF INITIAL TO .

    3cASSIGN LOCAL COPY OF INITIAL LINE OF itab TO .

    4cASSIGN LOCAL COPY OF MAIN TABLE FIELD (fTO .

    6ASSIGN dynamicJ:动态分配指针

    4aASSIGN (fTO .

    4bASSIGN oref->(fTO .

    4cASSIGN (f1)=>(f2TO .

    4dASSIGN TABLE FIELD (fTO .

    4eASSIGN LOCAL COPY OF MAIN TABLE FIELD (fTO .

    4fASSIGN LOCAL COPY OF ... (fTO .

    4如何取消分配:

    UNASSIGN 

    不清楚内表内表到底是itab还是itab2,但是又要访问内表里的第2个字段。所以在loop的时候不能用to到一个结构体,而要用assigning一个指向ANY的指针,然后进行后面的操作。

    IF n = 1.
    
    ASSIGN itab[] TO . " 是指向standard table的
    
    ELSE.
    
    ASSIGN itab2[] TO .
    
    ENDIF.
    
    LOOP AT itab[] ASSIGNING .
    
    ASSIGN COMPONENT 2 OF STRUCTURE TO . ”filed_fs是ANY的
    
    WRITE: / .
    
    ENDLOOP.

    具体实现: 

    1.结构的动态查询 

    DEFINE SELECT_DATA_TO_WA. 
    
    SELECT &1 
    
    FROM &2 
    
    INTO CORRESPONDING FIELDS OF &3 
    
    WHERE (&4). 
    
    EXIT. 
    
    ENDSELECT. 
    
    END-OF-DEFINITION. 

    2.变量的动态查询 


     

    DATA: L_FIELD(100) TYPE C, 
    L_TABLE(10) TYPE C, 
    L_COND(100) TYPE C. 
    
    DATA: I_COND TYPE TALBE OF L_COND. 
    
    FIELD-SYMBOLS TYPE ANY. 
    
    START-OF-SELECTION. 
    
    CONCATENATE 'CARRID' 'CONNID' 'CITYFROM' 
    INTO L_S 
    SEPARATE BY SPACE. 
    
    CONCATENATE 'CONNID = ' '0123'
    INTO L_COND. 
    
    APPEND COND TO I_COND. 
    
    L_TABLE = 'SPFLI'. 
    
    IF IS ASSIGNED. 
    
    UNASSIGN . 
    ASSIGN SPFLI TO . 
    
    ELSE. 
    
    ASSIGN SPFLI TO . 
    
    ENDIF. 
    
    SELECT_DATA_TO_WA (L_S) (L_TABLE) I_COND.
    

    展开全文
  • 原文链接:【ABAP系列】SAP ABAP 动态指针 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。 正文部分 有收有放,转在说明,后面举例,给初学者(因为有很多人问到我这个) 关于abap...
  • ABAP-指针

    2006-08-20 13:41:00
    关于ABAP指针的一些资料。 1. 什么是ABAP指针: 在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指向这个... 如何定义指针: 基本形式:FIELD-SYMBOLS . 
  • ABAP 引用型变量

    千次阅读 2011-10-19 17:13:32
    1、定义引用变量语句:  DATA dref TYPE REF TO DATA.(指向任意类型,但在创建时必须指定对象类型) ,声明定义时,没有指向任何对象,此时你不可使用,引用变量的赋值有两种方法:   CREATE DATA type XXX  ...
  • ABAP指针的基本语法

    2021-01-25 17:06:21
    FIELD-SYMBOLS:< FS> [] 类似于指针,可以指代任何变量 当不输入时,继承赋给它的变量的所有属性 当输入时,赋给它的变量必须与同类型。 eg: FIELD-SYMBOLS:. DATA:DAT(8) VALUE '19920108'. ASSIGN DAT TO . ...
  • ABAP 指针 FIELD-SYMBOLS

    千次阅读 2015-10-12 11:01:51
    abap指针
  • abap基于C#和C的理解&——————————————————————— *& Report YTEST001 *& &——————————————————————— *& *& &———————————————————————...
  • 关于ABAP指针

    千次阅读 2005-10-12 12:44:00
    1. 什么是ABAP指针:在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构...2. 如何定义指针:基本形式:FIELD-SYMBOLS .附加信息: 1. ... TYPE :定义一个数据类型,然后定义指针 2.
  • 1、定义指针 指针的定义主要有以下语句: 定义任意类型的指针,但是不具备栏位结构(仅仅是一个地址) FIELD-SYMBOLS <carrid> TYPE any. 参考数据库表定义(这种指针是含有栏位结构的,参考内表同理) ...
  • ABAP指针(转)

    2009-05-19 15:41:00
    1. 什么是ABAP指针:在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给...2. 如何定义指针:基本形式:FIELD-SYMBOLS .附加信息: 1. ... TYPE :定义一个数据类型,然后定义
  • ASSIGN gv_numc TO <fs_char> CASTING."如果指针有完整类型的定义 就不需要在CASTING 后面添加类型 TYPES:BEGIN OF gty_score, name TYPE c LENGTH 6, score TYPE n LENGTH 3, END OF gty_score. gv_char = '...
  • abap引用变量->*

    2013-04-03 14:55:47
    首先,先翻译一下SAP对引用变量->*的解释如下: If you specify a data reference dref for a mem_area that was dereferenced using the dereferencing operator ->*, the storage area of the data object is ...
  • SAP ABAP指针的6种用法。

    千次阅读 2020-07-21 09:50:54
    1.LOOP循环里面分配指针。 LOOP AT GT_ITEM ASSIGNING FIELD-SYMBOL(<FS_ITEM>). ENDLOOP . 2.READ语法中分配指针 READ TABLE GT_ITEM ASSIGNING FIELD-SYMBOL(<FS_ITEM>) INDEX GS_INDEX . 3.
  • ABAP--字符串变量和字符变量的区别
  • ABAP FIELD-SYMBOLS指针

    2016-10-18 18:02:15
    ***定义一个指向变量类型的指针 DATA: L_STR TYPE STRING VALUE 'HELLO SAP!'. FIELD-SYMBOLS: TYPE STRING. ASSIGN L_STR TO . WRITE:L_STR,. ***将内表的值动态赋值给指针 DATA:LT_MARA ...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 357
精华内容 142
关键字:

abap定义指针变量