SAP ABAP 开发中常用的方法总结
1, 在ABAP开发中, 我们经常会删除内表中的重复行,这时我们会需要一个很方便的语句,就是"DELETE
ADJACENT DUPLICATES FROM", 但是在使用这个语句,要注意它删除相邻的重复行,我们一般要通过SORT
对这个语句进行排序,示例如下:
DATA: BEGIN OF wa_pa0001,
pernr LIKE pa0001-pernr,
uname LIKE pa0001-uname,
bukrs LIKE pa0001-bukrs,
plans LIKE pa0001-plans,
END OF wa_pa0001.
DATA: itab_pa0001 LIKE TABLE OF wa_pa0001 WITH HEADER LINE.
DATA: BEGIN OF wa_pa0001,
pernr LIKE pa0001-pernr,
uname LIKE pa0001-uname,
bukrs LIKE pa0001-bukrs,
plans LIKE pa0001-plans,
END OF wa_pa0001.
DATA: itab_pa0001 LIKE TABLE OF wa_pa0001 WITH HEADER LINE.
SORT itab_pa0001 BY pernr.
DELETE ADJACENT DUPLICATES FROM itab_pa0001.
DELETE ADJACENT DUPLICATES FROM itab_pa0001.
2, 在ABAP开发中,有时要进行一个耗费时间的处理,这时不想让客户感到处理出现问题或者以为是电脑
死机,给出一个提示,“请等待的...”,可以使用下面语句:
CALL FUNCATION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = '数据处理中,请等待...'.
" 进行耗费时间处理
3, 在ABAP开发中,有时我们做的程序界面是不需要全部必选的,例如:
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE TEXT-001.
PARAMETERS: p_werks LIKE mseg-werks. " 物料凭证-工厂
PARAMETERS: p_lgort LIKE mseg-lgort OBLIGATORY. " 物料凭证-库存地点
SELECT-OPTION: s_mblnr FOR mseg-mblnr. " 物料凭证-编号
SELECTION-SCREEN END OF blk.
CALL FUNCATION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = '数据处理中,请等待...'.
" 进行耗费时间处理
3, 在ABAP开发中,有时我们做的程序界面是不需要全部必选的,例如:
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE TEXT-001.
PARAMETERS: p_werks LIKE mseg-werks. " 物料凭证-工厂
PARAMETERS: p_lgort LIKE mseg-lgort OBLIGATORY. " 物料凭证-库存地点
SELECT-OPTION: s_mblnr FOR mseg-mblnr. " 物料凭证-编号
SELECTION-SCREEN END OF blk.
在选在屏幕中p_lgort 是必选;s_mblnr 是一个范围,在OPEN-SQL中可以使用IN查询范围, 若s_mblnr
没有数据时,取全部,有数据时取符合条件的数据;p_werks为一个数据值,在写SQL语句时,我们要根
据条件进行SQL拼加。在这我们可以通过SELECT-OPTION 做一个操作,通过如下语句
SELECT-OPTION: s_werks FOR mseg-werks NO-EXTENSION NO INTERVALS. 可以去掉SELECT-OPTION 的区间选项、后缀选项,但有个问题是不能去掉"=、<=、<、>、>="选择。
SELECT-OPTION: s_werks FOR mseg-werks NO-EXTENSION NO INTERVALS. 可以去掉SELECT-OPTION 的区间选项、后缀选项,但有个问题是不能去掉"=、<=、<、>、>="选择。