Monday, 19 December 2011

Transaction level trigerring driver program

************************************************************************
* SGL Group - The Carbon Company                                       *
*----------------------------------------------------------------------*
* Type:         Report         Name: ZPPPSERNR01                       *
* Application:  PP                                                     *
* Date:         2011-11-14                                             *
* Last Update:  N/A                                                    *
*----------------------------------------------------------------------*
* Author:       POSNIAN                                                *
* Requester:    Paul Harper                                            *
* Ticket No:                                                           *
*----------------------------------------------------------------------*
* Description:  This Report is used to display the serial numbers based*
*               on related production order and corresponding values   *
*               of material number ,basic material number and          *
*               serial number using the Script                         *
*                                                                      *
*----------------------------------------------------------------------*
* Change Log                                                           *
*                                                                      *
* YYYY-MM-DD  Ini  Description / Reason of Change (incl. ticket no.)   *
* ---------- ----- --------------------------------------------------- *
* 2011-11-14  POSNIAN Initial Development-Transport Request# S1DK992981*
*                                                                      *
************************************************************************

REPORT  zpppsernr01.
INCLUDE ppcoincl.

*TABLES:caufvd,TDUMMY, PRINT_CO.
DATA caufvd_p_tab LIKE SORTED TABLE OF caufvd_p WITH UNIQUE KEY
                  aufnr                         WITH HEADER LINE.
DATA afpod_p_tab  LIKE SORTED TABLE OF afpod_p WITH UNIQUE KEY
                  aufnr posnr                  WITH HEADER LINE.
DATA affld_p_tab  LIKE SORTED TABLE OF affld_p WITH UNIQUE KEY
                  aufnr plnfl                  WITH HEADER LINE.
DATA afvgd_p_tab  LIKE SORTED TABLE OF afvgd_p WITH UNIQUE KEY
                  aufnrd aplfl vornr           WITH HEADER LINE.
DATA safvgd_p_tab LIKE SORTED TABLE OF afvgd_p WITH UNIQUE KEY
                  aufnrd aplfl vornr uvorn     WITH HEADER LINE.
DATA resbd_p_tab  LIKE SORTED TABLE OF resbd_p WITH UNIQUE KEY
                  posnr matnr rspos rsart      WITH HEADER LINE.
DATA affhd_p_tab  LIKE SORTED TABLE OF affhd_p WITH UNIQUE KEY
                  aufpl psnfh pzlfh            WITH HEADER LINE.
DATA rserob_tab LIKE rserob OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF t_ser05,
        obknr TYPE objknr,
        ppaufnr TYPE aufnr,
       END OF t_ser05.
 DATA: subrc LIKE sy-subrc.
DATA:it_objk TYPE TABLE OF zls_lstsernr,
     wa_objk TYPE zls_lstsernr,
     it_objk2 TYPE TABLE OF objk,
     wa_objk2 TYPE objk,
     wa_mara TYPE mara,
     lv_wrkst type wrkst,
     wa_ser05 TYPE t_ser05,
     it TYPE TABLE OF zls_lstsernr.

* DATA: PRLST_TMP LIKE PRINT_CO.
* DATA  PRINT_OPTS LIKE ITCPO.

DATA:   lv_rowcnt     TYPE i,
        lv_colcnt     TYPE i,
        lv_rlno(3)    TYPE n,
        lv_cnt        TYPE i,
        lv_cnt1       TYPE i,
        lv_left       TYPE i,
        lv_rem        TYPE i,
        sno(2)        TYPE n ,
        empty         TYPE c VALUE ' ',
        var1(18)      TYPE c VALUE '__________________',
        var2(30)      TYPE c VALUE '______________________________'.
PERFORM import_data CHANGING subrc.

PERFORM get_info_list.

  CLEAR subrc.
  CALL FUNCTION 'CO_PRINT_GET_ORD'
    EXPORTING
      aufnr_imp        = print_co-aufnr
      flg_prtbl_opr    = on
      flg_prtbl_sop    = on
      flg_prtbl_cmp    = on
      flg_prtbl_prt    = on
    CHANGING
      caufvd_p_tab_exp = caufvd_p_tab[]
    EXCEPTIONS
      entry_not_found  = 1
      OTHERS           = 2.
 LOOP AT caufvd_p_tab.
     caufvd_p = caufvd_p_tab.
         CLEAR wa_mara.
    SELECT SINGLE * FROM mara INTO wa_mara

WHERE matnr = caufvd_p-matnr.
endloop.
perform zwe_sernr.
*PARAMETERS: p_aufnr TYPE ser05-ppaufnr.
FORM zwe_sernr.
  SELECT SINGLE obknr ppaufnr FROM ser05
         INTO wa_ser05 WHERE ppaufnr = print_co-aufnr.

  SELECT obknr matnr sernr FROM objk
           INTO  CORRESPONDING FIELDS OF TABLE it_objk2
           WHERE obknr = wa_ser05-obknr.

  LOOP AT it_objk2 INTO wa_objk2.
    wa_objk-obknr = wa_objk2-obknr.
    wa_objk-matnr = wa_objk2-matnr.
    wa_objk-sernr = wa_objk2-sernr.

    SELECT SINGLE wrkst FROM mara
           INTO lv_wrkst
           WHERE matnr = wa_objk2-matnr.

    wa_objk-wrkst = wa_mara-wrkst.
    wa_objk-sno   = sno.
    wa_objk-null = empty.
    APPEND wa_objk TO it.

  ENDLOOP.

*     open and start form
    PERFORM open_form USING 'OBJLST'.

*    CALL FUNCTION 'OPEN_FORM'
*      EXPORTING
*        form = 'ZPP_LSTSERNR01'.
*
*    CALL FUNCTION 'START_FORM'
*      EXPORTING
*        form = 'ZPP_LSTSERNR01'.

    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'LOGO'
        window  = 'LOGO'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SAP'
        window  = 'PLANNED'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'PO WINDOW'
        window  = 'POWINDOW'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SAP INTERNALLY'
        window  = 'SAPIN'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SERIAL'
        window  = 'SERIAL'.


    LOOP AT it_objk2 INTO wa_objk2.

      sno = sno + 1.
      lv_colcnt = lv_colcnt + 1.
      lv_rlno = lv_rlno + 1.
      wa_objk-row1 = lv_rowcnt.
      wa_objk-column1 = lv_colcnt.
      wa_objk-obknr = wa_objk2-obknr.
      wa_objk-matnr = wa_objk2-matnr.
      wa_objk-sno   = sno.
      wa_objk-sernr = wa_objk2-sernr.
      wa_objk-null = empty.

      CALL FUNCTION 'WRITE_FORM'
        EXPORTING
          element = 'MAIN'
          window  = 'MAIN'.
      APPEND wa_objk TO it_objk.
      CLEAR wa_objk.

    ENDLOOP.

    DESCRIBE TABLE it_objk LINES lv_cnt1.
    lv_rem = lv_cnt1 MOD 22.
    lv_left = 22 - lv_rem.

    DO  lv_left TIMES.
      sno = sno + 1.
      lv_rowcnt = lv_rowcnt + 1.
      wa_objk-sno   = sno.
      wa_objk-row1 = lv_rowcnt.
      wa_objk-column1 = 1.





          CALL FUNCTION 'WRITE_FORM'
            EXPORTING
              element = 'MAIN'
              window  = 'MAIN'.
ENDDO.



          CALL FUNCTION 'END_FORM'.

          CALL FUNCTION 'CLOSE_FORM'.

*    ENDDO.
*  ENDDO.
ENDFORM.    "zwe_sernr.




*&---------------------------------------------------------------------*
*&      Form  open_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->STARTPAGE  text
*----------------------------------------------------------------------*
FORM open_form USING startpage.

  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      device   = 'PRINTER'
      dialog   = space
      form     = print_co-forml
      language = print_co-spras
      OPTIONS  = print_opts
    EXCEPTIONS
      canceled = 01
      device   = 02
      form     = 03
      OPTIONS  = 04
      unclosed = 05.
  CALL FUNCTION 'START_FORM'
    EXPORTING
      startpage = startpage.

* reset counter for page numbers
  print_co-actpage = 1.

ENDFORM.                    "open_form
*&---------------------------------------------------------------------*
*&      Form  IMPORT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_SUBRC  text
*----------------------------------------------------------------------*
form IMPORT_DATA  changing subrc LIKE sy-subrc.

    CALL FUNCTION 'CO_PRINT_IMPORT_DATA'
    EXCEPTIONS
      memory_id_ppt_not_exist = 1
      memory_id_ppi_not_exist = 2
      memory_id_pps_not_exist = 3
      OTHERS                  = 4.
  subrc = sy-subrc.

endform.                    " IMPORT_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_INFO_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form GET_INFO_LIST .

  CALL FUNCTION 'CO_PRINT_GET_INFO_LIST'
    IMPORTING
      print_co_exp   = print_co
      print_opts_exp = print_opts
    EXCEPTIONS
      OTHERS         = 0.

* print-type
  CASE print_co-drart.
    WHEN reprint.
      MOVE text-dup TO print_co-drtxt.
    WHEN OTHERS.
      MOVE text-org TO print_co-drtxt.
  ENDCASE.

endform.                    " GET_INFO_LIST

Dynamic internal table operation in sap abap

      DATA : lv_string TYPE string.
      CLEAR lv_string.
      IF wds_nbr IS NOT INITIAL.
        CONCATENATE lv_string 'wds_nbr = wds_nbr' INTO lv_string.
      ENDIF.

      IF sap_nbr IS NOT INITIAL.
        IF lv_string IS NOT INITIAL.
          CONCATENATE lv_string 'and' 'sap_nbr = sap_nbr' INTO lv_string  SEPARATED BY space.
        ELSE.
          CONCATENATE lv_string 'sap_nbr = sap_nbr' INTO lv_string.
        ENDIF.
      ENDIF.

      IF charg IS NOT INITIAL.
        IF lv_string IS NOT INITIAL .
          CONCATENATE lv_string 'and' 'charg = charg' INTO lv_string  SEPARATED BY space.
        ELSE.
          CONCATENATE lv_string 'charg = charg' INTO lv_string.
        ENDIF.
      ENDIF.

      IF werks IS NOT INITIAL.
        IF lv_string IS NOT INITIAL .
          CONCATENATE lv_string 'and' 'werks = werks' INTO lv_string  SEPARATED BY space.
        ELSE.
          CONCATENATE lv_string 'werks = werks' INTO lv_string.
        ENDIF.
      ENDIF.

      IF rol_no IS NOT INITIAL.
        IF lv_string IS NOT INITIAL .
          CONCATENATE lv_string 'and' 'rol_no in r_rol_no' INTO lv_string  SEPARATED BY space.
        ELSE.
          CONCATENATE lv_string 'rol_no in r_rol_no' INTO lv_string.
        ENDIF.
      ENDIF.
      SELECT * FROM zmm_stagrpriinfo INTO TABLE it_stagtab WHERE (lv_string).

Wednesday, 14 December 2011

slection field Fields validations

  LOOP AT s_bukrs.
    IF s_bukrs-low IS NOT INITIAL.
      SELECT COUNT(*) FROM t001 WHERE bukrs = s_bukrs-low.
      IF sy-subrc NE 0.
        MESSAGE e006(vb) WITH s_bukrs-low.

      ENDIF.
    ENDIF.
    IF s_bukrs-high IS NOT INITIAL.
      SELECT COUNT(*) FROM t001 WHERE bukrs = s_bukrs-high.
      IF sy-subrc NE 0.
        MESSAGE e006(vb) WITH s_bukrs-high.

      ENDIF.
    ENDIF.
  ENDLOOP.

Monday, 12 December 2011

Doc contianer example

REPORT  ZDOC_CONTAINER NO STANDARD PAGE HEADING.


TABLES: mara.
* *---------------------------------------------------------------------*
* *                        W O R K  A R E A S                           *
* *---------------------------------------------------------------------*
 DATA:
* *  Material Data
   BEGIN OF wa_mara,
     matnr    TYPE   mara-matnr,         " Material No.
     mtart    TYPE   mara-mtart,         " Material Type
*     bismt    TYPE   mara-bismt,         " Old material No.
*     matkl    TYPE   mara-matkl,         " Material group
*     meins    TYPE   mara-meins,         " Base Unit of Measure
*     brgew    TYPE   mara-brgew,         " Gross Weight
     ntgew    TYPE   mara-ntgew,         " Net Weight
     gewei    TYPE   mara-gewei,         " Weight Unit
   END OF wa_mara,

   begin of wa_mara1,
    matnr    TYPE   mara-matnr,         " Material No.
     mtart    TYPE   mara-mtart,         " Material Type
     bismt    TYPE   mara-bismt,         " Old material No.
     matkl    TYPE   mara-matkl,         " Material group
    END OF wa_mara1,
* Field Catalog
    begin of wa_mara2,
    matnr    TYPE   mara-matnr,         " Material No.
     mtart    TYPE   mara-mtart,         " Material Type
     meins    TYPE   mara-meins,         " Base Unit of Measure
     brgew    TYPE   mara-brgew,         " Gross Weight
    END OF wa_mara2,

wa_fieldcat   TYPE lvc_s_fcat.

**---------------------------------------------------------------------*
* *                   I N T E R N A L   T A B L E S                     *
* *---------------------------------------------------------------------*
 DATA:
* * For Material Data
   t_mara LIKE STANDARD TABLE OF wa_mara,
   t_mara1 LIKE STANDARD TABLE OF wa_mara1,
   t_mara2 LIKE STANDARD TABLE OF wa_mara2,
* * For Field Catalog
   t_fieldcat  TYPE lvc_t_fcat,
   t_fieldcat1  TYPE lvc_t_fcat,
   t_fieldcat2  TYPE lvc_t_fcat.

**---------------------------------------------------------------------*
* *                     W O R K  V A R I A B L E S                      *
* *---------------------------------------------------------------------*
 DATA:
* * User Command
   ok_code TYPE sy-ucomm,
* * Reference Variable for Docking Container
   r_dock_container  TYPE REF TO cl_gui_docking_container,
   r_dock_container1  TYPE REF TO cl_gui_docking_container,
   r_dock_container2  TYPE REF TO cl_gui_docking_container,
* * Reference Variable for alv grid
   r_grid  TYPE REF TO cl_gui_alv_grid,
   r_grid1  TYPE REF TO cl_gui_alv_grid,
   r_grid2  TYPE REF TO cl_gui_alv_grid.

**---------------------------------------------------------------------*
* *                S T A R T   O F   S E L E C T I O N                  *
* *---------------------------------------------------------------------*
 START-OF-SELECTION.
* * To Display the Data
   PERFORM display_output.
*  * *&--------------------------------------------------------------------*
* *&      Form  display_output                                          *
* *&--------------------------------------------------------------------*
* *       To Call the  screen & display the output                      *
* *---------------------------------------------------------------------*
* *   There are no interface parameters to be passed to this subroutine.*
* *---------------------------------------------------------------------*
 FORM display_output .
* * To fill the Field Catalog
   PERFORM fill_fieldcat USING :
       'MATNR'    'T_MARA'         'Material No.',
       'MTART'    'T_MARA'         'Material Type',
*       'BISMT'    'T_MARA'         'Old Material No.',
*       'MATKL'    'T_MARA'         'Material Group',
*       'MEINS'    'T_MARA'         'Base Unit of Measure',
*       'BRGEW'    'T_MARA'         'Gross Weight',
       'NTGEW'    'T_MARA'         'Net Weight',
       'GEWEI'    'T_MARA'         'Weight Unit'.
       move t_fieldcat to t_fieldcat1.
       refresh t_fieldcat.
PERFORM fill_fieldcat USING :
       'MATNR'    'T_MARA'         'Material No.',
       'MTART'    'T_MARA'         'Material Type',
       'BISMT'    'T_MARA'         'Old Material No.',
       'MATKL'    'T_MARA'         'Material Group'.
   move t_fieldcat to t_fieldcat2.
       refresh t_fieldcat.
PERFORM fill_fieldcat USING :
       'MATNR'    'T_MARA'         'Material No.',
       'MTART'    'T_MARA'         'Material Type',
        'MEINS'    'T_MARA'         'Base Unit of Measure',
       'BRGEW'    'T_MARA'         'Gross Weight'.

   CALL SCREEN 500.
 ENDFORM.                               " Display_output

**&--------------------------------------------------------------*
* *&      Form  FILL_FIELDCAT                                     *
* *&--------------------------------------------------------------*
* *       To Fill the Field Catalog                               *
* *---------------------------------------------------------------*
* *  Three Parameters are passed                                  *
* *  pv_field   TYPE any for Field                                *
* *  pv_tabname TYPE any for Table Name                           *
* *  pv_coltext TYPE any for Header Text                          *
* *---------------------------------------------------------------*
 FORM fill_fieldcat  USING   pv_field   TYPE any
                             pv_tabname TYPE any
                             pv_coltext TYPE any .

  wa_fieldcat-fieldname  = pv_field.
   wa_fieldcat-tabname    = pv_tabname.
   wa_fieldcat-coltext    = pv_coltext.

  APPEND wa_fieldcat TO t_fieldcat.
   CLEAR  wa_fieldcat.
 ENDFORM.                               " FILL_FIELDCAT

*Create the Screen 0500.

*Flow Logic for Screen 500.

**&---------------------------------------------------------------------*
* *&      Module  STATUS_0500  OUTPUT                                    *
* *&---------------------------------------------------------------------*
* *       To Set GUI Status & Title                                      *
* *----------------------------------------------------------------------*
 MODULE status_0500 OUTPUT.

  SET PF-STATUS 'STATUS'.
   SET TITLEBAR 'TITLE'.

ENDMODULE.                             " STATUS_0500  OUTPUT


**&---------------------------------------------------------------------*
* *&      Module  CREATE_OBJECTS  OUTPUT                                 *
* *&---------------------------------------------------------------------*
* *       To Call the Docking Container & Display Method                 *
* *----------------------------------------------------------------------*
 MODULE create_objects OUTPUT.
* * Create a Docking container and dock the control at right side of screen
   CHECK r_dock_container IS  INITIAL.
   CREATE OBJECT r_dock_container
     EXPORTING
    side                        = cl_gui_docking_container=>dock_at_left
       extension                   = 300
       caption                     = 'Materials'
     EXCEPTIONS
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       OTHERS                      6.
   IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.                               "  IF sy-subrc <> 0.

* To Create the Grid Instance
   CREATE OBJECT r_grid
     EXPORTING
       i_parent          = r_dock_container
     EXCEPTIONS
       error_cntl_create = 1
       error_cntl_init   = 2
       error_cntl_link   = 3
       error_dp_create   = 4
       OTHERS            5.
   IF sy-subrc <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.

                                  " IF sy-subrc <> 0.
 CHECK r_dock_container1 IS  INITIAL.
   CREATE OBJECT r_dock_container1
     EXPORTING
    side                        = cl_gui_docking_container=>dock_at_left
       extension                   = 300
       caption                     = 'Materials'
     EXCEPTIONS
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       OTHERS                      6.
   IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.                               "  IF sy-subrc <> 0.

* To Create the Grid Instance
   CREATE OBJECT r_grid1
     EXPORTING
       i_parent          = r_dock_container1
     EXCEPTIONS
       error_cntl_create = 1
       error_cntl_init   = 2
       error_cntl_link   = 3
       error_dp_create   = 4
       OTHERS            5.
   IF sy-subrc <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.                               " IF sy-subrc <> 0.

     CHECK r_dock_container2 IS  INITIAL.
   CREATE OBJECT r_dock_container2
     EXPORTING
    side                        = cl_gui_docking_container=>dock_at_bottom
       extension                   = 200
       caption                     = 'Materials'
     EXCEPTIONS
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       OTHERS                      6.
   IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.                               "  IF sy-subrc <> 0.

* To Create the Grid Instance
   CREATE OBJECT r_grid2
     EXPORTING
       i_parent          = r_dock_container2
     EXCEPTIONS
       error_cntl_create = 1
       error_cntl_init   = 2
       error_cntl_link   = 3
       error_dp_create   = 4
       OTHERS            5.
   IF sy-subrc <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.

* Formatted Output Table is Sent to Control
   CALL METHOD r_grid->set_table_for_first_display
     CHANGING
       it_outtab                      =  t_mara
       it_fieldcatalog                =  t_fieldcat
* *      it_sort                       =
* *      it_filter                     =
     EXCEPTIONS
       invalid_parameter_combination = 1
       program_error                 = 2
       too_many_lines                = 3
       OTHERS                        4
           .
   IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.
                                     " IF sy-subrc <> 0.

*   fieldcatlog2----------------------------------


* Formatted Output Table is Sent to Control
   CALL METHOD r_grid1->set_table_for_first_display
     CHANGING
       it_outtab                      =  t_mara1
       it_fieldcatalog                =  t_fieldcat1
* *      it_sort                       =
* *      it_filter                     =
     EXCEPTIONS
       invalid_parameter_combination = 1
       program_error                 = 2
       too_many_lines                = 3
       OTHERS                        4
           .
   IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.                               " IF sy-subrc <> 0.

    CALL METHOD r_grid2->set_table_for_first_display
     CHANGING
       it_outtab                      =  t_mara2
       it_fieldcatalog                =  t_fieldcat2
* *      it_sort                       =
* *      it_filter                     =
     EXCEPTIONS
       invalid_parameter_combination = 1
       program_error                 = 2
       too_many_lines                = 3
       OTHERS                        4
           .
   IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.
 ENDMODULE.                             " CREATE_OBJECTS  OUTPUT
* *&---------------------------------------------------------------------*
* *&      Module  USER_COMMAND_0500  INPUT                               *
* *&---------------------------------------------------------------------*
* *     To Fetch the Material Data & Refresh Table after get User Command*
* *----------------------------------------------------------------------*
 MODULE user_command_0500 INPUT.
   CASE ok_code.
     WHEN 'EXECUTE'.
       SELECT matnr                     " material no.
              mtart                     " material type
*              meins                     " base unit of measure
*              brgew                     " gross weight
              ntgew                     " net weight
              gewei                     " weight unit
         FROM mara
         INTO TABLE t_mara
         WHERE  mtart = mara-mtart.

         SELECT matnr                     " material no.
              mtart                     " material type
              bismt                     " old material no.
              matkl                     " material group
           FROM mara
         INTO TABLE t_mara1
         WHERE  mtart = mara-mtart.

      SELECT matnr                     " material no.
              mtart                     " material type
             meins                     " base unit of measure
              brgew                     " gross weight
           FROM mara
         INTO TABLE t_mara2
         WHERE  mtart = mara-mtart.
       IF sy-subrc <> 0.
       ENDIF.                           " IF sy-subrc EQ 0.
       CALL METHOD r_grid->refresh_table_display.
          CALL METHOD r_grid1->refresh_table_display.
          CALL METHOD r_grid2->refresh_table_display.
     WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
       LEAVE TO SCREEN 0.
   ENDCASE.                             " CASE ok_code.
 ENDMODULE.                             " USER_COMMAND_0500  INPUT

Classical report events in normal driver program

REPORT ZBASU_CLASSICAL_REPORT_EVENTS NO STANDARD PAGE HEADING LINE-SIZE 90 LINE-COUNT 40(2).

Tables: mara.

data: begin of itab occurs 0,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
end of itab.

DATA: TYPE I.

selection-screen: begin of block b1 with frame title text-002.
select-options: material for mara-matnr.
selection-screen: end of block b1.

INITIALIZATION.
MATERIAL-LOW = '100'.
MATERIAL-HIGH = '200'.
MATERIAL-SIGN = 'I'.
MATERIAL-OPTION = 'BT'.

AT SELECTION-SCREEN.

IF MATERIAL-LOW = ' ' AND MATERIAL-HIGH = ' '.
MESSAGE 'ENTER PROPER DATA' TYPE 'E'.
ENDIF.

START-OF-SELECTION.
SELECT MATNR ERSDA ERNAM FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR IN MATERIAL.

TOP-OF-PAGE.

WRITE:/ 'GALAXE SOLUTIONS'.

END-OF-SELECTION.

LOOP AT ITAB.
WRITE:/ ITAB-MATNR,
ITAB-ERSDA,
ITAB-ERNAM.
ENDLOOP.

= SY-LINCT - SY-LINNO - 2.
SKIP M.

END-OF-PAGE.

WRITE:/ 'BANGALORE', SY-DATUM.