目录
因为不常写代码,常常会忘记一些语句的用法。在这里面记录下来以后可以过来查阅。
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、 field 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.
8、去掉及增加前导'0' 、前导空格。
去掉增加前导'0' 有很多种方法,本人最喜欢用下面这一种
wa_accountgl-bus_area = |{ rec_item-prctr ALPHA = OUT }|. " 去掉前导0
wa_accountgl-prctr = |{ rec_item-bus_area ALPHA = IN }|. " 增加前导0
9、去掉字符串中所有空格。
CONDENSE <fs>-accot NO-GAPS .