因爲不常寫代碼,常常會忘記一些語句的用法。在這裏面記錄下來以後可以過來查閱。
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.