반응형
반응형
Posted by Brian.

댓글을 달아 주세요

ABAP 전체 메뉴얼

2011. 2. 11. 15:57

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

반응형




 

*&-------------------------------------------------------------------*
*& 모듈풀               SAPMZEDUM_99_003
*&
*&---------------------------------------------------------------------*
*&   ALV 기본 프로그램    Create by jhkim  On 2010/10/31  
*&-------------------------------------------------------------------*


INCLUDE mzedum_99_003top.                         " global Data
INCLUDE mzedum_99_003scr..                         " Screen-selection
INCLUDE mzedum_99_003alv.                            " ALVi
INCLUDE mzedum_99_003ent.                           " EVENT
INCLUDE mzedum_99_003o01.                           " Pbo
INCLUDE mzedum_99_003i01.                            " Pai
INCLUDE mzedum_99_003f01.                        .  " FORM-Routines

 

 

*&---------------------------------------------------------------------*
*&
*&   Include MZEDUM_99_003TOP
*&  수입의뢰 헤더 정보를 조회/입력/수정   있는 ALV Program
*&---------------------------------------------------------------------*

PROGRAM  sapmzedum_99_003.

TYPE
-POOLS: slis .

INCLUDE
 <icon>.
INCLUDE
 <color>.


TABLES
 : ztim0020.

DATA : BEGIN OF
 gs_0010 ,
      brand 
LIKE
 ztim0020-brand,
      filno   
LIKE
 ztim0020-filno,

    
END OF
  gs_0010 .


DATA : gt_0010 LIKE gs_0010 OCCURS 0 WITH HEADER LINE.

 

 

*&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_003SCR (스크린)
*&---------------------------------------------------------------------*

SELECTION-
SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.

PARAMETERS : pa_brand LIKE mara-brand_id  OBLIGATORY .  "브랜드


SELECTION-
SCREEN SKIP 1.

SELECT
-OPTIONS :

   so_filno    
FOR
    ztim0020-filno .


SELECTION-
SCREEN  END  OF  BLOCK
  b01.

SELECTION-
SCREEN COMMENT: /01(70text-002
,
                          /01(
70text-003.

 

 

 

 

 

*&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_003ALV

*&  ALV 구현 반드시 있어야 하는 로직이므로 그대로 복사 한다.
*&---------------------------------------------------------------------*

CLASS: lcl_alv_grid_0100       DEFINITION DEFERRED.

*& 상수를 선언한다.

DATA: gc_container_0100   TYPE scrfname VALUE 'CONTAINER_0100'.

*& 변수를 선언한다.

DATA: gv_container        TYPE scrfname VALUE space.

*& Alv관련 구조체/IT 선언한다.

DATA: gs_scroll           TYPE lvc_s_stbl,
      gs_fieldcat         
TYPE
 lvc_s_fcat.

*& 100화면

DATA: gs_grid_0100        TYPE REF TO lcl_alv_grid_0100,
      gt_sort_0100        
TYPE
 lvc_t_sort,
      gs_layout_0100      
TYPE
 lvc_s_layo,
      gs_variant_0100     
TYPE
 disvariant,
      gt_exclude_0100     
TYPE
 ui_functions,
      gt_fieldcat_0100    
TYPE
 lvc_t_fcat,
      gs_container_0100   
TYPE REF TO
 cl_gui_custom_container.

*----------------------------------------------------------------------*

*       CLASS lcl_alv_grid_0100  DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_alv_grid_0100 DEFINITION INHERITING FROM cl_gui_alv_grid.
  
PUBLIC SECTION
.
    
METHODS
: set_optimize_all_cols_0100,
*             set_cursor_0100  IMPORTING row     TYPE i

*                                        col     TYPE i,
             set_fixed_column_0100,
             set_row_resize_0100.
ENDCLASS.                    " lcl_alv_grid_0100 DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_alv_grid_0100  IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_alv_grid_0100 IMPLEMENTATION.
  
METHOD
 set_optimize_all_cols_0100.
    
CALL METHOD
 me->optimize_all_cols
         
EXPORTING

              include_header    = 
1.
  
ENDMETHOD.                    " set_optimize_all_cols_0100


  
METHOD set_fixed_column_0100.
    
CALL METHOD
 me->set_fixed_cols
         
EXPORTING

              cols            = 
4.
  
ENDMETHOD.                    " set_fixed_column_0100

*
  
METHOD set_row_resize_0100.
    
CALL METHOD
 me->set_resize_rows
         
EXPORTING

              enable          = 
1.
  
ENDMETHOD.                    " set_row_resize_0100

ENDCLASS.                    " lcl_alv_grid_0100 IMPLEMENTATION

 

 

 

 

*&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_003ENT
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&    INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.

*&---------------------------------------------------------------------*

*&    AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.

*&---------------------------------------------------------------------*

*&    START-OF-SELECTION.
*&---------------------------------------------------------------------*
START-
OF-SELECTION.
  
PERFORM
 read_data_from_ztim0020.
*&---------------------------------------------------------------------*

*&    END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
  
CALL SCREEN '0100'.

 

 

 

 

 

*----------------------------------------------------------------------*
***INCLUDE MZEDUM_99_003O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_0100 output.
  
SET PF-STATUS '0100'
.
  
SET TITLEBAR '0100'
.

endmodule.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  INIT_CONTAINER_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module INIT_CONTAINER_0100 output.
  
CHECK gs_container_0100 IS INITIAL
.

  
PERFORM
 create_init_0100.
endmodule.                 " INIT_CONTAINER_0100  OUTPUT

 

 

 

 

 

*----------------------------------------------------------------------*
***INCLUDE MZEDUM_99_003I01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  EXIT_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit_0100 INPUT.

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

    
WHEN 'CANC'
.
      
LEAVE PROGRAM
.

  
ENDCASE
.

ENDMODULE.                 " EXIT_0100  INPUT

 

 

 

 

 

 

 

*&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_003F01
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  READ_DATA_FROM_ZTIM0020
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM read_data_from_ztim0020 .

  
CLEAR
 : gt_0010[], gs_0010.


  
SELECT
 brand filno
        
INTO TABLE
 gt_0010
    
FROM
 ztim0020
    
WHERE brand = pa_brand AND

        filno 
IN so_filno.

ENDFORM.                    " READ_DATA_FROM_ZTIM0020

*&---------------------------------------------------------------------*
*&      Form  CREATE_INIT_0100
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM create_init_0100 .
  
CLEAR
: gs_layout_0100, gt_fieldcat_0100[], gt_exclude_0100[],
           gt_sort_0100[].

  
CREATE
 OBJECT gs_container_0100
    
EXPORTING

      container_name = gc_container_0100.

  
CREATE OBJECT gs_grid_0100
    
EXPORTING

      i_parent = gs_container_0100.

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

  gs_variant_0100-
report
 = sy-repid.

  
PERFORM
 build_fieldcat_0100.
  
PERFORM exclude_tb_functions  CHANGING
 gt_exclude_0100.

  
CALL METHOD
 gs_grid_0100->set_table_for_first_display
    
EXPORTING

      is_layout            = gs_layout_0100
      it_toolbar_excluding = gt_exclude_0100
      is_variant           = gs_variant_0100
      i_save               = 
'A'
    
CHANGING
      it_fieldcatalog      = gt_fieldcat_0100
      it_sort              = gt_sort_0100
      it_outtab            = gt_0010[].

  
CALL METHOD gs_grid_0100->register_edit_event
    
EXPORTING

      i_event_id = cl_gui_alv_grid=>mc_evt_modified.

  
CALL METHOD gs_grid_0100->set_toolbar_interactive.
ENDFORM.                    " CREATE_INIT_0100

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT_0100
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcat_0100 .
  
DATA: ls_fcat             TYPE
 slis_fieldcat_alv,
          lt_fcat             
TYPE
 slis_t_fieldcat_alv.

  
CLEAR
: lt_fcat[], gt_fieldcat_0100[].

  
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

    
EXPORTING
      i_program_name         = sy-repid
      i_internal_tabname     = 
'GS_0010'
      i_inclname             = sy-repid
    
CHANGING
      ct_fieldcat            = lt_fcat
    
EXCEPTIONS
      inconsistent_interface = 
1
      program_error          = 
2
      
OTHERS                 = 3.

  
LOOP AT lt_fcat  INTO
 ls_fcat.
    
CLEAR
: gs_fieldcat.
    
MOVE-CORRESPONDING ls_fcat  TO
 gs_fieldcat.

    
CASE
 gs_fieldcat-fieldname.

      
WHEN 'BRAND'
.
        gs_fieldcat-outputlen = 
'2'
.
        ls_fcat-seltext_l = 
'브랜드'
.
      
WHEN 'FILNO'
.
        gs_fieldcat-outputlen = 
'10'
.
        ls_fcat-seltext_l = 
'파일번호'
.
      
WHEN OTHERS
.
        
DELETE lt_fcat INDEX
 sy-tabix.
        
CONTINUE
.

    
ENDCASE
.

    gs_fieldcat-scrtext_l = ls_fcat-seltext_l.
    gs_fieldcat-colddictxt = 
'L'
.

    
APPEND gs_fieldcat  TO
 gt_fieldcat_0100.
  
ENDLOOP
.
ENDFORM.                    " BUILD_FIELDCAT_0100

*&---------------------------------------------------------------------*
*&      Form  EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_EXCLUDE_0100  text
*----------------------------------------------------------------------*
FORM exclude_tb_functions  CHANGING pt_exclude TYPE ui_functions.
  
DATA: ls_exclude             TYPE
 ui_func.

  ls_exclude = cl_gui_alv_grid=>mc_fc_detail.
  
APPEND ls_exclude TO
 pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_fc_find.

*  APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_check.
  
APPEND ls_exclude TO pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.

*  APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  
APPEND ls_exclude TO pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.

*  APPEND ls_exclude TO pt_exclude.
*
*  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
*  APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  
APPEND ls_exclude TO pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_fc_refresh.

*  APPEND ls_exclude TO pt_exclude.
*
*  ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc.
*  APPEND ls_exclude TO pt_exclude.
*
*  ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc.
*  APPEND ls_exclude TO pt_exclude.
*
  ls_exclude = cl_gui_alv_grid=>mc_fc_print.
  
APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_views.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_subtot.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_mb_sum.
  
APPEND ls_exclude TO
 pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_mb_export.

*  APPEND ls_exclude TO pt_exclude.

*  ls_exclude = cl_gui_alv_grid=>mc_mb_filter.
*  APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  
APPEND ls_exclude TO pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  
APPEND ls_exclude TO
 pt_exclude.

  ls_exclude = cl_gui_alv_grid=>mc_fc_info.
  
APPEND ls_exclude TO
 pt_exclude.

ENDFORM.                    " EXCLUDE_TB_FUNCTIONS


 

반응형
Posted by Brian.

댓글을 달아 주세요

반응형
사용자 삽입 이미지


* 소스에서 사용은 아래와같이  사용 합니다.

  CREATE OBJECT gs_grid_0101
         EXPORTING
              i_parent         = gs_contain_right
              i_appl_events    = gc_xfeld_x.

  gs_layout_0101-zebra = gc_xfeld_x.
  gs_layout_0101-no_rowmark = gc_xfeld_x.
  gs_layout_0101-cwidth_opt = gc_xfeld_x.
  gs_layout_0101-sel_mode = gc_postp_d.
  gs_layout_0101-ctab_fname = 'COLTAB'.
  gs_layout_0101-stylefname = 'CELLTAB'.
  gs_layout_0101-grid_title = '타이틀'.
  gs_layout_0101-smalltitLe = 'X'.
  gs_variant_0101-report = gv_repid.


반응형
Posted by Brian.

댓글을 달아 주세요

반응형



Function 코딩 방법 및 생성 법에 대한 메뉴얼 입니다.

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

반응형
Posted by Brian.

댓글을 달아 주세요

반응형

SELECTION-SCREEN 의 조건값을 통해 스크린을 호출하여 값을 조회하는 프로그램 이다.
일반 모듈풀 프로그램과 유사하지만 프로그램 생성 시 실행가능 프로그램으로 생성 한다

1. 조건 : 모듈풀 프로그램의 조건과 유사하나 스크린에 디자인된 조건이 아닌
             SELECTION-SCREEN 의 조건으로 코딩된 조건임

사용자 삽입 이미지



2. 결과값은 모듈풀 기본프로그램의 조건과 동일하다.


3. 프로그램 소스

 
INCLUDE MZEDUM_99_002TOP.
INCLUDE MZEDUM_99_002SCR.
INCLUDE MZEDUM_99_002ENT.
INCLUDE MZEDUM_99_002O01.
INCLUDE MZEDUM_99_002I01.
INCLUDE MZEDUM_99_002F01.



1)   MZEDUM_99_002TOP

  PROGRAM  sapmzedum_99_001 MESSAGE-ID zedur001.

TABLES : mara, makt.

DATA : BEGIN OF gs_0200,

  matnr LIKE mara-matnr ,
  item LIKE mara-zzitem_cd ,
  maktx LIKE makt-maktx,
  check TYPE char1,

END OF gs_0200.


CONTROLS: tc_0200 TYPE TABLEVIEW USING SCREEN 0200.

DATA : gt_0200 LIKE gs_0200 OCCURS 0 WITH HEADER LINE.

FIELD-SYMBOLS: <gt_0200> LIKE gs_0200.



2)   MZEDUM_99_002SCR

SELECTION-SCREEN  BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.


SELECT-OPTIONS:

   so_matnr FOR mara-matnr,
   so_item    FOR mara-zzitem_cd.

SELECTION-SCREEN END OF  BLOCK b1.



3)   MZEDUM_99_002ENT

  *-------------------------------------------------------------*
* INITIALIZATION                                                       *
*--------------------------------------------------------------*
INITIALIZATION.

START-OF-SELECTION.

  PERFORM read_data_for_mara.

END-OF-SELECTION.
  CALL SCREEN '0200'.
   <--- 여기서 스크린 200을 호출한다



4)     MZEDUM_99_002O01 

*&---------------------------------------------------------------*
*&  Include           MZEDUM_99_001O01
*&---------------------------------------------------------------*
*&---------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&--------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '0100'.
  SET TITLEBAR '0100'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------*
*&      Module  STATUS_0200  OUTPUT
*&--------------------------------------------------------------*
MODULE status_0200 OUTPUT.
  SET PF-STATUS '0200'.
  SET TITLEBAR '0200'.

ENDMODULE.                 " STATUS_0200  OUTPUT
*&-------------------------------------------------------------*
*&      Module  TC_DATA_CHANGE_TC_ATTR  OUTPUT
*&-----------------------------------------------------------*
*       text
*--------------------------------------------------------------*
MODULE tc_data_change_tc_attr OUTPUT.
  LOOP AT SCREEN.
     IF screen-group1 = 'INP'.
        screen-input = '1'.
        MODIFY SCREEN.
     ENDIF.
  ENDLOOP.


ENDMODULE.                 " TC_DATA_CHANGE_TC_ATTR  OUTPUT
*&--------------------------------------------------------------*
*&      Module  CHANGE_SCREEN_0200  OUTPUT
*&------------------------------------------------------------*
*       text
*----------------------------------------------------------*
module CHANGE_SCREEN_0200 output.

endmodule.                 " CHANGE_SCREEN_0200  OUTPUT





5) MZEDUM_99_002I01

*&-----------------------------------------------------*
*&      Module  PROGRAM_EXIT_0200  INPUT
*&----------------------------------------------------*
MODULE program_exit_0200 INPUT.
  CASE sy-ucomm.
    WHEN 'EXIT' OR 'BACK'.
      LEAVE TO SCREEN 0.

    WHEN 'CANC'.
      LEAVE PROGRAM.

  ENDCASE.
ENDMODULE.                 " PROGRAM_EXIT_0200  INPUT




6)    MZEDUM_99_002F01 

*&----------------------------------------------------------*
*&  Include           MZEDUM_99_001F01
*&------------------------------------------------------------*
*&--------------------------------------------------------------*
*&      Form  READ_DATA_FOR_MARA
*&---------------------------------------------------------------*
*       text
*-----------------------------------------------------------*
FORM read_data_for_mara .

  CLEAR: gs_0200, gt_0200[].

  SELECT a~matnr a~zzitem_cd  b~maktx
  INTO TABLE gt_0200
      FROM mara AS a INNER JOIN makt AS b
                  ON a~matnr = b~matnr
    WHERE  a~matnr in so_matnr
    AND       a~zzitem_cd in  so_item.

ENDFORM.                    " READ_DATA_FOR_MARA
반응형
Posted by Brian.

댓글을 달아 주세요

반응형
모듈풀 기본 프로그램 입니다.
스크린은 100 번 (조회조건) 과 200번 (조회결과) 로 되어 있으며
단순하게 조회결과 입력 후 실행하면 결과가 200번 스크린에 조회되도록 한 간단 모듈풀 프로그램 입니다.

1. 조회조건

사용자 삽입 이미지


2. 조회결과

사용자 삽입 이미지



3. 프로그램 소스

 1) Main
 
INCLUDE MZEDUM_99_001TOP.                     " global Data
INCLUDE MZEDUM_99_001ENT.                     " EVENT
INCLUDE MZEDUM_99_001O01.                     " PBO-Modules
INCLUDE MZEDUM_99_001I01.                      " PAI-Modules
INCLUDE MZEDUM_99_001F01.                     " FORM-Routines


2) MZEDUM_99_001TOP.

 
PROGRAM  sapmzedum_99_001 MESSAGE-ID zedur001.

TABLES : mara, makt.

DATA : BEGIN OF gs_0100,
    matnr_low LIKE mara-matnr ,
    matnr_high LIKE mara-matnr ,
    item LIKE mara-zzitem_cd ,

  END OF gs_0100.


  DATA : BEGIN OF gs_0200,

    matnr LIKE mara-matnr ,
    item LIKE mara-zzitem_cd ,
    maktx like makt-maktx,
    CHECK TYPE CHAR1,
  END OF gs_0200.

* 아래 구문은 모듈풀 프로그램에서 반드시 기술 해준다. (값이 출력되는 스크린쪽에)
CONTROLS: tc_0200 TYPE TABLEVIEW USING SCREEN 0200.

DATA : gt_0100 LIKE gs_0100 OCCURS 0 WITH HEADER LINE.
DATA : gt_0200 LIKE gs_0200 OCCURS 0 WITH HEADER LINE.


3)  MZEDUM_99_001ENT.

END-OF-SELECTION.
  CALL SCREEN '0100'.



4) MZEDUM_99_002O01.

  *&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_001O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '0100'.
  SET TITLEBAR '0100'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
  SET PF-STATUS '0200'.
  SET TITLEBAR '0200'.

ENDMODULE.                 " STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  TC_DATA_CHANGE_TC_ATTR  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE tc_data_change_tc_attr OUTPUT.
  LOOP AT SCREEN.
     IF screen-group1 = 'INP'.
        screen-input = '1'.
        MODIFY SCREEN.
     ENDIF.
  ENDLOOP.


ENDMODULE.                 " TC_DATA_CHANGE_TC_ATTR  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  CHANGE_SCREEN_0200  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module CHANGE_SCREEN_0200 output.

endmodule.                 " CHANGE_SCREEN_0200  OUTPUT




5) MZEDUM_99_002I01.

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

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

    WHEN 'EXIT'.
      LEAVE  PROGRAM.
  ENDCASE.

ENDMODULE.                 " EXIT_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.


  CASE sy-ucomm.
    WHEN 'BTN01' OR 'CONFIRM'.

      IF gs_0100-matnr_low  IS INITIAL. "스타일코드는 필수 입니다.
        MESSAGE i001.
        EXIT.
      ENDIF.

      PERFORM read_data_for_mara.

      CALL SCREEN '0200'.


  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  PROGRAM_EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE program_exit INPUT.

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

    WHEN 'CANC'.
      LEAVE PROGRAM.

  ENDCASE.
ENDMODULE.                 " PROGRAM_EXIT  INPUT
*&---------------------------------------------------------------------*
*&      Module  PROGRAM_EXIT_0200  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE program_exit_0200 INPUT.
  CASE sy-ucomm.
    WHEN 'EXIT' OR 'BACK'.
      LEAVE TO SCREEN 0.

    WHEN 'CANC'.
      LEAVE PROGRAM.

  ENDCASE.
ENDMODULE.                 " PROGRAM_EXIT_0200  INPUT




6) MZEDUM_99_002F01.

  *&---------------------------------------------------------------------*
*&  Include           MZEDUM_99_001F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  READ_DATA_FOR_MARA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM read_data_for_mara .

  SELECT a~matnr a~zzitem_cd  b~maktx
  INTO TABLE gt_0200
   FROM mara AS a INNER JOIN makt AS b
                  ON a~matnr = b~matnr.

ENDFORM.                    " READ_DATA_FOR_MARA

반응형
Posted by Brian.

댓글을 달아 주세요

반응형
아밥 기본 전체 메뉴얼 입니다. [초급용]
반응형
Posted by Brian.

댓글을 달아 주세요

반응형
 
REPORT   zedur_99_002 MESSAGE-ID zedu001.

TABLES : mara, makt.


DATA : gv_tabix TYPE syst-tabix.

* Structure 선언.
DATA: BEGIN OF gs_mara ,
        matnr   LIKE mara-matnr,  "상품번호
        mtart    LIKE mara-mtart,  "상품유형
        ersda   LIKE mara-ersda,  "생성일
        maktx   LIKE makt-maktx,  "상품명

       END OF gs_mara.


DATA: BEGIN OF gs_makt  ,
        matnr   LIKE mara-matnr,  "상품번호
        maktx   LIKE makt-maktx,  "상품명
       END OF gs_makt.

* Internal Talbel 선언
DATA : gt_mara    LIKE gs_mara OCCURS 0 WITH HEADER LINE,
           gt_makt     LIKE gs_makt  OCCURS 0 WITH HEADER LINE.


FIELD-SYMBOLS: <mara> LIKE gs_mara.
FIELD-SYMBOLS: <makt> LIKE gs_makt.

START-OF-SELECTION.


  CLEAR : gs_mara, gt_mara[],
               gs_makt , gt_makt[].


  SELECT matnr mtart ersda
    INTO TABLE gt_mara
    FROM mara
    WHERE mtart = 'HAWA'.

  SELECT matnr maktx
    INTO TABLE gt_makt
    FROM makt
    WHERE spras = sy-langu.


  LOOP AT gt_mara ASSIGNING <mara>.
    gv_tabix = sy-tabix.

    READ TABLE gt_makt ASSIGNING <makt>
    with key matnr = <mara>-matnr
      binary search.


    IF sy-subrc = 0.
      <mara>-maktx = <MAKT>-maktx.

    ENDIF.


    WRITE :/ <mara>-matnr,
                   <mara>-maktx,
                   <mara>-mtart.


  ENDLOOP.
반응형
Posted by Brian.

댓글을 달아 주세요

반응형
값을 SELECT 해올때
SELECT matnr
       mtart
       ersda

  INTO  CORRESPONDING FIELDS OF TABLE gt_mara
  FROM mara
  WHERE  mtart = 'HAWA'.

위 구문을 사용할 경우는 INTERNAL TABLE 과 필드가 같지 않아도 된다.
즉 인터널테이블의 필드와 순서가 SELECT 절의 필드와 순서가 같지 않아도
자동으로 필드를 맞춰준다.


값을 SELECT 해올때
SELECT matnr
       mtart
       ersda

  INTO  TABLE GT_MARA
  FROM mara
  WHERE  mtart = 'HAWA'.

위 구문을 사용할 경우는 반드시 인터널테이블의 필드와 순서가 SELECT 절의
필드와 순서가 동일해야 한다.
만약 인터널테이블에 MATNR 코드로 명칭 (MAKTX) 필드를 가져오고자 할때
SELECT 구문에서 MARA 테이블에는 MAKTX 필드가 없기 때문에
인터널테이블에서 MAKTX 필드를 제일 마지막에 추가해주어야 한다.

반응형
Posted by Brian.

댓글을 달아 주세요