This report allows users to retrieve material master data from the MARA and MAKT tables based on a date range selection. It displays the basic material data in a primary list. When a material is selected, its associated plant data from the MARC table is displayed in a secondary list. Page numbering and formatting is implemented for proper display across multiple pages. Interactive selection and error handling is also supported.
Download as TXT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
336 views
Sap Abap Interactive Report
This report allows users to retrieve material master data from the MARA and MAKT tables based on a date range selection. It displays the basic material data in a primary list. When a material is selected, its associated plant data from the MARC table is displayed in a secondary list. Page numbering and formatting is implemented for proper display across multiple pages. Interactive selection and error handling is also supported.
*& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* *AN INTERACTIVE REPORT TO GET MATERIAL DATA IN THE BASIC LIST FOR A GIVEN RANGE OF CREATION DATE AND PLANT DATA IN THE FIRST SECONDARY LIST REPORT ZASIF_INTR_REP LINE-COUNT 36(4).. TABLES:MAKT,MARA,MARC. DATA: F(15) TYPE C, V(15) TYPE C. *SELECT OPTIONS FOR SELECTING A MATERIAL SELECT-OPTIONS:SO_ERSDA FOR MARA-ERSDA. *STRUCTURE FOR GETING DESIRED DATA FROM MARA TABLE FOR BASIC LIST TYPES:BEGIN OF TY_MARA, MATNR TYPE MARA-MATNR, ERSDA TYPE MARA-ERSDA, MATKL TYPE MARA-MATKL, * END OF TY_MARA. **STRUCTURE FOR GETING DESIRED DATA FROM MARA TABLE FOR BASIC LIST *TYPES:BEGIN OF TY_MAKT, SPRAS TYPE MAKT-SPRAS, MAKTX TYPE MAKT-MAKTX, END OF TY_MARA. *STRUCTURE FOR GETTING PLANT DATA FROM MARD FOR FIRST SECONDARY LIST TYPES:BEGIN OF TY_MARD, MATNR TYPE MARC-MATNR, WERKS TYPE MARC-WERKS, PSTAT TYPE MARC-PSTAT, EKGRP TYPE MARC-EKGRP, PLIFZ TYPE MARC-PLIFZ, END OF TY_MARD. *INTERNAL TABLES AND WORKAREA DECLARATION DATA:IT_MARA TYPE TABLE OF TY_MARA, WA_MARA TYPE TY_MARA, IT_MARC TYPE TABLE OF TY_MARD, WA_MARC TYPE TY_MARD. START-OF-SELECTION. *SELECT STATEMENT TO GET BASIC DATA FROM MARA TABLE BASED ON DATE SELECT MATNR ERSDA MATKL FROM MARA INTO WA_MARA WHERE ERSDA IN SO_ERSDA. IF SY-SUBRC = 0. *SELECT STATEMENT TO GET MATERIAL DESCRIPTION FROM MAKTX TABLE SELECT SINGLE SPRAS MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF WA_MARA W HERE MATNR = WA_MARA-MATNR AND SPRAS = 'EN'. IF SY-DBCNT = 0. "IF THERE IS NO ENGLISH DESCRIPTION THEN ADD THE BELOW TE XT TO DESCRIPTION FIELD WA_MARA-MAKTX = 'ENGLISH DESCRIPTION UNAVAILABLE'. ENDIF. *COMBINE THE CONTENT OF TWO DIFFERENT DB TABLES INTO ONE INTERNAL TABLE APPEND WA_MARA TO IT_MARA. CLEAR WA_MARA. ENDIF. ENDSELECT. *SORT THE TABLE BY DATE SORT IT_MARA BY ERSDA. END-OF-SELECTION. *DISPLAY THE DATA IN A SUITABLE FORMAT LOOP AT IT_MARA INTO WA_MARA. ULINE:/(95). WRITE: / '|', WA_MARA-MATNR COLOR 2, 15 '|', WA_MARA-ERSDA COLOR 2, 30 '|', WA_MARA-MATKL COLOR 2, 45 '|', WA_MARA-SPRAS COLOR 2, 51 '|', WA_MARA-MAKTX COLOR 2, 95 '|'. ENDLOOP. ULINE:/(95). SKIP 1. *PAGE NO ON THE LAST PAGE AS IT DOES NOT CALL END-OF-PAGE WRITE:'PAGE NO : ' color 3,SY-PAGNO COLOR 3. NEW-PAGE. "TO NEGLECT END OF PAGE TOP-OF-PAGE. *DISPLAY TOP-OF-PAGE IN A SUITABLE FORMAT ULINE:/(95). WRITE:/ '|MAT NO',15 '|CREATION DATE',30 '|MAT GRP',45 '|LANG',51 '|DESCRIPTIO N',95'|'. END-OF-PAGE. *DISPLAY END-OF-PAGE IN A SUITABLE FORMAT ULINE:/(95). SKIP 1. WRITE :/ 'PAGE NO : ' color 3,SY-PAGNO color 3. *WRITE : / SY-LSIND. *PREPERATION TO HANDLE AN INTERACTIVE EVENT AT LINE-SELECTION. IF SY-LSIND = 1."CHECK IF THE LIST INDEX IS 1 WHICH INDICATED FIRST SEC LIST. *GET THE FIELD NAME F AND ASSOCIATED VALUE IN V OF THE LINE ON WHICH THE EVENT W AS TRIGGERED GET CURSOR FIELD F VALUE V. *REMOVE ANY WHITE SPACES OR BLANK SPACES CONDENSE: F,V. *IF THE CURSOR WAS D-CLICKED ON MATNR FIELD THEN DO THE FOLLOWING IF F NE 'WA_MARC-MATNR'. *GET APPROPRIATE DATA FROM MARC TABLE IN INT TAB SELECT MATNR WERKS PSTAT EKGRP PLIFZ FROM MARC INTO TABLE IT_MARC WHERE MATNR = V. *PRINT THE DATA IN APPROPRIATE FORMAT LOOP AT IT_MARC INTO WA_MARC. *DISPLAY THE PARTICULAR MAT NO ONLY ONCE FOR ALL THE PLANTS WHERE IT IS AVAILABL E AT NEW MATNR. ULINE:/(90). WRITE : / '|', WA_MARC-MATNR COLOR 4, 25 '|', * WA_MARC-WERKS COLOR 4, * 45 '|', * WA_MARC-PSTAT COLOR 4, * 65 '|', * WA_MARC-EKGRP COLOR 4, * 75 '|', * WA_MARC-PLIFZ COLOR 4, 90 '|'. ULINE:/(90). ENDAT. *PRINT THE REMAINING DATA IN THE ITAB WRITE : / '|', * WA_MARC-MATNR COLOR 4, 25 '|', WA_MARC-WERKS COLOR 4, 45 '|', WA_MARC-PSTAT COLOR 4, 65 '|', WA_MARC-EKGRP COLOR 4, 75 '|', WA_MARC-PLIFZ COLOR 4, 90 '|'. ULINE:/(90). *DISPLAY THE PAGE NUMBER ON THE LAST PAGE AT LAST. SKIP 2. WRITE:/ 'PAGE NO : ' COLOR 3,SY-PAGNO COLOR 3. NEW-PAGE."TO SKIP END-OF-PAGE ENDAT. ENDLOOP. ELSE. *IF THE CURSOR WAS PLACED ON A FIELD OTHER THAN MATNR OUTPUT ERROR MESSAGE WRITE :/ 'INVALID SELECTION'. ENDIF. ENDIF. *TOP-OF-PAGE FOR SECONDARY LIST TOP-OF-PAGE DURING LINE-SELECTION. *AT FIRST. WRITE :/ 'SECONDARY LIST TO GET PLANT DETAIL'. ULINE:/(90). WRITE: / '|MAT NO' COLOR 2,25 '|PLANT' COLOR 2,45 '|MAIN STAT' COLOR 2,65 '|PUR GRP' COLOR 2,75 '|DLVR TIME' COLOR 2,90 '|'. *ENDAT.