메뉴 건너뛰기

SAP 한국 커뮤니티

REPORT z18_03.

sapjoy 2012.08.01 20:51 조회 수 : 4550

REPORT  z18_03.
TYPES: item_table_type LIKE STANDARD TABLE OF mtreeitm
       WITH DEFAULT KEY.
DATA : con1_ref TYPE REF TO cl_gui_custom_container,
       tree_con_ref TYPE REF TO cl_gui_custom_container.

 

DATA : g_tree TYPE REF TO cl_gui_column_tree.

 

DATA : grid1  TYPE REF TO cl_gui_alv_grid,
       gs_variant     LIKE disvariant,
       gs_cs_variant  LIKE disvariant,
       gs_layout     TYPE lvc_s_layo,
       gs_toolbar    TYPE ui_functions,
       gt_sort       TYPE lvc_t_sort,
       gt_sflight   TYPE TABLE OF sflight.

 

* Fields on Dynpro 100
DATA: g_event(30),
      g_node_key TYPE tv_nodekey,
      g_item_name TYPE tv_itmname,
      g_header_name TYPE tv_hdrname.

 


DATA BEGIN OF  gt_carrid OCCURS 0.
DATA carrid LIKE sflight-carrid.
DATA seatsocc LIKE sflight-seatsocc.
DATA seatsocc_b LIKE sflight-seatsocc_b.
DATA seatsocc_f LIKE sflight-seatsocc_f.

 

DATA END OF gt_carrid.

 

DATA : gs_carrid LIKE gt_carrid.

 

TYPE-POOLS: icon.

 

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.

 

  PUBLIC SECTION.
    METHODS:

 

    handle_double_click
        FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING e_row e_column.

 

    METHODS : handle_toolbar
                 FOR EVENT toolbar OF cl_gui_alv_grid
                 IMPORTING e_object e_interactive.

 


    METHODS : handle_command
                 FOR EVENT user_command OF cl_gui_alv_grid
                 IMPORTING e_ucomm.

 

  PRIVATE SECTION.

 

ENDCLASS.                    "lcl_event_receiver DEFINITION

 

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.

 

  METHOD handle_double_click.
    LEAVE TO SCREEN 0.
  ENDMETHOD.                           "handle_double_click

 

*-- Add ToolBar
  METHOD handle_toolbar.

 

    DATA: ls_toolbar  TYPE stb_button.

 

    CLEAR ls_toolbar.
    ls_toolbar-butn_type = 3.
    APPEND ls_toolbar    TO e_object->mt_toolbar.

 

    CLEAR ls_toolbar.
    ls_toolbar-function  = 'RESH'.
    ls_toolbar-icon      = icon_refresh.
    ls_toolbar-quickinfo = 'Refresh'.
    ls_toolbar-text      = ' '.
    ls_toolbar-disabled  = ' '.
    APPEND ls_toolbar    TO e_object->mt_toolbar.

 

  ENDMETHOD.                    "handle_toolbar

 


  METHOD handle_command.
    DATA : l_scroll TYPE lvc_s_stbl.

 

    CASE e_ucomm.
*-  REFRESH
      WHEN 'RESH'.

 

        SELECT * FROM sflight INTO TABLE gt_sflight.
        l_scroll-row = 'X'.
        l_scroll-col = 'X'.
        CALL METHOD grid1->refresh_table_display
          EXPORTING
            i_soft_refresh = ''
            is_stable      = l_scroll.
    ENDCASE.
  ENDMETHOD.                    "handle_user_command

 


ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION

 


*---------------------------------------------------------------------*
*       CLASS LCL_APPLICATION DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*

 

DATA :event_receiver TYPE REF TO lcl_event_receiver.

 

START-OF-SELECTION.
  SELECT * FROM sflight INTO TABLE gt_sflight.

 


  CALL SCREEN 100.

 


*---------------------------------------------------------------------*
*  MODULE init_con OUTPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE init_con OUTPUT.

 

  IF con1_ref IS INITIAL.
    CREATE OBJECT con1_ref
    EXPORTING container_name = 'CON1'.

 


    CREATE OBJECT grid1
           EXPORTING
                i_parent = con1_ref.

 

    PERFORM setting_layout.
    PERFORM setting_toolbar.
    PERFORM setting_sort.
    PERFORM setting_event.

 

    CALL METHOD grid1->set_table_for_first_display
      EXPORTING
        i_structure_name     = 'SFLIGHT'
        i_save               = 'A'
        is_variant           = gs_variant  " variant display
        i_default            = ' '
        is_layout            = gs_layout
        it_toolbar_excluding = gs_toolbar
      CHANGING
        it_outtab            = gt_sflight
        it_sort              = gt_sort.

 

 

 


  ENDIF.
ENDMODULE.                 " init_con  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'G100'.
*  SET TITLEBAR 'xxx'.

 

ENDMODULE.                 " STATUS_0100  OUTPUT

 

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

 

  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      LEAVE TO SCREEN 0.
  ENDCASE.

 

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  setting_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GS_LAYOCAT  text
*----------------------------------------------------------------------*
FORM setting_layout .
*- General display options
  gs_layout-cwidth_opt = 'X'.
* TITLE BAR
  gs_layout-grid_title = 'COLUMN TREE TEST'.
* Selection modes for SEL_MODE
  gs_layout-sel_mode = 'D'.
* Grid pattern
  gs_layout-zebra      = 'X'.
ENDFORM.                    " setting_layout
*&---------------------------------------------------------------------*
*&      Form  setting_toolbar
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GS_TOOLBAR  text
*----------------------------------------------------------------------*
FORM setting_toolbar.
  DATA: l_exclude TYPE ui_func.

 

  l_exclude = cl_gui_alv_grid=>mc_fc_save_variant.
  APPEND l_exclude TO gs_toolbar.

 

  l_exclude = cl_gui_alv_grid=>mc_fc_maintain_variant.
  APPEND l_exclude TO gs_toolbar.

 

ENDFORM.                    " setting_toolbar
*&---------------------------------------------------------------------*
*&      Form  setting_sort
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM setting_sort .

 

  DATA : ls_sort TYPE lvc_s_sort.

 

  ls_sort-spos = '1'.
  ls_sort-fieldname = 'CARRID'.
  ls_sort-up = 'X'.
  ls_sort-subtot = 'X'.
  APPEND ls_sort TO gt_sort.

 

ENDFORM.                    " setting_sort
*&---------------------------------------------------------------------*
*&      Form  setting_event
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM setting_event .
  CREATE OBJECT event_receiver.
  SET HANDLER event_receiver->handle_double_click FOR grid1.
  SET HANDLER event_receiver->handle_toolbar       FOR grid1.
  SET HANDLER event_receiver->handle_command       FOR grid1.

 

ENDFORM.                    " setting_event
*&---------------------------------------------------------------------*
*&      Module  init_tree  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE init_tree OUTPUT.
  DATA: node_table TYPE treev_ntab,
        item_table TYPE item_table_type,
        event TYPE cntl_simple_event,
        events TYPE cntl_simple_events,
        hierarchy_header TYPE treev_hhdr.

 

  IF g_tree IS INITIAL.

 

    CREATE OBJECT tree_con_ref
      EXPORTING
        " the container is linked to the custom control with the
        " name 'TREE_CONTAINER' on the dynpro
        container_name = 'TREE_CONTAINER'.

 

    hierarchy_header-heading = 'Hierarchy Header'.
    hierarchy_header-width = 30.         " width: 30 characters
* create a tree control
    CREATE OBJECT g_tree
      EXPORTING
      parent              = tree_con_ref
      node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
      item_selection = 'X'
      hierarchy_column_name = 'HEADTEXT'
     hierarchy_header = hierarchy_header.

 

 

 


    PERFORM build_node_and_item_table USING node_table item_table.

 

    CALL METHOD g_tree->add_nodes_and_items
      EXPORTING
        node_table                = node_table
        item_table                = item_table
        item_table_structure_name = 'MTREEITM'.

 


* Column2
    CALL METHOD g_tree->add_column
      EXPORTING
        name        = 'SEATSOCC'
        width       = 15
        header_text = 'Economy Class'.

 


    CALL METHOD g_tree->add_column
      EXPORTING
        name        = 'SEATSOCC_B'
        width       = 15
        alignment   = cl_gui_column_tree=>align_right
        header_text = 'Business Class'.

 


    CALL METHOD g_tree->add_column
      EXPORTING
        name        = 'SEATSOCC_F'
        width       = 15
        alignment   = cl_gui_column_tree=>align_right
        header_text = 'First Class'.

 

 

 

    CALL METHOD g_tree->expand_node
      EXPORTING
        node_key = 'Root'.

 

  ENDIF.

 

ENDMODULE.                 " init_tree  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  BUILD_NODE_AND_ITEM_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_NODE_TABLE  text
*      -->P_ITEM_TABLE  text
*----------------------------------------------------------------------*
FORM build_node_and_item_table
  USING
    node_table TYPE treev_ntab
    item_table TYPE item_table_type.

 

  DATA: node TYPE treev_node,
         item TYPE mtreeitm.

 

  node-node_key = 'Root'.                                   "#EC NOTEXT
  CLEAR node-relatkey.      " Special case: A root node has no parent
  CLEAR node-relatship.     " node.
  node-hidden = ' '.        " The node is visible,
  node-disabled = ' '.      " selectable,
  node-isfolder = 'X'.      " a folder.
  CLEAR node-n_image.       " Folder-/ Leaf-Symbol in state "closed":
  CLEAR node-exp_image.     " Folder-/ Leaf-Symbol in state "open":
  CLEAR node-expander.      " see below.
  APPEND node TO node_table.

 

  CLEAR item.
  item-node_key = 'Root'.
  item-item_name = 'HEADTEXT'.     " Item of Column 'Column1'
*  item-class = cl_gui_column_tree=>item_class_text. " Text Item
  item-text = 'AIRPLANE'.                                   "#EC NOTEXT
  APPEND item TO item_table.

 


  node-node_key = 'CARRID'.                                 "#EC NOTEXT
  node-relatkey = 'Root'.
  node-relatship = cl_gui_column_tree=>relat_last_child.
  node-hidden = ' '.
  node-disabled = ' '.
  node-isfolder = 'X'.
  CLEAR node-n_image.
  CLEAR node-exp_image.
  node-expander = 'X'. " The node is marked with a '+', although
  APPEND node TO node_table.

 


  CLEAR item.
  item-node_key = 'CARRID'.
  item-item_name = 'HEADTEXT'.     " Item of Column 'Column1'
*  item-class = cl_gui_column_tree=>item_class_text. " Text Item
  item-text = 'Carrid ID'.                                  "#EC NOTEXT
  APPEND item TO item_table.

 

 

 

ENDFORM.                    " build_node_and_item_table

번호 제목 글쓴이 날짜 조회 수
669 <b>easy abap 소스 전체 파일 입니다. [188] file sapjoy 2008.05.01 10120
668 REPORT z18_033 [47] sapjoy 2008.10.13 9031
667 REPORT Z15_003 [49] sapjoy 2008.04.15 7498
666 report zunicode_027. [4] sapjoy 2008.11.21 6262
665 REPORT Z20_01. sapjoy 2012.08.01 5056
» REPORT z18_03. sapjoy 2012.08.01 4550
663 Z01_012 [9] sapjoy 2006.12.02 4543
662 Z_EXPORT_GRAPHIC_FROM_SE78 [1] sapjoy 2011.03.28 4443
661 report zsapdoi_002. sapjoy 2008.12.26 4405
660 REPORT zsmw0010 sapjoy 2010.10.11 4313
659 REPORT z18_028 sapjoy 2007.04.09 4278
658 report zsalv_045 . sapjoy 2010.08.20 4262
657 Dynamic Table Maintenance [1] sapjoy 2006.12.04 4093
656 REPORT ZTABLE_UTIL sapjoy 2010.10.09 4010
655 REPORT Z19_02. sapjoy 2012.08.01 3921
654 report zsaptip_009 [1] sapjoy 2010.12.10 3852
653 INCLUDE ZXF04U01 sapjoy 2008.12.15 3695
652 REPORT ZTEST_ABAPTPDF sapjoy 2010.10.09 3691
651 REPORT Z_3DGRAPH. [1] sapjoy 2010.10.17 3659
650 REPORT zfalv_011. sapjoy 2011.02.16 3624