abap小技巧

DATA str(200) TYPE c.

str = 'hello wor(ld )lo'.

 REPLACE all OCCURRENCES OF '(' in str WITH '啦啦'."将中文空格转换为英文空格

 REPLACE all OCCURRENCES OF ')' in str WITH '哈哈'."将中文空格转换为英文空格

" 只保留双字节字符

REPLACE ALL OCCURRENCES OF REGEX '[u4e00-u9fa5]' IN lv_str1 WITH space.

" 只保留单字节字符

REPLACE ALL OCCURRENCES OF REGEX '[^x00-xff]' IN lv_str2 WITH space.

 

 

CONDENSE wa_z4cgpcm-ZYSYF NO-GAPS.去掉空格

 

在ABAP报表程序中,经常会涉及到内表字段的统计。而统计一般会以一个或多个Key字段为节点,统计其他某些数值类型字段。这里我们就会用到AT<level>.. ENDAT。

这里<LEVEL>包括: new , first , last , end of .

使用前提:一般在loop中使用,要提前对内表进行排序sort,排序的主键为统计时用到的节点(比如,按销售组织统计,节点为vkorg),Loop不能加where条件,在at 和 endat之间不能再使用loop语法。

那下面我们简单介绍一下四种用法:

1.AT NEW F. 代码段.. ENDAT. f是内表的一个字段,当内表中f字段以及f左边的任何字段内容发生变化时,执行其中的代码段。

  • 1
  • 2
  • 3
  • 4
  • 5

2. AT END OF F. 代码段.. ENDAT. 当f字段以及f左边字段内容即将发生变化时,执行代码段。

 

 

3. AT FIRST. 代码段.. ENDAT. 内表的第一行时,执行。

  • 1
  • 2
  • 3
  • 4

4. AT LAST. 代码段.. ENDAT. 内表的最后一行时执行。

 

https://blog.csdn.net/qq_36617521/article/details/53905577

 

 

RSCPSETEDITOR smartforms 用的

 

a+1(2) 在字符串a中从第一位开始取,取两位

 COLLECT SH.

将内表sh中的数据,在中文相等的条件下把数字类型的加起来,在统计前可以利用   MOVE-CORRESPONDING SH_T TO SH.

根据指定字段读取内表信息

 READ TABLE SM WITH KEY RSTGR = CONTENT-REASONCODE SHKZG = 'S' .

在alv或者tc上双击后跳转到其他事物码

 SET PARAMETER: ID 'BLN' FIELD DETAIL-BELNR,

                     ID 'BUK' FIELD DETAIL-BUKRS,

                     ID 'GJR' FIELD DETAIL-GJAHR.

      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.跳过第一屏

弹框

CALL FUNCTION 'POPUP_TO_CONFIRM'

    EXPORTING

      TEXT_QUESTION         = '是否保存报表?'

      ICON_BUTTON_1         = '是'

      ICON_BUTTON_2         = '否'

      DEFAULT_BUTTON        = '2'

      DISPLAY_CANCEL_BUTTON = 'X'

      START_COLUMN          = 25

      START_ROW             = 6

    IMPORTING

      ANSWER                = L_ANSWER

    EXCEPTIONS

      TEXT_NOT_FOUND        = 1

      OTHERS                = 2.

 

read table i_list with key f1 = f2 获取内表中指定字段得值

read table i_list index 2 获取内表中第二行数据

将内表中重复数据按条件删除

SORT itab by vbeln version.

DELETE ADJACENT DUPLICATES FROM itab COMPARING version vbeln.

 

获得内表的行数

line = lines( itab ).

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值