在SAP ABAP编程序常的一些语句

目录

1、在内表删除重复行

2、SMARTFORM 里面输出内容左对齐

3、 describe  算一个内表多少行。

4、声明一个表结构,也就是相当于有了一个与表同名的结构。

5、高效loop语句例子:

6、 range 列表的使用:

8、去掉及增加前导'0' 、前导空格。


因为不常写代码,常常会忘记一些语句的用法。在这里面记录下来以后可以过来查阅。

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 .

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值