在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.

经验分享 程序员 微信小程序 职场和发展