Views 972
Visitors 547

Report (101) - Create Simple Report

Home 
| Top Page | Threads |
Previous  Next

Objective

Transaction Code

SE38 - ABAP Editor

MM03 - Display Material

Tables

MARA - General Material Data

MAKT - Material Descriptions

T006A - Assign Internal to Language-Dependent Unit

Support

Video

 

Creating Report

Program Name        : YPRACTICE_101 ( Functional Specification II-2 )

Title                : 101 - Display List of Master Material

2.Observe about Master Material in SAP Standard program. Asked to functional as need.

Display Steps

Open t-Code MM03 in new session ( /oMM03 )
Select material

eg : 100-251

ar0001

Press enter and Select "Basic Data 1" and "Basic Data 2". Then press ar0003

ar0002

Display Material

ar0004

Now, you see all master data from SAP standard program.

 

3.Start writing abap code. First Declare Tables ( Functional Specification III-3 )

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

* Tables

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

TABLES : mara, makt, t006a.

 

4.Declare Global Variable

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

*GLOBAL VARIABLE DECRALATION

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

DEFINE macro_data_possition.

  if &1 = 'HEADER'.

    write :  /'|' no-gap,(9)  &2 centered,

              '|' no-gap,(18) &3 centered,

              '|' no-gap,(40) &4 centered,

              '|' no-gap,(18) &5 centered,

              '|' no-gap,(5)  &6 centered,

              '|' no-gap,(10) &7 centered,

              '|' no-gap.

  else.

    write :  /'|' no-gap,(9)  &2 centered,

              '|' no-gap,(18) &3 ,

              '|' no-gap,(40) &4 ,

              '|' no-gap,(18) &5 ,

              '|' no-gap,(5)  &6 ,

              '|' no-gap,(10) &7 ,

              '|' no-gap.

  endif.

END-OF-DEFINITION.

 

TYPES: BEGIN OF ty_header,

        matkl LIKE mara-matkl,  " Material Group

        matnr LIKE mara-matnr,  " Material Number

        maktx LIKE makt-maktx,  " Material Description

        bismt LIKE mara-bismt,  " Old material number

        meins LIKE mara-meins,  " Base Unit of Measure

        mseht LIKE t006a-mseht, " Unit of Measurement Text

      END OF ty_header.

 

DATA: gi_header TYPE STANDARD TABLE OF ty_header WITH HEADER LINE,

      gi_makt  LIKE STANDARD TABLE OF makt WITH HEADER LINE,

      gi_t006a LIKE STANDARD TABLE OF t006a WITH HEADER LINE.

 

DATA: gv_width TYPE i.  " Width of list

 

5.Create Input Screen/Selection ( Functional Specification III-4 )

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

*Input Screen/Selection

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

SELECT-OPTIONS so_matkl FOR mara-matkl.

SELECT-OPTIONS so_matnr FOR mara-matnr.

 

6.Create Main Program

*======================================================================*

*MAIN PROGRAM

*Execute after Input Screen

*======================================================================*

START-OF-SELECTION.

  gv_width = 113.

  PERFORM fm_collect_data.

  PERFORM fm_process_data.

  PERFORM fm_display_data.

 

END-OF-SELECTION.

 

7.Create Sub Program with 3 sub routine ( fm_collect_data, fm_process_data and fm_display_data )

Flow process : Select Material Data -> Display

 

*======================================================================*

*SUB PROGRAM / SUB ROUTINE

*======================================================================*

FORM fm_collect_data.

 

ENDFORM.

 

FORM fm_process_data.

 

ENDFORM.

 

FORM fm_display_data.

 

ENDFORM.

 

8.Write code for sub routine  fm_collect_data

FORM fm_collect_data.

*  Collect Master Material

  SELECT matnr matkl bismt meins

    INTO CORRESPONDING FIELDS OF TABLE gi_header

  FROM mara

  WHERE

    matkl IN so_matkl AND

    matnr IN so_matnr.

 

*  Collect Material Decription

  SELECT matnr maktx

    INTO CORRESPONDING FIELDS OF TABLE gi_makt

  FROM makt

    FOR ALL ENTRIES IN gi_header

  WHERE

    matnr = gi_header-matnr AND

    spras = sy-langu.

 

*  "For SAP 4.6C

*  DATA : lv_total_data type i.

*  DESCRIBE TABLE gi_header LINES lv_total_data.

*  IF lv_total_data > 0.

 

  IF LINES( gi_header ) > 0." For SAP 4.7 above

*  Collect Material Decription

    SELECT matnr maktx

      INTO CORRESPONDING FIELDS OF TABLE gi_makt

    FROM makt

      FOR ALL ENTRIES IN gi_header

    WHERE

      matnr = gi_header-matnr AND

      spras = sy-langu.

 

*  Collect Measurement Text

    SELECT msehi mseht

      INTO CORRESPONDING FIELDS OF TABLE gi_t006a

    FROM t006a

      FOR ALL ENTRIES IN gi_header

    WHERE

      msehi = gi_header-meins AND

      spras = sy-langu.

  ENDIF.

 

* Notes :

*  Avoid using inner join

 

ENDFORM.

 

9.Write code for sub routine  fm_process_data

FORM fm_process_data.

*Get other requirement information

  LOOP AT gi_header.

*    Get Material Description

    READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.

    IF sy-subrc = 0.

      gi_header-maktx = gi_makt-maktx.

    ENDIF.

 

*    Get Measurement Text

    READ TABLE gi_t006a WITH KEY msehi = gi_header-meins.

    IF sy-subrc = 0.

      gi_header-mseht = gi_t006a-mseht.

    ENDIF.

 

    MODIFY gi_header.

  ENDLOOP.

 

ENDFORM.

 

10.Write code for sub routine  fm_display_data ( Functional Specification III-5 )

FORM fm_display_data.

*  Create Header Text

  ULINE AT (gv_width).                    " Upper frame border

  FORMAT COLOR COL_HEADING INTENSIFIED.   " Title color

  macro_data_possition : 'HEADER' 'Mat. Group' 'Mat. No.' 'Description' 'Old Mat. No.' 'Base Unit' 'Measure'.

  WRITE: AT gv_width sy-vline.            " Right border

  ULINE AT (gv_width).                    " Line below titles

  FORMAT COLOR OFF.

 

*  Display Data to Screen

  LOOP AT gi_header.

    macro_data_possition : 'CONTENT'

                           gi_header-matkl

                           gi_header-matnr

                           gi_header-maktx

                           gi_header-bismt

                           gi_header-meins

                           gi_header-mseht.

  ENDLOOP.

 

*  End of Line

  ULINE AT (gv_width).                    " Line below last data

 

ENDFORM.

 

11.Activated and run
13.Finished

 

 

Result

Input Selection

ar0005

Output

ar0006

 

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views