通过函数的方法弹出一个对话框,提供选择数据的功能……
1 DATA: BEGIN OF lt_exidv OCCURS 0, 2 box TYPE char1, 3 exidv TYPE exidv, 4 status TYPE char4, 5 END OF lt_exidv. 6 DATA: lt_fieldcat TYPE slis_t_fieldcat_alv, 7 lh_fieldcat TYPE LINE OF slis_t_fieldcat_alv. 8 DATA:l_message(100),l_line. 9 10 lt_exidv-exidv = '620000000014597001'.11 lt_exidv-status = '001'.12 APPEND lt_exidv.13 lt_exidv-exidv = '620000000014597002'.14 lt_exidv-status = '002'.15 APPEND lt_exidv.16 lt_exidv-exidv = '620000000014597003'.17 lt_exidv-status = '003'.18 APPEND lt_exidv.19 20 IF lt_fieldcat[] IS INITIAL.21 CLEAR lh_fieldcat.22 lh_fieldcat-fieldname = 'EXIDV'.23 lh_fieldcat-seltext_l = '箱码'.24 lh_fieldcat-outputlen = 20.25 APPEND lh_fieldcat TO lt_fieldcat[].26 * CLEAR lh_fieldcat.27 * lh_fieldcat-fieldname = 'STATUS'.28 * lh_fieldcat-seltext_l = '箱状态'.29 * lh_fieldcat-outputlen = 10.30 * APPEND lh_fieldcat TO lt_fieldcat[].31 ENDIF.32 33 CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'34 EXPORTING35 * I_TITLE =36 * I_SELECTION = 'X'37 * I_ALLOW_NO_SELECTION =38 i_zebra = 'X'39 * I_SCREEN_START_COLUMN = 040 * I_SCREEN_START_LINE = 041 * I_SCREEN_END_COLUMN = 042 * I_SCREEN_END_LINE = 043 i_checkbox_fieldname = 'BOX'44 * I_LINEMARK_FIELDNAME =45 * I_SCROLL_TO_SEL_LINE = 'X'46 i_tabname = 'LT_EXIDV'47 * I_STRUCTURE_NAME =48 it_fieldcat = lt_fieldcat[]49 * IT_EXCLUDING =50 * I_CALLBACK_PROGRAM =51 * I_CALLBACK_USER_COMMAND =52 * IS_PRIVATE =53 * IMPORTING54 * ES_SELFIELD =55 * E_EXIT =56 TABLES57 t_outtab = lt_exidv58 EXCEPTIONS59 program_error = 160 OTHERS = 2.61 IF sy-subrc <> 0.62 * CALL FUNCTION 'MESSAGE_TEXT_BUILD'63 * EXPORTING64 * msgid = sy-msgid65 * msgnr = sy-msgno66 * msgv1 = sy-msgv167 * msgv2 = sy-msgv268 * msgv3 = sy-msgv369 * msgv4 = sy-msgv470 * IMPORTING71 * message_text_output = l_message.72 * MESSAGE l_message TYPE 'E'.73 ELSE.74 LOOP AT lt_exidv WHERE box = 'X'.75 l_line = sy-tabix.76 CONCATENATE l_message '您选中的有第' l_line '行...' INTO l_message.77 ENDLOOP.78 MESSAGE l_message TYPE 'I'.79 ENDIF.
弹出的DIALOG示例: