您的位置:首页 > 运维架构

REUSE_ALV_POPUP_TO_SELECT的使用技巧

2014-03-11 16:18 351 查看
通过函数的方法弹出一个对话框,提供选择数据的功能……

DATA: BEGIN OF lt_exidv OCCURS 0,
box TYPE char1,
exidv TYPE exidv,
status TYPE char4,
END OF lt_exidv.
DATA:   lt_fieldcat TYPE slis_t_fieldcat_alv,
lh_fieldcat TYPE LINE OF slis_t_fieldcat_alv.
DATA:l_message(100),l_line.

lt_exidv-exidv = '620000000014597001'.
lt_exidv-status = '001'.
APPEND lt_exidv.
lt_exidv-exidv = '620000000014597002'.
lt_exidv-status = '002'.
APPEND lt_exidv.
lt_exidv-exidv = '620000000014597003'.
lt_exidv-status = '003'.
APPEND lt_exidv.

IF lt_fieldcat[] IS INITIAL.
CLEAR lh_fieldcat.
lh_fieldcat-fieldname  = 'EXIDV'.
lh_fieldcat-seltext_l = '箱码'.
lh_fieldcat-outputlen = 20.
APPEND lh_fieldcat TO lt_fieldcat[].
*  CLEAR lh_fieldcat.
*  lh_fieldcat-fieldname  = 'STATUS'.
*  lh_fieldcat-seltext_l = '箱状态'.
*  lh_fieldcat-outputlen = 10.
*  APPEND lh_fieldcat TO lt_fieldcat[].
ENDIF.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
*       I_TITLE                       =
*       I_SELECTION                   = 'X'
*       I_ALLOW_NO_SELECTION          =
i_zebra                       = 'X'
*       I_SCREEN_START_COLUMN         = 0
*       I_SCREEN_START_LINE           = 0
*       I_SCREEN_END_COLUMN           = 0
*       I_SCREEN_END_LINE             = 0
i_checkbox_fieldname          = 'BOX'
*       I_LINEMARK_FIELDNAME          =
*       I_SCROLL_TO_SEL_LINE          = 'X'
i_tabname                     = 'LT_EXIDV'
*       I_STRUCTURE_NAME              =
it_fieldcat                   = lt_fieldcat[]
*       IT_EXCLUDING                  =
*       I_CALLBACK_PROGRAM            =
*       I_CALLBACK_USER_COMMAND       =
*       IS_PRIVATE                    =
*     IMPORTING
*       ES_SELFIELD                   =
*       E_EXIT                        =
TABLES
t_outtab                      = lt_exidv
EXCEPTIONS
program_error                 = 1
OTHERS                        = 2.
IF sy-subrc <> 0.
*  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
*    EXPORTING
*      msgid               = sy-msgid
*      msgnr               = sy-msgno
*      msgv1               = sy-msgv1
*      msgv2               = sy-msgv2
*      msgv3               = sy-msgv3
*      msgv4               = sy-msgv4
*    IMPORTING
*      message_text_output = l_message.
*  MESSAGE l_message TYPE 'E'.
ELSE.
LOOP AT lt_exidv WHERE box = 'X'.
l_line = sy-tabix.
CONCATENATE l_message '您选中的有第' l_line '行...' INTO l_message.
ENDLOOP.
MESSAGE l_message TYPE 'I'.
ENDIF.


View Code
弹出的DIALOG示例:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐