需求是这样的比如我双击alv想查看里面具体内容
双击任一 一行再弹出个界面
废话不多说 --开始放代码:
定义内表 GT_VBAP 显示数据内表 GT_FIELDCAT 弹出界面要显示的字段
从这开始----------------------------------------
TYPES:BEGIN OF TS_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
END OF TS_VBAP.
DATA GT_VBAP TYPE TABLE OF TS_VBAP.
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
"下面是就是要实现的form
FORM DISPLAY_DATA .
PERFORM SET_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "系统标准函数
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* 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_VBAP "要输出内表数据
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_DATA
到此结束 ---------------------------------------
PERFORM GET_DATA."取数据到内表
FORM GET_DATA .
SELECT VBELN
POSNR
MATNR
VRKME
FROM VBAP
INTO TABLE GT_VBAP
WHERE MATNR = P_MATNR.
ENDFORM. " GET_DATA
PERFORM SET_FIELDCAT."读取要显示几个字段
FORM SET_FIELDCAT .
DATA : LS_FIELDCAT LIKE LINE OF GT_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'VBELN'.
APPEND LS_FIELDCAT TO GT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'POSNR'.
APPEND LS_FIELDCAT TO GT_FIELDCAT.
CLEAR LS_FIELDCAT.
ENDFORM. " SET_FIELDCAT