1.在ALV添加check选中后值不变化
data:o_alv type REF TO cl_gui_alv_grid.
在user_command下
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = o_alv.
CALL METHOD o_alv->check_changed_data
* IMPORTING
* e_valid =
* CHANGING
* c_refresh = 'X'
即可解决
2.单位转换
"单位转换
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = xxx
language = sy-langu
IMPORTING
output = xxx
EXCEPTIONS
unit_not_found = 1
OTHERS = 2
3.跳转事务携带参数
1.如果是选择屏幕无法通过SET PARAMETER携带参数则用SUBMIT
SUBMIT pp_pick_list VIA SELECTION-SCREEN "停留屏幕
WITH s_matnr IN lr_matnr
WITH s_aufnr IN lr_aufnr AND RETURN. "返回后回到现在的页面
2.直接通过Call Transction
CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.
4.前导零增加删除
"增加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = MATNR
IMPORTING
output = MATNR.
"去掉前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = MATNR
IMPORTING
output = MATNR.
5.快捷增加去除前导零
"增加前导0
DATA: ls_matnr TYPE matnr VALUE '15000042'.
DATA(ls_in_matnr) = |{ ls_matnr ALPHA = IN }|.
WRITE: ls_in_matnr. "示例结果:000000000015000042
"删除前导0
DATA: gs_matnr TYPE matnr VALUE '000000000015000042'.
DATA(gs_out_matnr) = |{ gs_matnr ALPHA = OUT }|.
WRITE:/ gs_out_matnr. "示例结果:15000042
6.增加进度提示
DO 1000 TIMES.
LV_PERCENTAGE = sy-index / 1000.
DATA(lv_temp) = | { sy-index } / 1000 '正在处理,耐心等候' |.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = LV_PERCENTAGE
text = lv_temp.
ENDDO.
7.F4搜索帮助
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'VTEXT' "将内表哪一列数据取出
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'GV_VTEXT' "显示在哪个控件上
value_org = 'S'
callback_program = sy-repid
TABLES
value_tab = lt_f4 "数据内表
return_tab = lt_return
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
8.Dialog下拉框
DATA lt_values TYPE vrm_values WITH HEADER LINE.
CLEAR lt_values.
lt_values-key = 'A'.
lt_values-text = '销售部'.
APPEND lt_values.
CLEAR lt_values.
lt_values-key = 'B'.
lt_values-text = '市场部'.
APPEND lt_values.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'GV_DROPDOWN' "dialog控件名
values = lt_values[]
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
9.编号自增长
T-CODE:SNRO
间隔:
编号长度域:NUMC10
% 警告:99.0
定制:
缓冲:无缓冲
Function
DATA: LV_NUMBER TYPE I.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '02' "编号
object = 'YTEST001' "对象名称
QUANTITY = '1'
IMPORTING
NUMBER = LV_NUMBER
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
BUFFER_OVERFLOW = 7
OTHERS = 8
10.生产订单的状态
表:TJ02
关联状态表:JEST
11.连续打印
LV_CONTROL_PARAMETERS TYPE SSFCTRLOP
在循环打印中
AT FIRST.
LV_CONTROL_PARAMETERS-NO_CLOSE = 'X'.
ENDAT.
AT LAST.
LV_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
ENDAT.
在循环最后
LV_CONTROL_PARAMETERS-NO_OPEN = 'X'.
12.MODULE STATUS排除状态栏
DATA:fcodes TYPE TABLE OF fcode .
CLEAR fcodes .
IF rb_sea EQ 'X' .
APPEND 'CHANGE' TO fcodes .
ELSEIF rb_mod EQ 'X' .
APPEND 'DELETE' TO fcodes .
ELSEIF rb_del EQ 'X' .
APPEND 'CHANGE' TO fcodes .
ENDIF .
"添加EXCLUDING排除按钮
SET PF-STATUS 'STATUS_0100' EXCLUDING fcodes .
SET TITLEBAR 'TITLE0100'.
13.退出标准程序回到初始页(例如VA02删除销售订单不允许,回到VA02页面)
LEAVE TO TRANSACTION SY-TCODE.