题目 要求ALV展现数据。数据自取。要求ALV实现双击某条数据使用弹出显示他的具体详细信息。
*&---------------------------------------------------------------------*
*& Report ZLJH0911
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLJH0911.
**********************************************************************
*定义
**********************************************************************
type-POOLS: SLIS.
TYPES:BEGIN OF TYP_01,
MATNR TYPE MARA-MATNR,"物料编号
MAKTX TYPE MAKT-MAKTX,"物料描述
END OF TYP_01.
DATA GT_01 TYPE STANDARD TABLE OF TYP_01.
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DEFINE FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS = &1.
GS_FIELDCAT-fieldname = &2.
GS_FIELDCAT-SELTEXT_L = &3.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.
**********************************************************************
*SELECTION SCREEN
**********************************************************************
**********************************************************************
*AT SELECTION SCREEN
**********************************************************************
START-OF-SELECTION.
SELECT MARA~MATNR
MAKT~MAKTX
FROM MARA
INNER JOIN MAKT ON MARA~MATNR = MAKT~MATNR AND MAKT~SPRAS = SY-LANGU
into TABLE GT_01 UP TO 50 ROWS.
END-OF-SELECTION.
IF GT_01 IS NOT INITIAL.
PERFORM FRM_SHOW.
ELSE.
MESSAGE '无符合条件的数据' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
*&---------------------------------------------------------------------*
*& Form FRM_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_show .
PERFORM FRM_FIELDCAT.
PERFORM FRM_ALV_DISPLAY.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_fieldcat .
FIELDCAT '1' 'MATNR' '物料编号'.
FIELDCAT '2' 'MAKTX' '物料描述'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_ALV_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_alv_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG"SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'FRM_USERCOMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = GT_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = GT_01
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*----------------------------------------------------------------------*
* FORM FRM_USERCOMMAND
*----------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 TEXT
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_USERCOMMAND USING P_CODE TYPE SYUCOMM
CHANGING SEL TYPE SLIS_SELFIELD.
DATA LT_TAB TYPE STANDARD TABLE OF TYP_01.
CASE P_CODE.
WHEN '&IC1'.
READ TABLE GT_01 INTO DATA(GS_01) INDEX SEL-tabindex.
SELECT *
FROM MARA
INTO TABLE @DATA(GT_OUT)
WHERE MATNR = @GS_01-MATNR.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = '详细信息'
* I_SELECTION = 'X'
* I_ALLOW_NO_SELECTION =
I_ZEBRA = 'X'
* I_SCREEN_START_COLUMN = 50
* I_SCREEN_START_LINE = 5
* I_SCREEN_END_COLUMN = 200
* I_SCREEN_END_LINE = 50
* I_CHECKBOX_FIELDNAME =
* I_LINEMARK_FIELDNAME =
* I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'MARA'
I_STRUCTURE_NAME = 'MARA'
* IT_FIELDCAT =
* IT_EXCLUDING =
* I_CALLBACK_PROGRAM =
* I_CALLBACK_USER_COMMAND =
* IS_PRIVATE =
* IMPORTING
* ES_SELFIELD =
* E_EXIT =
tables
t_outtab = gt_out
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDCASE.
ENDFORM.
