2025-01-13
[SAP/ABAP] ALV SAMPLE LOGIC(grid alv)
너무너무너무 간단한 ALV SAMPLE LOGIC 가져왔다.
그냥 ALV 껍데기라고 생각하시고 봐주심..
SFLIGHT CARRID 와 CONNID 를 셀렉트해서 조회하는 아주 간단한 조회프로그램!


REPORT ZYJ_TEST09.
INCLUDE ZYJ_TEST09TOP.
INCLUDE ZYJ_TEST09SEL.
INCLUDE ZYJ_TEST09ALV.
INCLUDE ZYJ_TEST09O01.
INCLUDE ZYJ_TEST09I01.
INCLUDE ZYJ_TEST09F01.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.
START-OF-SELECTION.
PERFORM GET_DATA.
END-OF-SELECTION.
CALL SCREEN 100.
ZYJ_TEST09TOP
TABLES : SFLIGHT.
*OUTPUT TAB
DATA: GT_SFLIGHT LIKE TABLE OF SFLIGHT,
GS_SFLIGHT LIKE LINE OF GT_SFLIGHT.
*------ ALV ---------------------------------------------------*
DATA : GR_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GR_GRID1 TYPE REF TO CL_GUI_ALV_GRID.
DATA : GT_FCAT1 TYPE LVC_T_FCAT WITH HEADER LINE,
GS_FCAT1_LN LIKE LINE OF GT_FCAT1.
DATA : GS_LAYOUT1 TYPE LVC_S_LAYO.
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT.
DATA: GS_FCATLAYO TYPE LVC_S_LAYO.
DATA : OK_CODE TYPE SY-UCOMM.
ZYJ_TEST09SEL
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_CARRID TYPE SFLIGHT-CARRID OBLIGATORY.
SELECT-OPTIONS : S_CONNID FOR SFLIGHT-CONNID.
SELECTION-SCREEN END OF BLOCK BL1.
ZYJ_TEST09ALV
*&---------------------------------------------------------------------*
*& Include ZYJ_TEST09ALV
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form SET_CONTAINER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_CONTAINER .
CREATE OBJECT GR_CONTAINER1
EXPORTING
CONTAINER_NAME = 'CONTAINER1'.
ENDFORM. " SET_CONTAINER
*&---------------------------------------------------------------------*
*& Form SET_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_ALV_GRID .
CREATE OBJECT GR_GRID1
EXPORTING
I_PARENT = GR_CONTAINER1.
ENDFORM. " SET_ALV_GRID
*&---------------------------------------------------------------------*
*& Form FIELDCAT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_INIT .
DATA: LT_FIELDCAT TYPE LVC_T_FCAT,
LS_FCAT TYPE LVC_S_FCAT,
LS_FIELDCAT TYPE LVC_S_FCAT.
DATA: LT_DD03T LIKE DD03T OCCURS 0 WITH HEADER LINE.
PERFORM SET_FIELDCAT.
LOOP AT GT_FIELDCAT INTO GS_FIELDCAT.
* LS_FIELDCAT-REF_FIELD = LS_FIELDCAT-FIELDNAME.
GS_FIELDCAT-COLTEXT = GS_FIELDCAT-REF_FIELD.
IF GS_FIELDCAT-REF_FIELD IS INITIAL.
GS_FIELDCAT-COLTEXT = GS_FIELDCAT-FIELDNAME.
ENDIF.
MODIFY GT_FIELDCAT FROM GS_FIELDCAT.
ENDLOOP.
ENDFORM. " FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form LAYOUT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GS_FCATLAYO text
*----------------------------------------------------------------------*
FORM LAYOUT_BUILD CHANGING G_LAYOUT TYPE LVC_S_LAYO.
CLEAR G_LAYOUT.
G_LAYOUT-CWIDTH_OPT = 'X'.
G_LAYOUT-SEL_MODE = 'D'.
G_LAYOUT-ZEBRA = 'X'.
G_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.
ENDFORM. " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*& Form EVENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM EVENT_BUILD .
ENDFORM. " EVENT_BUILD
*&---------------------------------------------------------------------*
*& Form SET_TOOLBAR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_TOOLBAR .
ENDFORM. " SET_TOOLBAR
*&---------------------------------------------------------------------*
*& Form REUSE_ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM REUSE_ALV_LIST_DISPLAY .
CALL METHOD GR_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = GS_FCATLAYO
CHANGING
IT_FIELDCATALOG = GT_FIELDCAT
IT_OUTTAB = GT_SFLIGHT.
ENDFORM. " REUSE_ALV_LIST_DISPLAY
ZYJ_TEST09O01
*&---------------------------------------------------------------------*
*& Include ZYJ_TEST09O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module SET_ALV OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SET_ALV OUTPUT.
IF GR_GRID1 IS INITIAL.
PERFORM SET_CONTAINER.
PERFORM SET_ALV_GRID.
PERFORM FIELDCAT_INIT.
PERFORM LAYOUT_BUILD CHANGING GS_FCATLAYO.
PERFORM EVENT_BUILD.
PERFORM SET_TOOLBAR.
PERFORM REUSE_ALV_LIST_DISPLAY.
ENDIF.
ENDMODULE. " SET_ALV OUTPUT
ZYJ_TEST09I01
*&---------------------------------------------------------------------*
*& Include ZYJ_TEST09I01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
ZYJ_TEST09F01
*&---------------------------------------------------------------------*
*& Include ZYJ_TEST09F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT
WHERE CARRID = P_CARRID
AND CONNID IN S_CONNID.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form SET_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_FIELDCAT .
GS_FIELDCAT-FIELDNAME = 'CARRID'.
GS_FIELDCAT-COL_POS = '1'.
GS_FIELDCAT-JUST = 'C'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'CONNID'.
GS_FIELDCAT-COL_POS = '2'.
GS_FIELDCAT-JUST = 'C'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
ENDFORM. " SET_FIELDCAT