ABAP DUMP ERROR 24시

ALV( EVENT 심화1) 본문

[SAP]ABAP/ABAP 강의 SYNC

ALV( EVENT 심화1)

이운형 2022. 7. 25. 12:15
반응형
*&---------------------------------------------------------------------*
*& Report ZC5R07_PLANETYPE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*

INCLUDE ZC5R07_PLANETYPE_TOP                    .    " Global Data

 INCLUDE ZC5R07_PLANETYPE_S01                    .  " SELECTION-SCREEN
 INCLUDE ZC5R07_PLANETYPE_C01                    .  " LOCAL-CLASS
 INCLUDE ZC5R07_PLANETYPE_O01                    .  " PBO-Modules
 INCLUDE ZC5R07_PLANETYPE_I01                    .  " PAI-Modules
 INCLUDE ZC5R07_PLANETYPE_F01                    .  " FORM-Routines


 START-OF-SELECTION.
 PERFORM get_data. "scarr and sflight data"


 call Screen '0100'.


 *&---------------------------------------------------------------------*
 *& Include ZC5R07_PLANETYPE_TOP                     - Report ZC5R07_PLANETYPE
 *&---------------------------------------------------------------------*
 REPORT zc5r07_planetype MESSAGE-ID zc507.

 CLASS lcl_event_handler DEFINITION DEFERRED.


 TABLES : scarr, sflight.

 DATA : BEGIN OF gs_data,
          carrid    TYPE scarr-carrid,
          carrname  TYPE scarr-carrname,
          connid    TYPE sflight-connid,
          fldate    TYPE sflight-fldate,
          planetype TYPE sflight-planetype,
          price     TYPE sflight-price,
          currency  TYPE sflight-currency,
          url       TYPE scarr-url,
        END OF gs_data,

        gs_saplane TYPE saplane,
        gt_saplane TYPE TABLE OF saplane,
        gs_sbook   TYPE sbook,
        gt_sbook   TYPE TABLE of sbook,
        gt_data    LIKE TABLE OF gs_data.


 * ALV 관련
 DATA : gcl_container TYPE REF TO cl_gui_docking_container,
        gcl_alv_grid  TYPE REF TO cl_gui_alv_grid,
        gs_fcat       TYPE lvc_s_fcat,
        gt_fcat       TYPE lvc_t_fcat,
        gs_layout     TYPE lvc_s_layo,
        gs_variant    TYPE disvariant,
        gs_stable     TYPE lvc_s_stbl,
        gcl_handler   TYPE REF TO lcl_event_handler.

 *popup 관련
 DATA : gcl_container_pop TYPE REF TO cl_gui_custom_container,
        gcl_grid_pop      TYPE REF TO cl_gui_alv_grid,
        gs_fcat_pop       TYPE lvc_s_fcat,
        gt_fcat_pop       TYPE lvc_t_fcat,
        gs_layout_pop     TYPE lvc_s_layo.

 *popup 관련2
 DATA : gcl_container_pop2 TYPE REF TO cl_gui_custom_container,
        gcl_grid_pop2      TYPE REF TO cl_gui_alv_grid,
        gs_fcat_pop2       TYPE lvc_s_fcat,
        gt_fcat_pop2       TYPE lvc_t_fcat,
        gs_layout_pop2     TYPE lvc_s_layo.

 DATA : gv_okcode TYPE sy-ucomm,
        gt_rows   TYPE lvc_t_row,
        gs_row    TYPE lvc_s_row.



*&---------------------------------------------------------------------*
*& Include          ZC5R07_PLANETYPE_S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE TEXT-t01.

  SELECT-OPTIONS : so_carid FOR scarr-carrid,
                   so_conid FOR sflight-connid,
                   so_plntp FOR sflight-planetype NO INTERVALS NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK bl1.

*&---------------------------------------------------------------------*
*& Include          ZC5R07_PLANETYPE_C01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Class lcl_event_handler
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION FINAL.
  PUBLIC SECTION.

    METHODS : handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
      IMPORTING
        e_column_id
        e_row_id.

    METHODS : handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
      IMPORTING
        e_column
        e_row.

ENDCLASS.
*&---------------------------------------------------------------------*
*& Class (Implementation) lcl_event_handler
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.

  METHOD handle_hotspot_click.

    PERFORM handle_hotspot_click USING e_column_id e_row_id.

  ENDMETHOD.

  METHOD handle_double_click.

    PERFORM handle_double_click USING e_column e_row.

  ENDMETHOD.
ENDCLASS.

*&---------------------------------------------------------------------*
*& Include          ZC5R07_PLANETYPE_O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'S0100'.
  SET TITLEBAR 'T0100'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SET_FCAT_LAYOUT OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE set_fcat_layout OUTPUT.
  IF gs_layout IS INITIAL.
    PERFORM gs_fcat_layout.
  ENDIF.


ENDMODULE.
*&---------------------------------------------------------------------*
*& Module DISPLAY_SCREEN OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE display_screen OUTPUT.
  PERFORM display_screen.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0101 OUTPUT.
 SET PF-STATUS 'S0101'.
 SET TITLEBAR 'T0101'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SET_FCAT_LAYOUT_POP OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE set_fcat_layout_pop OUTPUT.

IF gt_fcat_pop is INITIAL.

  PERFORM gt_fcat_layout_pop.

ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_0102 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0102 OUTPUT.
 SET PF-STATUS 'S0102'.
 SET TITLEBAR 'T0102'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SET_FCAT_LAYOUT_POP2 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE set_fcat_layout_pop2 OUTPUT.

  IF gt_fcat_pop2 is INITIAL.

  PERFORM gt_fcat_layout_pop2.

ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module DISPLAY_SCREEN_POP2 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE display_screen_pop2 OUTPUT.

PERFORM display_screen_pop2.

ENDMODULE.


*&---------------------------------------------------------------------*
*& Include          ZC5R07_PLANETYPE_I01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  EXIT_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit_0100 INPUT.

  CALL METHOD : gcl_alv_grid->free( ), gcl_container->free( ).

  FREE : gcl_alv_grid, gcl_container.

  LEAVE TO SCREEN 0.


ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  EXIT_0101  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit_0101 INPUT.

  CALL METHOD : gcl_grid_pop->free( ), gcl_container_pop->free( ).

  FREE : gcl_grid_pop, gcl_container_pop.

  LEAVE TO SCREEN 0.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  EXIT_0102  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit_0102 INPUT.

  CALL METHOD : gcl_grid_pop2->free( ), gcl_container_pop2->free( ).

  FREE : gcl_grid_pop2, gcl_container_pop2.

  LEAVE TO SCREEN 0.

ENDMODULE.

*&---------------------------------------------------------------------*
*& Include          ZC5R07_PLANETYPE_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM get_data .

*  DATA : lv_tabix TYPE sy-tabix,
*         ls_style TYPE lvc_s_styl,
*         lt_style TYPE lvc_t_styl.

  CLEAR   gs_data.
  REFRESH gt_data.

  SELECT a~carrid a~carrname a~url
         b~connid b~fldate b~price b~currency b~planetype
    INTO CORRESPONDING FIELDS OF TABLE gt_data
    FROM scarr AS a
   INNER JOIN sflight AS b
      ON a~carrid = b~carrid
   WHERE b~connid    IN so_conid
     AND b~planetype IN so_plntp
     AND a~carrid    IN so_carid.

  IF sy-subrc NE 0.
    MESSAGE s001.
    LEAVE LIST-PROCESSING.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form gs_fcat_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM gs_fcat_layout .

  gs_layout-zebra = 'X'.
  gs_layout-sel_mode = 'D'.
  gs_layout-cwidth_opt = 'X'.

  PERFORM set_fcat USING :
  ' '   'CARRID'      ' '     'SCARR'     'CARRID'      ' ',
  ' '   'CARRNAME'    ' '     'SCARR'     'CARRNAME'    ' ',
  ' '   'CONNID'      ' '     'SFLIGHT'   'CONNID'      ' ',
  ' '   'FLDATE'      ' '     'SFLIGHT'   'FLDATE'      ' ',
  ' '   'PLANETYPE'   ' '     'SFLIGHT'   'PLANETYPE'   ' ',
  ' '   'PRICE'       ' '     'SFLIGHT'   'PRICE'       ' ',
  ' '   'CURRENCY'    ' '     'SFLIGHT'   'CURRENCY'    ' ',
  ' '   'URL'         ' '     'SCARR'     'URL'         ' '.




ENDFORM.
*&---------------------------------------------------------------------*
*& Form set_fcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&---------------------------------------------------------------------*
FORM set_fcat  USING pv_key
                     pv_field
                     pv_text
                     pv_ref_table
                     pv_ref_field
                     pv_edit.

  gs_fcat-key       = pv_key.
  gs_fcat-fieldname = pv_field.
  gs_fcat-coltext   = pv_text.
  gs_fcat-ref_table = pv_ref_table.
  gs_fcat-ref_field = pv_ref_field.
  gs_fcat-edit      = pv_edit.


  CASE pv_field.
    WHEN 'PRICE'.
      gs_fcat-cfieldname = 'CURUENCY'.
    WHEN 'PLANETYPE'.
      gs_fcat-hotspot = 'X'.
  ENDCASE.

  APPEND gs_fcat TO gt_fcat.
  CLEAR : gs_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_screen
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM display_screen .
  IF gcl_container IS NOT BOUND.

    CREATE OBJECT gcl_container
      EXPORTING
        repid     = sy-repid
        dynnr     = sy-dynnr
        side      = cl_gui_docking_container=>dock_at_left
        extension = 3000.

    CREATE OBJECT gcl_alv_grid
      EXPORTING
        i_parent = gcl_container.

    gs_variant-report = sy-repid.

    CREATE OBJECT gcl_handler.

    SET HANDLER : gcl_handler->handle_hotspot_click FOR gcl_alv_grid.

    CREATE OBJECT gcl_handler.

    SET HANDLER : gcl_handler->handle_double_click FOR gcl_alv_grid.

    CALL METHOD gcl_alv_grid->set_table_for_first_display
      EXPORTING
        is_variant      = gs_variant
        i_save          = 'A'
        i_default       = 'X'
        is_layout       = gs_layout
      CHANGING
        it_outtab       = gt_data
        it_fieldcatalog = gt_fcat.

  ENDIF.


ENDFORM.
*&---------------------------------------------------------------------*
*& Form handle_double_click
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> E_COLUMN
*&      --> E_ROW
*&---------------------------------------------------------------------*
FORM handle_hotspot_click  USING  ps_column TYPE lvc_s_col
                                  ps_row    TYPE lvc_s_row.
  IF sy-subrc EQ 0.
*   MESSAGE i000 WITH ps_column-fieldname ps_row-index.
    READ TABLE gt_data INTO  gs_data INDEX ps_row-index.

    CASE ps_column-fieldname. "이벤트 일어난 field별로 로직을 나누고자 할떄 사용.
      WHEN 'PLANETYPE'.
        PERFORM get_saplane_data USING gs_data-planetype.
    ENDCASE.

  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_saplane_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GS_DATA_PLANETYPE
*&---------------------------------------------------------------------*
FORM get_saplane_data  USING  pv_planetype.

  CLEAR   : gs_saplane.
  REFRESH : gt_saplane.

  SELECT planetype seatsmax consum con_unit
         tankcap cap_unit weight wei_unit span span_unit leng
         leng_unit op_speed speed_unit producer seatsmax_b seatsmax_f
    INTO CORRESPONDING FIELDS OF TABLE gt_saplane
    FROM saplane
    WHERE planetype = pv_planetype.

  IF sy-subrc NE 0.
    MESSAGE s000 WITH TEXT-m01 DISPLAY LIKE 'E'.
    EXIT. "stop 이나 leave list processing 하지말고 exit 써주세요.   exit 은 if 문만 빠져나가게 하는 역할이야.
  ENDIF.

  CALL SCREEN '0101' STARTING AT 20 3.



ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_sbook_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GS_DATA_CARRID
*&      --> GS_DATA_CONNID
*&      --> GS_DATA_FLDATE
*&---------------------------------------------------------------------*
FORM get_sbook_data  USING    p_gs_data_carrid
                              p_gs_data_connid
                              p_gs_data_fldate.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form gt_fcat_layout_pop
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM gt_fcat_layout_pop .

  gs_layout_pop-zebra      = 'X'.
  gs_layout_pop-sel_mode   = 'D'.
  gs_layout_pop-cwidth_opt = 'X'.
  gs_layout_pop-no_toolbar = 'X'. "ALV 의 Tool bar 를 없앰

  PERFORM set_fcat_pop USING :
  'X'   'PLANETYPE'   ' '   'SAPLANE'    'PLANETYPE' ,
  'X'   'SEATSMAX'    ' '   'SAPLANE'    'SEATSMAX'  ,
  ' '   'CONSUM'      ' '   'SAPLANE'    'CONSUM'    ,
  ' '   'CON_UNIT'    ' '   'SAPLANE'    'CON_UNIT'  ,
  ' '   'TANKCAP'     ' '   'SAPLANE'    'TANKCAP'   ,
  ' '   'CAP_UNIT'    ' '   'SAPLANE'    'CAP_UNIT'  ,
  ' '   'WEIGHT'      ' '   'SAPLANE'    'WEIGHT'    ,
  ' '   'WEI_UNIT'    ' '   'SAPLANE'    'WEI_UNIT'  ,
  ' '   'SPAN'        ' '   'SAPLANE'    'SPAN'      ,
  ' '   'SPAN_UNIT'   ' '   'SAPLANE'    'SPAN_UNIT' ,
  ' '   'LENG'        ' '   'SAPLANE'    'LENG'      ,
  ' '   'LENG_UNIT'   ' '   'SAPLANE'    'LENG_UNIT' ,
  ' '   'OP_SPEED'    ' '   'SAPLANE'    'OP_SPEED'  ,
  ' '   'SPEED_UNIT'  ' '   'SAPLANE'    'SPEED_UNIT',
  ' '   'PRODUCER'    ' '   'SAPLANE'    'PRODUCER'  ,
  ' '   'SEATSMAX_B'  ' '   'SAPLANE'    'SEATSMAX_B',
  ' '   'SEATSMAX_F'  ' '   'SAPLANE'    'SEATSMAX_F'.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form set_fcat_pop
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&---------------------------------------------------------------------*
FORM set_fcat_pop  USING pv_key pv_field pv_text pv_ref_table pv_ref_field.

  gs_fcat_pop-key       = pv_key.
  gs_fcat_pop-fieldname = pv_field.
  gs_fcat_pop-coltext   = pv_text.
  gs_fcat_pop-ref_table = pv_ref_table.
  gs_fcat_pop-ref_field = pv_ref_field.

  CASE pv_field.
    WHEN 'TANKCAP'.
      gs_fcat_pop-qfieldname = 'CAP_UNIT'.
    WHEN 'WEIGHT'.
      gs_fcat_pop-qfieldname = 'WEI_UNIT'.
    WHEN 'OP_SPEED'.
      gs_fcat_pop-qfieldname = 'SPEED_UNIT'.

  ENDCASE.

  APPEND gs_fcat_pop TO gt_fcat_pop.
  CLEAR  gs_fcat_pop.

ENDFORM.
*&---------------------------------------------------------------------*
*& Module DISPLAY_SCREEN_POP OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE display_screen_pop OUTPUT.

  PERFORM display_screen_pop.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Form display_screen_pop
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM display_screen_pop .

  IF gcl_container_pop IS NOT BOUND.

    CREATE OBJECT gcl_container_pop
      EXPORTING
        container_name = 'GCL_CONTAINER_POP'.

    CREATE OBJECT gcl_grid_pop
      EXPORTING
        i_parent = gcl_container_pop.

    CALL METHOD gcl_grid_pop->set_table_for_first_display
      EXPORTING
        i_save          = 'A'
        i_default       = 'X'
        is_layout       = gs_layout_pop
      CHANGING
        it_outtab       = gt_saplane
        it_fieldcatalog = gt_fcat_pop.


  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form handle_double_click
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> E_COLUMN
*&      --> E_ROW
*&---------------------------------------------------------------------*
FORM handle_double_click  USING   ps_column TYPE lvc_s_col
                                  ps_row    TYPE lvc_s_row.
  IF sy-subrc EQ 0.

*   MESSAGE i000 WITH ps_column-fieldname ps_row-index.
    READ TABLE gt_data INTO  gs_data INDEX ps_row-index.


    IF ps_column-fieldname <> 'PLANETYPE'.

      PERFORM get_sbook USING gs_data-carrid gs_data-connid gs_data-fldate.
    ENDIF.


  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_sbook
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GS_DATA_PLANETYPE
*&---------------------------------------------------------------------*
FORM get_sbook  USING   pv_carrid pv_connid pv_fldate.

  CLEAR : gs_sbook.
  REFRESH : gt_sbook.

  SELECT carrid connid fldate bookid customid custtype
         smoker luggweight wunit invoice class forcuram forcurkey
         loccuram loccurkey order_date counter agencynum cancelled
         reserved passname passform passbirth
    INTO CORRESPONDING FIELDS OF TABLE gt_sbook
    FROM sbook
    WHERE carrid = pv_carrid
      AND connid = pv_connid
      AND fldate = pv_fldate.


  IF sy-subrc NE 0.
    MESSAGE s000 WITH TEXT-m01 DISPLAY LIKE 'E'.
    EXIT. "stop 이나 leave list processing 하지말고 exit 써주세요.   exit 은 if 문만 빠져나가게 하는 역할이야.
  ENDIF.

  CALL SCREEN '0102' STARTING AT 20 3.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form gt_fcat_layout_pop2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM gt_fcat_layout_pop2 .

  gs_layout_pop2-zebra      = 'X'.
  gs_layout_pop2-sel_mode   = 'D'.
  gs_layout_pop2-cwidth_opt = 'X'.
  gs_layout_pop2-no_toolbar = 'X'. "ALV 의 Tool bar 를 없앰

  PERFORM set_fcat_pop2 USING :
  ' '   'CARRID'      ' '   'SBOOK'    'CARRID' ,
  ' '   'CONNID'      ' '   'SBOOK'    'CONNID' ,
  ' '   'FLDATE'      ' '   'SBOOK'    'FLDATE' ,
  ' '   'BOOKID'      ' '   'SBOOK'    'BOOKID' ,
  ' '   'CUSTOMID'    ' '   'SBOOK'  'CUSTOMID' ,
  ' '   'CUSTTYPE'    ' '   'SBOOK'  'CUSTTYPE' ,
  ' '   'SMOKER'      ' '   'SBOOK'    'SMOKER' ,
  ' '   'LUGGWEIGHT'  ' '   'SBOOK' 'LUGGWEIGHT',
  ' '   'WUNIT'       ' '   'SBOOK'    'WUNIT'  ,
  ' '   'INVOICE'     ' '   'SBOOK'   'INVOICE' ,
  ' '   'CLASS'       ' '   'SBOOK'    'CLASS'  ,
  ' '   'FORCURAM'    ' '   'SBOOK'  'FORCURAM' ,
  ' '   'FORCURKEY'   ' '   'SBOOK' 'FORCURKEY' ,
  ' '   'LOCCURAM'    ' '   'SBOOK'  'LOCCURAM' ,
  ' '   'LOCCURKEY'   ' '   'SBOOK' 'LOCCURKEY' ,
  ' '   'ORDER_DATE'  ' '   'SBOOK' 'ORDER_DATE' ,
  ' '   'COUNTER'     ' '   'SBOOK'   'COUNTER' ,
  ' '   'AGENCYNUM'   ' '   'SBOOK' 'AGENCYNUM' ,
  ' '   'CANCELLED'   ' '   'SBOOK' 'CANCELLED' ,
  ' '   'RESERVED'    ' '   'SBOOK'  'RESERVED' ,
  ' '   'PASSNAME'    ' '   'SBOOK'  'PASSNAME' ,
  ' '   'PASSFORM'    ' '   'SBOOK'  'PASSFORM' ,
  ' '   'PASSFORM'    ' '   'SBOOK'  'PASSFORM' ,
  ' '   'PASSBIRTH'   ' '   'SBOOK' 'PASSBIRTH' .


ENDFORM.
*&---------------------------------------------------------------------*
*& Form set_fcat_pop2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&---------------------------------------------------------------------*
FORM set_fcat_pop2  USING pv_key pv_field pv_text pv_ref_table pv_ref_field.

  gs_fcat_pop2-key       = pv_key.
  gs_fcat_pop2-fieldname = pv_field.
  gs_fcat_pop2-coltext   = pv_text.
  gs_fcat_pop2-ref_table = pv_ref_table.
  gs_fcat_pop2-ref_field = pv_ref_field.


  APPEND gs_fcat_pop2 TO gt_fcat_pop2.
  CLEAR  gs_fcat_pop2.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_screen_pop2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM display_screen_pop2 .

  IF gcl_container_pop2 IS NOT BOUND.

    CREATE OBJECT gcl_container_pop2
      EXPORTING
        container_name = 'GCL_CONTAINER_POP2'.

    CREATE OBJECT gcl_grid_pop2
      EXPORTING
        i_parent = gcl_container_pop2.


    CALL METHOD gcl_grid_pop2->set_table_for_first_display
      EXPORTING
        i_save          = 'A'
        i_default       = 'X'
        is_layout       = gs_layout_pop2
      CHANGING
        it_outtab       = gt_sbook
        it_fieldcatalog = gt_fcat_pop2.

  ENDIF.

ENDFORM.

 

 

module pool 프로그램

 

top 에 가보면 report 가 아니라 program이라고 써져있다.


# 바로 Screen 을 만들어서 제공한다.

 

# get from Program 에서 보이지 않으면 Active 하고 다시 띄워야 한다.  일일히 코딩할꺼면 무조건 "대문자"

반응형

'[SAP]ABAP > ABAP 강의 SYNC' 카테고리의 다른 글

Module(Layout Format)  (0) 2022.07.27
ALV(MODULE POOL-2)  (0) 2022.07.26
ALV(sub table 생성하기)  (0) 2022.07.22
alv(delete 문 만들기, AVL 색 넣어주기)  (0) 2022.07.21
alv (application-toolbar)  (0) 2022.07.20
Comments