目录
1.TIMESTAMP搜索帮助
PARAMETERS:
p_begin TYPE ty_screen-date_begiu MATCHCODE OBJECT cpe_timestamp, "开始时间戳
p_end TYPE ty_screen-date_end MATCHCODE OBJECT cpe_timestamp. "结束时间戳
效果:
2.隐藏选择屏幕SELECT-OPTIONS限制处理
限制选择屏幕select-options功能选项
*--------------------------------------------------------------------*
* 选择屏幕事件
*--------------------------------------------------------------------*
INITIALIZATION.
* 初始化选择屏幕
PERFORM frm_init_screen.
FORM frm_init_screen .
DATA:
ls_restriction TYPE sscr_restrict,
ls_opt_list TYPE sscr_opt_list,
ls_ass_tab TYPE sscr_ass.
* 定义限制规则(只能选择小于等于)
ls_opt_list-name = 'OBJECTKEY'.
ls_opt_list-options-le = 'X'.
APPEND ls_opt_list TO ls_restriction-opt_list_tab.
* 指定限制字段
ls_ass_tab-kind = 'S'.
ls_ass_tab-name = 'S_AUGDT'.
ls_ass_tab-sg_main = 'I'.
ls_ass_tab-sg_addy = space.
ls_ass_tab-op_main = 'OBJECTKEY'.
APPEND ls_ass_tab TO ls_restriction-ass_tab.
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
* PROGRAM =
restriction = ls_restriction
* DB = ' '
EXCEPTIONS
too_late = 1
repeated = 2
selopt_without_options = 3
selopt_without_signs = 4
invalid_sign = 5
empty_option_list = 6
invalid_kind = 7
repeated_kind_a = 8
OTHERS = 9.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " FRM_INIT_SCREEN
效果:
3.SELECT-OPTIONS转SQL条件
ECC版本:CL_LIB_SELTAB
TABLES t001w.
SELECT-OPTIONS s_werks FOR t001w-werks.
DATA:
lo_sel_tab TYPE REF TO cl_lib_seltab,
lv_where_clause TYPE string.
lo_sel_tab = cl_lib_seltab=>new( it_sel = s_werks[] ).
lv_where_clause = lo_sel_tab->sql_where_condition( iv_field = 'A.zfab' ).
WRITE lv_where_clause.
效果:
S4版本:CL_SHDB_SELTAB=>COMBINE_SELTABS
参考链接:在 AMDP 中处理 SELECT-OPTIONS 参数 - SAP Community
4.多消息弹窗函数
FB_MESSAGES_DISPLAY_POPUP(不显示序号)
效果展示:
C14Z_MESSAGES_SHOW_AS_POPUP(显示序号)
效果展示:
5.ALV显示前置空格
parameter0 = 'X' 即可,注:ECC版本该参数不生效。
DATA:
lt_makt LIKE TABLE OF makt,
lt_fcat TYPE lvc_t_fcat.
lt_makt = VALUE #( ( matnr = 'text1' maktx = ' 有前置空格' )
( matnr = 'text2' maktx = '无前置空格' ) ).
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'MAKT'
* I_CLIENT_NEVER_DISPLAY = 'X'
i_bypassing_buffer = 'X'
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = lt_fcat
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT lt_fcat ASSIGNING FIELD-SYMBOL(<ls_cat>).
IF <ls_cat>-fieldname = 'MAKTX'.
<ls_cat>-parameter0 = 'X'.
ENDIF.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
it_fieldcat_lvc = lt_fcat
TABLES
t_outtab = lt_makt
EXCEPTIONS
OTHERS = 1.