Skip to end of metadata
Go to start of metadata












Code in SE38:
*&---------------------------------------------------------------------*
*& Report YKC_SCRIPT_DRIVER_PRO
*&
*&---------------------------------------------------------------------*
*&Krishna Chauhan (Sparta Consulting)
*&Date: 09 Jan 2009
*&---------------------------------------------------------------------*
REPORT  YKC_SCRIPT_DRIVER_PRO.
tables: mara, makt, marc,mard.
data: begin of it_final occurs 0,
      matnr like mara-matnr,
      maktx like makt-maktx,
      ersda like mara-ersda,
      ernam like mara-ernam,
      werks like mard-werks,
      lgort like mard-lgort,
      beskz like marc-beskz,
      dismm like marc-dismm,
      end of it_final.
*---internal table to get data from mara
data: begin of it_mara occurs 0,
      matnr like mara-matnr,
      ersda like mara-ersda,
      ernam like mara-ernam,
      end of it_mara.
*---internal table to store mat description
data: begin of it_makt occurs 0,
      matnr like makt-matnr,
      spras like makt-spras,
      maktx like makt-maktx,
      end of it_makt.
*--internal table to keep data from marc
data: begin of it_marc occurs 0,
      matnr like mara-matnr,
      werks like marc-werks,
      beskz like marc-beskz,
      dismm like marc-dismm,
      end of it_marc.
*--internal table to keep data from mard
data: begin of it_mard occurs 0,
      matnr like mara-matnr,
      werks like mard-werks,
      lgort like mard-lgort,
      end of it_mard.
Select-options s_matnr for mara-matnr.
Start-of-selection.
perform get_data.
PERFORM open_form.
  LOOP AT it_final.
PERFORM start_form.
PERFORM write_form.
PERFORM end_form.
  ENDLOOP.
PERFORM close-form.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text: Getting data into final internal table for display
*----------------------------------------------------------------------*
form GET_DATA .
select  matnr ersda ernam
        from mara into table it_mara
        where matnr in s_matnr.
sort it_mara by matnr.
if not it_mara[] is initial.
*---getting common data from mara & marc on the basis of matnr.
select matnr werks beskz dismm
       from marc into table it_marc
       for all entries in it_mara
       where matnr = it_mara-matnr.
select matnr spras maktx
       from makt into table it_makt
       for all entries in it_mara
       where matnr = it_mara-matnr
       and  spras = 'E'.
endif.
*---gettng common data from marc & mard on the basis of matnr & werks.
sort it_marc by matnr werks.
if not it_marc[] is initial.
select matnr werks lgort
       from mard into table it_mard
       for all entries in it_marc
       where matnr = it_marc-matnr
       and   werks = it_marc-werks.
endif.
sort it_mard by matnr werks.
loop at it_mard.
read table it_mara with key matnr = it_mard-matnr binary search.
if sy-subrc = 0.
*---getting matnr, ersda, ernam into it-final
it_final-matnr = it_mara-matnr.
it_final-ersda = it_mara-ersda.
it_final-ernam = it_mara-ernam.
endif.
*---getting material desc
read table it_makt with key matnr = it_mard-matnr binary search.
if sy-subrc = 0.
it_final-maktx = it_makt-maktx.
endif.
*---getting werks, lgort, beskz, dismm into it_final
it_final-werks = it_mard-werks.
it_final-lgort = it_mard-lgort.
read table it_marc with key matnr = it_mard-matnr
                            werks = it_mard-werks
                            binary search.
if sy-subrc = 0.
  it_final-beskz = it_marc-beskz.
  it_final-dismm = it_marc-dismm.
endif.
append it_final.
clear it_final.
endloop.
endform.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  OPEN-FORM
*&---------------------------------------------------------------------*
*       text: opening script form
*----------------------------------------------------------------------*
Form OPEN_FORM .
CALL FUNCTION 'OPEN_FORM'
       EXPORTING
            Form = 'YKC_FIRST_SCRIPT'.
Endform.                    "OPEN-FORM
*&---------------------------------------------------------------------*
*&      Form START_FORM
*&---------------------------------------------------------------------*
*       Text: Starting form
*----------------------------------------------------------------------*
Form START_FORM .
  CALL FUNCTION 'START_FORM'
       EXPORTING
            Form = 'YKC_FIRST_SCRIPT'.
Endform.                    "START_FORM
*&---------------------------------------------------------------------*
*&      Form  WRITE_FORM
*&---------------------------------------------------------------------*
*       text: Writing into form
*----------------------------------------------------------------------*
Form WRITE_FORM .
*---
CALL FUNCTION 'WRITE_FORM'
       EXPORTING
            Window = 'GRAPH1'.
 CALL FUNCTION 'WRITE_FORM'
   EXPORTING
     Element                        = 'E1'
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
     Window                         = 'WINDOW1'
            .
  CALL FUNCTION 'WRITE_FORM'
   EXPORTING
     element                        = 'E2'
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
     Window                         = 'MAIN'
            .
endform.                    " WRITE_FORM
*&---------------------------------------------------------------------*
*&      Form  END_FORM
*&---------------------------------------------------------------------*
*       text: Ending form
*----------------------------------------------------------------------*
form END_FORM .
  CALL FUNCTION 'END_FORM'
* IMPORTING
*   RESULT                         =
* EXCEPTIONS
*   UNOPENED                       = 1
*   BAD_PAGEFORMAT_FOR_PRINT       = 2
*   SPOOL_ERROR                    = 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
endform.                    " END_FORM
*&---------------------------------------------------------------------*
*&      Form CLOSE-FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form CLOSE-FORM .
CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
*   RESULT                         =
*   RDI_RESULT                     =
* TABLES
*   OTFDATA                        =
* EXCEPTIONS
*   UNOPENED                       = 1
*   BAD_PAGEFORMAT_FOR_PRINT       = 2
*   SEND_ERROR                     = 3
*   SPOOL_ERROR                    = 4
*   OTHERS                         = 5
            .

endform.                    "CLOSE-FORM

The output will be: