abap开发语法小结

abap开发语法小结1、在涉及到数字计算的时候可能会要求数值保留几位小数,以百分比的形式显示占比: 2、定义选择条件:(1)单选PARAMETERS:P1 RADIOBUTTON GROUP R1 DEFAULT ‘X’ USER-COMMAND CREATE,"创建领料单           P2 RADIOBUTTON GROUP R1."修改领料单(2)多选PARAMETERS:p1 AS CHECKBOX  …

大家好,欢迎来到IT知识分享网。

1、在涉及到数字计算的时候可能会要求数值保留几位小数,以百分比的形式显示占比:

 abap开发语法小结

2、定义选择条件:

(1)单选
PARAMETERS:P1 RADIOBUTTON GROUP R1 DEFAULT ‘X’ USER-COMMAND CREATE,”创建领料单
           P2 
RADIOBUTTON GROUP R1.”修改领料单

(2)多选

PARAMETERS:p1 AS CHECKBOX  DEFAULT ‘X’ USER-COMMAND CREATE,”采购模式,寄售或标采
           p2 
AS CHECKBOX .”标采

 (3)判断条件:if p1 = ‘X’(注意这里一定是大X)

 

3、定义字段类型,字段名为name1,字段类型参考LFA1的name1

 NAME1 TYPE LFA1NAME1,”供应商名称

 

4、PERFORM FRM_GET_DATA.调用 form FRM_GET_DATA.

 

5、汇总:

   LOOP AT IT_itab1.

      it_itab2-matnr =it_itab1-matnr.   “ 物料

      it_itab2-werks =it_itab1-werks.   “ 工厂

     it_itab2-lifnr = it_itab1-lifnr.  “供应商

      it_itab2-menge =it_itab1-menge.  ” 开票数

      it_itab2-wrbtr =it_itab1-wrbtr.    ” 开票净额

      COLLECT IT_itab2

   ENDLOOP.

这是根据物料,工厂,供应商汇总开票数和开票净额

6、for all entries in :

使用for all entries in语句将不能使用join的聚集表或者需要使用select的内表与内表串联。

     SELECT
         EINA
~MATNR“物料
         EINA
~LIFNR“供应商编码
         EINA
~INFNR“采购信息记录号
         EINE
~WERKS“工厂
       
INTO CORRESPONDING FIELDS OF TABLE IT_EINENA
        
FOR ALL ENTRIES IN IT_ITAB
        
WHERE MATNR IT_ITABMATNR
              
AND LIFNR IT_ITABLIFNR.

 

7、inner join(等值连接):只返回两个表中联结字段相等的行

 SELECT
        RSEG
~MATNR“物料编码,物料号
        RSEG
~WERKS“事业部
        RSEG
~BELNR“凭证编号
        RBKP
~LIFNR“供应商编码
        RBKP
~BUDAT“记账日期
      
INTO CORRESPONDING FIELDS OF TABLE IT_RSEGRBKP
      
FROM RSEG INNER JOIN RBKP ON RSEG~BELNR RBKP~BELNR
      
WHERE MATNR IN S_MATNR
        
AND BUDAT IN S_BUDAT.

 

8、binary search 二分查找

READ TABLE TAB2 WITH KEY COLUMN1 = ‘0800113864’ COLUMN2 = ‘2012‘ COLUMN3 = ‘3018054318′ BINARY SEARCH.

的时候,使用到COLUMN1 = ‘0800113864’ COLUMN2 = ‘2012‘ COLUMN3 = ‘3018054318′ ,则对此系统中内表排序的时候需要依照此三个字段进行排序

 

9、报表展示字段及显示名称

FORM SET_FIELDCAT .
  
PERFORM CREATE_FIELD_CATALOG USING: “‘CHECK’ ‘列号’ ‘X’ ‘X’ ‘5’,
                                      
‘MATNR’ ‘物料号’ ” ” ’13’,
                                      
‘MAKTX’ ‘物料描述’ ” ” ’20’,
                                      
‘WGBEZ’ ‘物料组’ ” ” ’10’, ENDFORM.  

 

10、对重复的代码可以写在一个form中,然后perform调用

abap开发语法小结

11、将一个表的数据赋给另外一个表:it_itab[] = it_itab2[].

 

12、将一个表的数据添加到另一个表中:append lines of it_itab3to it_itab2.

其中it_itab2和it_itab3是带表头的内表

 

13、abap开发不建议多层loop嵌套,会导致执行效率低,一般情况下是loop里用read语句查找符合条件的数据,使用read的时候一定要判断sy-subrc是否为0(为0表示有数据),如果不判断的话容易导致内存溢出。

使用SELECT语句选择查询: 
SY-SUBRC = 0:
至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。 
SY-SUBRC = 4:
没有数据。 
SY-SUBRC = 8:
只有使用“SELECT SINGLE FOR UPDATE”时才会有, 
             
表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。 

 

14Readloop的区别:

内表中只有一条记录的时候,或者是读取的条件能确定内表中的唯一一条记录的时候使用read,如果有多条重复数据那么就建议使用loop。

15、按类型定义变量

ABAP的变量需要通过关键字DATA进行声明,当同时声明多个变量时,需要在DATA后面加冒号,如“DATA:”,每个变量可以分配默认值,使用”VALUE ‘默认值’”进行定义,基本语法如下:

    DATA <变量名>(长度)  TYPE  <数据类型>  VALUE  <默认值>.

例如:定义一个C类型变量“TEST1”,长度为10,默认值为“HelloSap” 。

DATAtest1(10) TYPE C VALUE ‘HELLO SAP’.

 

16、定义使用到的类型池及选择屏幕所要参照的表名(

slis应该是个Package.声明了它后就可以用它包括的函数、类、消息等。

*   type-pools define(定义使用到的类型池)
TYPE-POOLS:SLIS.
*   tables define(定义选择屏幕所要参照的表名)

TABLES:AFKO,AFPO,ZMM015.

17.将所有输出的数据放在一个it_itab里可以提高执行效率。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/10000.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信