ABAP 模板

REPORT XXXXX.
TABLES:XXX.

DATA:GC_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA:GT_FCAT TYPE LVC_T_FCAT.
DATA:GS_LOUT TYPE LVC_S_LAYO.
DATA:GS_VARI TYPE DISVARIANT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_WERKS TYPE MARD-WERKS OBLIGATORY.
SELECT-OPTIONS:S_MATNR FOR MARA-MATNR .
SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.

START-OF-SELECTION.
PERFORM AUTHORITY-CHECK.
PERFORM FRM_GET_DATA.
PERFORM FRM_PROCESS_DATA.
PERFORM FRM_DISPLAY_DATA.

FORM FRM_DISPLAY_DATA .

PERFORM FRM_PREPARE_ALV.
PERFORM FRM_CALL_ALV TABLES GT_LIST
USING GT_FCAT
GS_LOUT
GS_VARI
'FRM_PF_STATUS'
'FRM_USER_COMMAND'
''.

ENDFORM.

FORM FRM_PREPARE_ALV .

PERFORM FRM_FIELD_LVC TABLES GT_FCAT
USING 'MATNR' 'MATNR' 'MAST' '' ''
'物料' '' '' '' '' ''.
GS_LOUT-BOX_FNAME = 'SEL'.
GS_LOUT-ZEBRA = 'X'.
GS_LOUT-CWIDTH_OPT = 'X'.
GS_VARI-REPORT = SY-REPID.
GS_VARI-LOG_GROUP = '1'.

ENDFORM.

FORM FRM_FIELD_LVC TABLES PT_FIELDCAT_LVC STRUCTURE LVC_S_FCAT
USING PV_FIELDNAME TYPE LVC_RFNAME
PV_REF_FIELD TYPE LVC_RFNAME
PV_REF_TABLE TYPE LVC_TNAME
PV_CFIELDNAME TYPE LVC_CFNAME
PV_QFIELDNAME TYPE LVC_QFNAME
PV_TEXT TYPE STRING
PV_EDIT TYPE C
PV_NZERO TYPE C
PV_F4 TYPE C
PV_NO_OUT TYPE C
PV_OUTPUTLEN TYPE I.

DATA:LS_FIELDCAT_LVC TYPE LVC_S_FCAT.

CLEAR LS_FIELDCAT_LVC.
LS_FIELDCAT_LVC-FIELDNAME = PV_FIELDNAME.
LS_FIELDCAT_LVC-REF_FIELD = PV_REF_FIELD.
LS_FIELDCAT_LVC-REF_TABLE = PV_REF_TABLE.
LS_FIELDCAT_LVC-CFIELDNAME = PV_CFIELDNAME.
LS_FIELDCAT_LVC-QFIELDNAME = PV_QFIELDNAME.
LS_FIELDCAT_LVC-COLDDICTXT = 'L'.
LS_FIELDCAT_LVC-SCRTEXT_L = PV_TEXT.
LS_FIELDCAT_LVC-EDIT = PV_EDIT.
LS_FIELDCAT_LVC-NO_ZERO = PV_NZERO.
LS_FIELDCAT_LVC-F4AVAILABL = PV_F4.
LS_FIELDCAT_LVC-NO_OUT = PV_NO_OUT.
LS_FIELDCAT_LVC-OUTPUTLEN = PV_OUTPUTLEN.
IF LS_FIELDCAT_LVC-FIELDNAME = 'SEL'.
LS_FIELDCAT_LVC-CHECKBOX = 'X'.
ENDIF.
APPEND LS_FIELDCAT_LVC TO PT_FIELDCAT_LVC.
ENDFORM.

FORM FRM_CALL_ALV TABLES PT_OUTTAB
USING PT_FIELDCAT TYPE LVC_T_FCAT
PS_LAYOUT TYPE LVC_S_LAYO
PS_VARIANT TYPE DISVARIANT
PV_STATUS TYPE SLIS_FORMNAME
PV_COMMAND TYPE SLIS_FORMNAME
PV_TITLE TYPE SLIS_FORMNAME.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PV_STATUS
I_CALLBACK_USER_COMMAND = PV_COMMAND
I_CALLBACK_TOP_OF_PAGE = PV_TITLE
IS_LAYOUT_LVC = PS_LAYOUT
IT_FIELDCAT_LVC = PT_FIELDCAT
I_SAVE = 'A'
IS_VARIANT = PS_VARIANT
TABLES
T_OUTTAB = PT_OUTTAB
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.

FORM FRM_PF_STATUS USING PT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STATUS'.
*
* IF GC_GRID IS INITIAL.
* CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* IMPORTING
* E_GRID = GC_GRID.
*
* CALL METHOD GC_GRID->REGISTER_EDIT_EVENT
* EXPORTING
* I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED. "MC_EVT_ENTER.
*
* CREATE OBJECT GC_RECEIVER.
* SET HANDLER GC_RECEIVER->HANDLE_DATA_CHANGED_FINISHED FOR GC_GRID.
* ENDIF.
ENDFORM.

FORM FRM_USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM
PS_SELFIELD TYPE SLIS_SELFIELD.

PS_SELFIELD-COL_STABLE = 'X'.
PS_SELFIELD-ROW_STABLE = 'X'.
PS_SELFIELD-REFRESH = 'X'.

* CALL METHOD GC_GRID->CHECK_CHANGED_DATA.

READ TABLE GT_LIST INTO GS_LIST INDEX PS_SELFIELD-TABINDEX.
CASE PV_UCOMM.
WHEN '&IC1'.
WHEN OTHERS.
ENDCASE.
ENDFORM.

猜你喜欢

转载自www.cnblogs.com/WACBZWY/p/11141502.html