zoukankan      html  css  js  c++  java
  • 2019.11.06 【每天学点SAP小知识】Day1

     最近看同事使用ABAP新语法贼溜,省了好多的功夫,还在使用老语法的我眼红了。

    所以就自己补一补7.40之后语法,能够让自己写代码更顺畅吧。

    今天学习内联申明 inline

    意思是:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说的参数入栈等操作,所以总要多占用一些时间) 所以 划重点: 内联函数 加快了速度,但是空间占用了更多

    当你使用如下代码时:

    内联申明:

    描述  7.40之前  7.40之后
    变量申明赋值 

    Data text type string.

    text = 'TAB'.

    DATA(text) = 'TAB'
    循环工作区

    DATA wa LIKE LINE OF itab.

    FIELD-SYMBOLS <FS> LIKE LINE OF itab.

    LOOP AT itab INTO wa.

    ENDLOOP.

    LOOP AT itab ASSIGNING <FS>.

    ENDLOOP.

    LOOP AT itab into data(wa).

    ...

    ENDLOOP.

    LOOP AT itab ASSIGNING FIELD-SYMBOLS(<FS>).

    ...

    ENDLOOP.

    调用方法

    DATA: a1 TYPE CHAR1.

    oref->method_a1( 

       IMPORTING

      P1 = a1).

    oref->method_a1(

      IMPORTING P1 = DATA(a1) ).

    READ TABLE

    DATA wa LIKE LINE OF itab.

    FIELD-SYMBOLS <FS> LIKE LINE OF itab.

    READ TABLE itab INTO wa INDEX 1.

    READ TABLE itab ASSIGNING <FS> INDEX 1.

    READ TABLE itab INTO DATA(WA) INDEX 1.

    READ TABLE itab ASSIGING FIELD-SYMBOLS(<FS>) INDEX 1.

    SQL 

    DATA itab TYPE TABLE OF MARA.

    SELECT * FROM MARA INTO TABLE itab 

    WHERE matnr = lv_matnr.


    SELECT * FROM mara INTO TABLE @DATA(itab)
      WHERE matnr = lv_matnr.
    SQL 2 

    DATA:lv_matnr TYPE mara-matnr.
    DATA:lv_matkl TYPE mara-matkl.

    SELECT SINGLE matnr matkl INTO (lv_matnr,lv_matkl)
      FROM mara.

     SELECT SINGLE matnr,matkl INTO @DATA(lv_structue)
      FROM mara.

    - TAB  学习技术,热爱生活。

  • 相关阅读:
    线程同步(二)—— 条件变量
    线程同步(一)—— 互斥锁
    进程同步(四)—— 消息队列
    Nginx反向代理服务器的配置
    散列表(hash表)
    浅谈bitmap
    进程空间分配和堆栈大小
    拓扑排序
    归并排序
    快速排序
  • 原文地址:https://www.cnblogs.com/jxzhu/p/11809505.html
Copyright © 2011-2022 走看看