You are on page 1of 4

REPORT ZABAP_PRO.

PARAMETERS : P_MATNR TYPE MATNR.


DATA :IT TYPE STANDARD TABLE OF
WA LIKE LINE OF IT.
TYPES : BEGIN
MANDT
MATNR
ERSDA
ERNAM
LAEDA
AENAM
MTART
END OF

MARA,

OF TY_MARA1,
TYPE MANDT,
TYPE MATNR,
TYPE ERSDA,
TYPE ERNAM,
TYPE LAEDA,
TYPE AENAM,
TYPE MTART,
TY_MARA1.

TYPES : BEGIN OF TY_MARA2,


MANDT TYPE MANDT,
MATNR TYPE MATNR ,
MBRSH TYPE MBRSH,
VPSTA TYPE VPSTA,
MTART TYPE MTART,
MEINS TYPE MEINS,
END OF TY_MARA2.
DATA : WA1
WA2
IT1
IT2

TYPE
TYPE
TYPE
TYPE

TY_MARA1,
TY_MARA2,
TABLE OF TY_MARA1,
TABLE OF TY_MARA2.

SELECT SINGLE * FROM MARA INTO WA WHERE MATNR = P_MATNR.


IF WA IS NOT INITIAL.
MOVE-CORRESPONDING WA TO WA1.
MOVE-CORRESPONDING WA TO WA2.
ENDIF.
CLEAR WA.
PERFORM DYNAMIC_MAPPING

PERFORM DYNAMIC_MAPPING

USING 'MARA' WA1


CHANGING WA.
USING 'MARA' WA2
CHANGING WA.

FORM DYNAMIC_MAPPING USING P_TABLE WA_TEMP


CHANGING WA.

DATA : IDETAILS TYPE ABAP_COMPDESCR_TAB, IT


XDETAILS TYPE ABAP_COMPDESCR.
WA
DATA :REF_TABLE_DES TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS :<FS1> TYPE ANY,
<FS2> TYPE ANY.

REF_TABLE_DES ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_TABLE ). It stores


mara table description.It is a object of class .
IDETAILS[] = REF_TABLE_DES->COMPONENTS[].It stores table fields in form of
records into IT IDEATAILS.like first field description as first record,..
LOOP AT IDETAILS INTO XDETAILS.
ASSIGN COMPONENT XDETAILS-NAME OF STRUCTURE WA_TEMP TO <FS1>. Xdetailsname has mandt. So value of mandt field of wa_temp is copied to fs1.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
ASSIGN COMPONENT XDETAILS-NAME OF STRUCTURE WA TO <FS2>.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
IF <FS2> IS INITIAL.
<FS2> = <FS1>.
ENDIF.

WRITE :<FS2> ,' '.


ENDLOOP.
ENDFORM.

REPORT ZABAP_PRO1.
PARAMETERS: P_TABLE TYPE TABNAME,
ROW_NO TYPE I.
DATA : REF_TABLE TYPE REF TO DATA.
FIELD-SYMBOLS :<FS_IT> TYPE ANY TABLE,
<FS_WA> TYPE ANY.

CREATE DATA REF_TABLE TYPE TABLE OF (P_TABLE). i.e creating IT

ASSIGN REF_TABLE->* TO <FS_IT>.


CLEAR REF_TABLE.

CREATE DATA REF_TABLE TYPE (P_TABLE). WA


ASSIGN REF_TABLE->* TO <FS_WA>.
CLEAR REF_TABLE.
SELECT * FROM (P_TABLE) INTO TABLE <FS_IT> UP TO ROW_NO ROWS .
LOOP AT <FS_IT> INTO <FS_WA>.
DATA : IDETAILS TYPE ABAP_COMPDESCR_TAB,
XDETAILS TYPE ABAP_COMPDESCR.
DATA :REF_TABLE_DES TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS :<FS> TYPE ANY.
REF_TABLE_DES ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_TABLE ).
IDETAILS[] = REF_TABLE_DES->COMPONENTS[]. CONTAINING DESCRIPTION OF
FIELDS OF P_TABLE AS RECORDS IN IDETAILS TABLE.

LOOP AT IDETAILS INTO XDETAILS.


ASSIGN COMPONENT XDETAILS-NAME OF STRUCTURE <FS_WA> TO <FS>.
WRITE : <FS>,' '.
ENDLOOP.
ULINE.
ENDLOOP.

REPORT ZABAP_PRO2.

PARAMETERS: P_TABLE TYPE TABNAME,


ROW_NO TYPE I.
DATA : REF_TABLE TYPE REF TO DATA.
FIELD-SYMBOLS :<FS_IT> TYPE ANY TABLE,
<FS_WA> TYPE ANY.

CREATE DATA REF_TABLE TYPE TABLE OF (P_TABLE).

ASSIGN REF_TABLE->* TO <FS_IT>.


CLEAR REF_TABLE.

CREATE DATA REF_TABLE TYPE (P_TABLE).


ASSIGN REF_TABLE->* TO <FS_WA>.
CLEAR REF_TABLE.
SELECT * FROM (P_TABLE) INTO TABLE <FS_IT> UP TO ROW_NO ROWS .
LOOP AT <FS_IT> INTO <FS_WA>.
FIELD-SYMBOLS : <FS> TYPE ANY.
DO 10 TIMES.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <FS_WA> TO <FS>. FIRST FIELD VALUE
OF WA TO FS AND SO ON UPTO 10 FIELDS.
WRITE :<FS>.
ENDDO.
WRITE :/.
ENDLOOP.

You might also like