zoukankan      html  css  js  c++  java
  • [SAP ABAP开发技术总结]动态语句、动态程序

     

    在ABAP中写动态的程序,灵活的程序,一定要知道的

    1.13.     动态语句

    1.13.1.           内表动态访问

    SORT itab BY (comp1)...(compn)

     

    READ TABLE itab WITH KEY(k1)=v1...(kn)=vn

    READ TABLE itab...INTOwaCOMPARING(comp1)...(compn) TRANSPORTING(comp1)...

    MODIFY [TABLE] itab TRANSPORTING(comp1)...(compn)

    DELETE TABLEitabWITH TABLE KEY(comp1)...(compn)

    DELETE ADJACENT DUPLICATES FROM itab COMPARING(comp1)...(compn)

     

    AT NEW/END OF (comp)

    1.13.2.           动态类型

    CREATE DATA ... TYPE (type)...

    DATA: a TYPE REF TO i.
    CREATE DATA a TYPE ('I').
    a->* = 1.

    CREATE OBJECT ... TYPE (type)...请参考类对象反射章节

    1.13.3.           动态SQL

    Select请参照后面的动态SQL

    MODIFY/UPDATE(dbtab)...

    1.13.4.           动态调用类的方法

    CALL METHOD (meth_name)
                | cref->(meth_name)
                | iref->(meth_name)
                | (class_name)=>(meth_name)
                | class=>(meth_name)
                | (class_name)=>meth

    实例请参考类对象反射章节

    1.13.5.           ASSIGN 动态分配

    FIELD-SYMBOLS:<fs>.

    DATA:str(20) TYPE c VALUE 'Output String',
         name
    (20) TYPE c VALUE 'STR'.

    "静态分配:编译时就知道要分配的对象名
    ASSIGN name TO <fs>."结果<fs>name变量等同

    "通过变量名动态访问变量
    ASSIGN (name) TO <fs>."结果是是<fs>的值为str变量值

     

    DATA: BEGIN OF line,
      col1
    TYPE i VALUE '11',
      col2
    TYPE i VALUE '22',
      col3
    TYPE i VALUE '33',
    END OF line.
    DATA comp(5) VALUE 'COL3'.
    FIELD-SYMBOLS: <f1>, <f2>, <f3>.
    ASSIGN line TO <f1>.
    ASSIGN comp TO <f2>.

    "还可以直接使用以下的语法访问其他程序中的变量
    ASSIGN ('(ZJDEMO)SBOOK-FLDATE') TO <fs>.

    "通过索引动态的访问结构成员
    ASSIGN COMPONENT sy-index OF STRUCTURE <f1> TO <f3>.

    "通过字段名动态的访问结构成员
    ASSIGN COMPONENT <f2>OF STRUCTURE <f1> TO <f3>.

    "如果定义的内表没有组件名时,可以使用索引为0的组件来访问这个无名字段(注:不是1)
    ASSIGN COMPONENT 0 OF STRUCTURE itab TO  <fs>.

    1.13.5.1.       动态访问类的属性成员

    ASSIGN oref->('attr') TO <attr>.
    ASSIGN oref->('static_attr') TO <attr>.
    ASSIGN ('C1')=>('static_attr') TO <attr>.
    ASSIGN c1=>('static_attr') TO <attr>.
    ASSIGN ('C1')=>static_attr TO <attr>.

    实例请参考类对象反射章节

  • 相关阅读:
    bootstrap
    jQuery快速入门
    前端jQuery
    前端BOM和DOM
    前端js
    前端css
    前端知识之HTML内容
    线程池
    线程
    LightOJ
  • 原文地址:https://www.cnblogs.com/jiangzhengjun/p/4263775.html
Copyright © 2011-2022 走看看