在SAP ABAP編程序常的一些語句

因爲不常寫代碼,常常會忘記一些語句的用法。在這裏面記錄下來以後可以過來查閱。

1、在內表刪除重複行

      SORT itab BY ANLKL.
   DELETE ADJACENT DUPLICATES FROM ITAB.

2、SMARTFORM 裏面輸出內容左對齊

   a、在格式裏面選擇左對齊

   b、 (CZ)用來清除數據前面的零。 例如: &WATAB-YSYYF(CZ)&    

3、 describe  算一個內表多少行。

4、TABLES: pernr,pyorgscreen,pytimescreen,pa0006. 聲明一個表結構,也就是相當於有了一個與表同名的結構。

    如果沒有上面的語句,則下面這個語句是非法的:

     SELECT SINGLE *  FROM PA0006 WHERE PERNR = P_P0001_PERNR AND ANSSA IN ('2','3','5'). 

     上面那個語句少了“INTO”。

 

  

5、高效loop語句例子:

             flag = ''.
            loop at gs_payroll-nat-phf into ls_phf
                               where pbyer ne '3' .  "只有不等於3(不繳)的,就……
              
                flag = 'X'.
                    exit.
            endloop.

6、 range 列表的使用:

       ranges: lr_bukrs for t001-bukrs.
   lr_bukrs-sign = 'I'.
   lr_bukrs-option = 'EQ'.
   loop at it_company into wa_company.

     lr_bukrs-low = wa_company-bukrs.
     append lr_bukrs.
    
     delete from zzfitdaybalance   where bukrs = wa_company-bukrs  and begda < wa_company-begda .

   endloop.

   "  刪除不在配置表的公司數據。
   delete from zzfitdaybalance   where bukrs not in lr_bukrs.
           

7、 fildf symble 的應用(可以使得程序更加簡潔)。

      DATA: otab  TYPE abap_sortorder_tab,
        oline TYPE abap_sortorder.

  FIELD-SYMBOLS: <fs_FIELD>.
 

  oline-name = 'F0390'.
  APPEND oline TO otab .
  oline-name = 'F0005'.
  APPEND oline TO otab .

  TRY.
      SORT <fs_itab>  BY (otab).
    CATCH cx_sy_dyn_table_ill_comp_val.
      MESSAGE 'Wrong column name!' TYPE 'I' DISPLAY LIKE 'E'.
      LEAVE PROGRAM.
  ENDTRY.
  LOOP at <fs_itab> assigning <fs_line> .
    assign component 'F0000' OF STRUCTURE <fs_line> TO <fs_FIELD>.
    <FS_FIELD> = SY-TABIX.
  ENDLOOP.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章