Views 186
Visitors 133

Report (701) - Simple_Class_Reporting

Home 
| Top Page | Threads |
Previous  Next

Objective

Call Method "ycl_report_mm=>get_data"

Transaction Code

SE38 - ABAP Editor

Tables

MARA - General Material Data

Support

Video

Contributors

Danar Andri Prasetyo ( danaruto131@yahoo.com )

 

Creating Report

1.First, we have to create structure "YST_CLASS_MM" by t-code SE11.

   Display Steps sdasjdkl

ar0086

Click ar0087
Choose Structure

ar0088 then click ar0089

Fill Short Description with "Structure for Class Report Material"
Fill Tab "Component" like picture below

ar0090

Save and Activate
2.Second, we make table type "YTT_CLASS_MM" by t-code SE11.

Display Steps

ar0091

Click ar0087
Choose Table Type

ar0092 then click ar0089

Fill Short Description with "Table Type for Report Class Material"
Click Line Type then fill with name of structure which created. See picture below

ar0093

Save and Activate
3.Create Class "YCL_REPORT_MM" By t-code SE24.

Display Steps

ar0094

Click ar0087
Fill Description like picture below

ar0095

Click ar0096 and place in ar0097
Create new method "GET_DATA" fill Componennt Like picture below

ar0098

Create parameter by clicking tab parameters ar0099
Fill fields like picture below

ar0100

Save and Activate
Back to Tab Method by clicking ar0101 then double click at 'GET_DATA'
Now, we enter to script field then we write script code, put script between "method GET_DATA." and "
endmethod."
Define variabel that we need

DATA : lw_header TYPE YST_CLASS_MM,

       lv_counter TYPE i.

Select Data from table

*Collect Master Material

  SELECT matnr matkl bismt meins

  INTO CORRESPONDING FIELDS OF TABLE DATA

  FROM mara

  WHERE matkl = gv_matkl

  OR matnr = gv_matnr.

Display Data

*Get Other Requirement Information

  LOOP AT DATA INTO lw_header.

*Max ROW Checking

    ADD 1 TO lv_counter.

    IF lv_counter <= gv_max_row OR gv_max_row = 0.

      WRITE / lw_header-matkl.

      WRITE lw_header-matnr.

      WRITE lw_header-maktx.

      WRITE lw_header-bismt.

      WRITE lw_header-meins.

      WRITE lw_header-mseht.

    ENDIF.

 

  ENDLOOP.

Save and Activate

 

4.Now Create Program "YREPORT_701" by t-code SE38
5.Fill Tittle with "Report Material Master Using Class" save at local object
6.Define Table.

TABLES : mara.

7.Define Variable

DATA : gi_data TYPE YTT_CLASS_MM WITH HEADER LINE.

8.Create input screen

SELECT-OPTIONS so_matkl FOR mara-matkl.

SELECT-OPTIONS so_matnr FOR mara-matnr.

PARAMETERS p_max TYPE i DEFAULT 100.

9.Call method using 'Pattern'ar0102

Display Steps

ar0103 then click ar0089

ar0104

10.Edit 'CALL METHOD' value

Before

CALL METHOD ycl_report_mm=>get_data

  EXPORTING

    gv_matkl   = 

    gv_matnr   = 

    gv_max_row = 

  CHANGING

    data       = 

 

After

CALL METHOD ycl_report_mm=>get_data

  EXPORTING

    gv_matkl   =  '001'

    gv_matnr   =  '100-100'

    gv_max_row =  p_max

  CHANGING

    data       =  gi_data[].

 

11.Save and Activate program

 

 

 

Result

Input Selection

ar0105

Output

ar0106

 

 

Source Code Program

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

*& Report  YREPORT_701                                                 *

*&                                                                     *

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

*&                                                                     *

*&                                                                     *

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

 

REPORT  yreport_701                             .

TABLES : mara.

 

DATA : gi_data TYPE YTT_CLASS_MM WITH HEADER LINE.

 

SELECT-OPTIONS so_matkl FOR mara-matkl.

SELECT-OPTIONS so_matnr FOR mara-matnr.

PARAMETERS p_max TYPE i DEFAULT 100.

 

CALL METHOD ycl_report_mm=>get_data

  EXPORTING

    gv_matkl   =  '001'

    gv_matnr   =  '100-100'

    gv_max_row =  p_max

  CHANGING

    data       =  gi_data[].

   .

 

Source Code Class

method GET_DATA .

 

DATA : lw_header TYPE YST_CLASS_MM,

       lv_counter TYPE i.

 

*Collect Master Material

  SELECT matnr matkl bismt meins

  INTO CORRESPONDING FIELDS OF TABLE DATA

  FROM mara

  WHERE matkl = gv_matkl

  OR matnr = gv_matnr.

 

*Get Other Requirement Information

  LOOP AT DATA INTO lw_header.

*Max ROW Checking

    ADD 1 TO lv_counter.

    IF lv_counter <= gv_max_row OR gv_max_row = 0.

      WRITE / lw_header-matkl.

      WRITE lw_header-matnr.

      WRITE lw_header-maktx.

      WRITE lw_header-bismt.

      WRITE lw_header-meins.

      WRITE lw_header-mseht.

    ENDIF.

 

  ENDLOOP.

 

 

endmethod.

 

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views