[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

Add a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다