Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

For all entries

Former Member
0 Kudos

Hi Experts,

i know how to use 2 tables. but

How to combine 3 internal tables using for all entries.

Regards,

sudharsan.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

DATA: tab_spfli TYPE TABLE OF spfli,

tab_sflight TYPE SORTED TABLE OF sflight

WITH UNIQUE KEY table_line,

wa LIKE LINE OF tab_sflight.

SELECT carrid connid

INTO CORRESPONDING FIELDS OF TABLE tab_spfli

FROM spfli

WHERE cityfrom = 'NEW YORK'.

SELECT carrid connid fldate

INTO CORRESPONDING FIELDS OF TABLE tab_sflight

FROM sflight

FOR ALL ENTRIES IN tab_spfli

WHERE carrid = tab_spfli-carrid AND

connid = tab_spfli-connid.

LOOP AT tab_sflight INTO wa.

AT NEW connid.

WRITE: / wa-carrid, wa-connid.

ENDAT.

WRITE: / wa-fldate.

ENDLOOP.

here is another e.g.:

DATA: BEGIN OF line,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

cityfrom TYPE spfli-cityfrom,

cityto TYPE spfli-cityto,

END OF line,

itab LIKE TABLE OF line.

line-cityfrom = 'FRANKFURT'.

line-cityto = 'BERLIN'.

APPEND line TO itab.

line-cityfrom = 'NEW YORK'.

line-cityto = 'SAN FRANCISCO'.

APPEND line TO itab.

SELECT carrid connid cityfrom cityto

INTO CORRESPONDING FIELDS OF line

FROM spfli

FOR ALL ENTRIES IN itab

WHERE cityfrom = itab-cityfrom AND cityto = itab-cityto.

WRITE: / line-carrid, line-connid, line-cityfrom, line-cityto.

ENDSELECT.

reward if useful

9 REPLIES 9

Former Member
0 Kudos

DATA: tab_spfli TYPE TABLE OF spfli,

tab_sflight TYPE SORTED TABLE OF sflight

WITH UNIQUE KEY table_line,

wa LIKE LINE OF tab_sflight.

SELECT carrid connid

INTO CORRESPONDING FIELDS OF TABLE tab_spfli

FROM spfli

WHERE cityfrom = 'NEW YORK'.

SELECT carrid connid fldate

INTO CORRESPONDING FIELDS OF TABLE tab_sflight

FROM sflight

FOR ALL ENTRIES IN tab_spfli

WHERE carrid = tab_spfli-carrid AND

connid = tab_spfli-connid.

LOOP AT tab_sflight INTO wa.

AT NEW connid.

WRITE: / wa-carrid, wa-connid.

ENDAT.

WRITE: / wa-fldate.

ENDLOOP.

here is another e.g.:

DATA: BEGIN OF line,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

cityfrom TYPE spfli-cityfrom,

cityto TYPE spfli-cityto,

END OF line,

itab LIKE TABLE OF line.

line-cityfrom = 'FRANKFURT'.

line-cityto = 'BERLIN'.

APPEND line TO itab.

line-cityfrom = 'NEW YORK'.

line-cityto = 'SAN FRANCISCO'.

APPEND line TO itab.

SELECT carrid connid cityfrom cityto

INTO CORRESPONDING FIELDS OF line

FROM spfli

FOR ALL ENTRIES IN itab

WHERE cityfrom = itab-cityfrom AND cityto = itab-cityto.

WRITE: / line-carrid, line-connid, line-cityfrom, line-cityto.

ENDSELECT.

reward if useful

Former Member
0 Kudos

hi rao,

you can ready in structure with tables and it can combine in three internal table...

example:

tables: table 1,table 2.

data: itab2, itab3.

data: begin of itab1 with occurs 0,

itab1-field1(table1) , itab2-field2(table1) , itab3-field3(table2)...

end of itab1.

Thanks,

S.Suresh.

reward point if useful

Message was edited by:

suresh selvarajan

Message was edited by:

suresh selvarajan

Former Member
0 Kudos

See the below example :

*Internal table for mara

DATA : BEGIN OF itab_mara OCCURS 0,

matnr LIKE mara-matnr,

mtart LIKE mara-mtart,

meins LIKE mara-meins,

matkl LIKE mara-matkl,

ernam LIKE mara-ernam,

END OF itab_mara.

*Internal table for makt

DATA : BEGIN OF itab_makt OCCURS 0,

matnr LIKE makt-maktx,

maktx LIKE makt-maktx,

END OF itab_makt.

*Internal table for t023t

DATA : BEGIN OF itab_t023t OCCURS 0,

matkl LIKE t023t-matkl,

wgbez LIKE t023t-wgbez,

END OF itab_t023t.

*Internal table for marc

DATA : BEGIN OF itab_marc OCCURS 0,

matnr LIKE marc-matnr,

werks LIKE marc-werks,

END OF itab_marc.

&----


*& Form GET_DATA

&----


FORM get_data.

SELECT matnr

werks

FROM marc INTO TABLE itab_marc WHERE werks IN s_werks AND

matnr IN s_matnr.

IF NOT itab_marc[] IS INITIAL.

SELECT matnr

mtart

meins

matkl

ernam

FROM mara INTO TABLE itab_mara

FOR ALL ENTRIES IN itab_marc

WHERE matnr = itab_marc-matnr

AND mtart IN s_mtart

AND meins IN s_meins.

ENDIF.

IF NOT itab_mara[] IS INITIAL.

SELECT matnr

maktx

FROM makt INTO TABLE itab_makt

FOR ALL ENTRIES IN itab_mara

WHERE matnr = itab_mara-matnr AND

spras = sy-langu.

ENDIF.

IF NOT itab_mara[] IS INITIAL.

SELECT matkl wgbez

FROM t023t

INTO TABLE itab_t023t

FOR ALL ENTRIES IN itab_mara

WHERE matkl = itab_mara-matkl AND

spras = sy-langu.

ENDIF.

ENDFORM. " GET_DATA

&----


*& Form fill_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_data.

SORT : itab_mara BY matnr,

itab_marc BY matnr,

itab_makt BY matnr,

itab_t023t BY matkl.

  • loop at itab_mara.

LOOP AT itab_t023t.

CLEAR : f_itab.

READ TABLE itab_mara WITH KEY matkl = itab_t023t-matkl BINARY SEARCH.

IF sy-subrc = 0.

f_itab-wgbez = itab_t023t-wgbez.

f_itab-mtart = itab_mara-mtart.

f_itab-matnr = itab_mara-matnr .

f_itab-ernam = itab_mara-ernam.

f_itab-matkl = itab_mara-matkl.

ENDIF.

READ TABLE itab_makt WITH KEY matnr = itab_mara-matnr BINARY SEARCH.

IF sy-subrc = 0.

f_itab-maktx = itab_makt-maktx.

ENDIF.

READ TABLE itab_marc WITH KEY matnr = itab_makt-matnr BINARY SEARCH.

IF sy-subrc = 0.

f_itab-werks = itab_marc-werks.

ENDIF.

  • Read table itab_t023t with key matkl = itab_mara-matkl binary search

*.

  • if sy-subrc = 0.

*

  • f_itab-wgbez = itab_t023t-wgbez.

*

  • endif.

APPEND f_itab.

ENDLOOP.

SORT f_itab BY mtart matnr ernam.

ENDFORM. " fill_data

&----


*& Form WRITE_REPORT

&----


FORM write_report.

LOOP AT f_itab.

WRITE : / sy-vline, f_itab-mtart, 17 sy-vline,

f_itab-matnr, 35 sy-vline,

f_itab-maktx, 78 sy-vline,

f_itab-ernam, 93 sy-vline,

f_itab-matkl, 111 sy-vline,

f_itab-wgbez, 134 sy-vline.

ULINE AT /(134).

ENDLOOP.

ENDFORM. " WRITE_REPORT

Former Member
0 Kudos

HI,

SELECT carrid connid

INTO CORRESPONDING FIELDS OF TABLE tab_spfli

FROM spfli

WHERE cityfrom = 'NEW YORK'.

SELECT carrid connid fldate

INTO CORRESPONDING FIELDS OF TABLE tab_sflight

FROM sflight

FOR ALL ENTRIES IN tab_spfli

WHERE carrid = tab_spfli-carrid AND

connid = tab_spfli-connid.

data:itab like standard table of mara,

jtab like standard table of makt,

ktab like standard table of mard,

...................

select * from mara into table itab where matnr in s_matnr.

select spras, maktx from makt into corresponding fields of table jtab for all entries in itab where matnr = itab-matnr.

select * from mard into table ktab for all entries in jtab where matnr = jtab-matnr and spras = 'EN'.

.........................

...............

like this u can have any no.of for all entries.

if helpful reward some points.

with regards,

Suresh Aluri.

Former Member
0 Kudos

hi sudharsan rao,

go through this code, this will surely clarify u'r doubt.

SELECT werks

matnr

FROM marc INTO CORRESPONDING FIELDS OF TABLE g_t_marc

WHERE werks IN s_werks AND

matnr IN s_matnr.

IF NOT g_t_marc[] IS INITIAL.

SELECT matnr

werks

stlan

stlnr

stlal

FROM mast INTO CORRESPONDING FIELDS OF TABLE g_t_mast

FOR ALL ENTRIES IN g_t_marc

WHERE werks = g_t_marc-werks AND

matnr = g_t_marc-matnr.

SELECT matnr

werks

plnty

plnnr

plnal

zkriz

zaehl

FROM mapl INTO CORRESPONDING FIELDS OF TABLE g_t_mapl

FOR ALL ENTRIES IN g_t_marc

WHERE werks = g_t_marc-werks AND

matnr = g_t_marc-matnr .

SELECT matnr

werks

verid

adatu

bdatu

mdv01

FROM mkal INTO CORRESPONDING FIELDS OF TABLE g_t_mkal

FOR ALL ENTRIES IN g_t_marc

WHERE werks = g_t_marc-werks AND

matnr = g_t_marc-matnr.

ENDIF.

<b>please reward points if helpfull.</b>

with regards,

radhika kolluru.

0 Kudos

Hi all,

Thank u verymuch to all. i ve cleared my problem,

i ve given gd rewards 2 all.

Thanks and Regards,

sudharsan

Former Member
0 Kudos

Hi

i had developed a program i am sending you code plz see

TABLES: HRP1001, HRP1026, HRP1000,PCHDY.

TYPE-POOLS SLIS.

TYPES: BEGIN OF ST_HRP1000,

OBJID TYPE HRP1001-OBJID,

STEXT TYPE HRP1000-STEXT,

END OF ST_HRP1000.

TYPES : BEGIN OF ST_HRP1001,

OTYPE TYPE HRP1001-OTYPE,

OBJID TYPE HRP1001-OBJID,

RELAT type hrp1001-RELAT,

BEGDA TYPE HRP1001-BEGDA,

ENDDA TYPE HRP1001-ENDDA,

SCLAS TYPE HRP1001-SCLAS,

SOBID TYPE HRP1001-SOBID,

END OF ST_HRP1001.

TYPES : BEGIN OF ST_HRP1026,

OTYPE TYPE HRP1026-OTYPE,

OBJID TYPE HRP1001-OBJID,

AEDTM TYPE HRP1026-AEDTM,

UNAME TYPE HRP1026-UNAME,

DELET TYPE HRP1026-DELET,

CANCR TYPE HRP1026-CANCR,

END OF ST_HRP1026.

TYPES : BEGIN OF ST_REASON,

CANCR TYPE HRP1026-CANCR,

CANCRT TYPE T77CRT-CANCRT,

END OF ST_REASON.

TYPES : BEGIN OF ST_SOBID,

OTYPE TYPE HRP1001-OTYPE,

OBJID TYPE HRP1001-OBJID,

RELAT type hrp1001-OBJID,

BEGDA TYPE HRP1001-BEGDA,

ENDDA TYPE HRP1001-ENDDA,

SCLAS TYPE HRP1001-SCLAS,

SOBID TYPE HRP1001-OBJID,

END OF ST_SOBID.

TYPES : BEGIN OF ST_OBJID,

OBJID TYPE HRP1001-OBJID,

END OF ST_OBJID.

TYPES : BEGIN OF ST_LOCATION,

OTYPE TYPE HRP1001-OTYPE,

OBJID TYPE HRP1001-OBJID,

RSIGN TYPE HRP1001-RSIGN,

RELAT TYPE HRP1001-RELAT,

SCLAS TYPE HRP1001-SCLAS,

SOBID TYPE HRP1001-SOBID,

END OF ST_LOCATION.

TYPES : BEGIN OF ST_LOCATION1,

OTYPE TYPE HRP1001-OTYPE,

OBJID TYPE HRP1001-OBJID,

RSIGN TYPE HRP1001-RSIGN,

RELAT TYPE HRP1001-RELAT,

SCLAS TYPE HRP1001-SCLAS,

SOBID TYPE HRP1001-OBJID,

END OF ST_LOCATION1.

TYPES : BEGIN OF ST_LSTEXT,

OTYPE TYPE HRP1000-OTYPE,

OBJID TYPE HRP1000-OBJID,

LSTEXT TYPE HRP1000-STEXT,

END OF ST_LSTEXT.

TYPES : BEGIN OF ST_OBJID_SH,

OTYPE TYPE HRP1000-OTYPE,

OBJID TYPE HRP1000-OBJID,

END OF ST_OBJID_SH.

DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.

DATA : WA_OBJID_SH TYPE ST_OBJID_SH.

DATA : IT_LSTEXT TYPE STANDARD TABLE OF ST_LSTEXT. "TOS STORE THE TEXT OF COURCE LOCATION

DATA : WA_LSTEXT TYPE ST_LSTEXT.

DATA : IT_LOCATION TYPE STANDARD TABLE OF ST_LOCATION. " TO STORE THE LOCATION OF COURCE

DATA : WA_LOCATION TYPE ST_LOCATION.

DATA : IT_LOCATION1 TYPE STANDARD TABLE OF ST_LOCATION1. " TO CONVERT SOBID INTO OBJID FOR COURCE LOCATION

DATA : WA_LOCATION1 TYPE ST_LOCATION1.

DATA : IT_SOBID TYPE STANDARD TABLE OF ST_SOBID. " TO CHANGE THE SOBID OF HRP1001 TO OBJID OF HRP1026

DATA : WA_SOBID TYPE ST_SOBID. " BY USING FOR ALL ENTRIES

DATA : IT_REASON TYPE STANDARD TABLE OF ST_REASON. "TO STORE T HE REASON FOR CANCELL TEXT

DATA : WA_REASON TYPE ST_REASON.

DATA : IT_OUTPUT TYPE STANDARD TABLE OF ST_OUTPUT. "OUTPUT FEILDS OF REPORT.

DATA : WA_OUTPUT TYPE ST_OUTPUT.

DATA : IT_OUTPUT_1 TYPE STANDARD TABLE OF ST_OUTPUT. " TEMP OUTPUT FEILDS OF REPORT.

DATA : WA_OUTPUT_1 TYPE ST_OUTPUT.

DATA : IT_HRP1000 TYPE STANDARD TABLE OF ST_HRP1000. "DATA FROM HRP1000 TABLE

DATA : WA_HRP1000 TYPE ST_HRP1000.

DATA : IT_HRP1001 TYPE STANDARD TABLE OF ST_HRP1001. "DATA FROM HRP1001 TABLE

DATA : WA_HRP1001 TYPE ST_HRP1001.

DATA : IT_HRP1026 TYPE STANDARD TABLE OF ST_HRP1026. "DATA FROM HRP1026 TABLE

DATA : WA_HRP1026 TYPE ST_HRP1026.

DATA : IT_OBJID TYPE STANDARD TABLE OF ST_OBJID. " TO STORE THE OBJID OF HRP1001

DATA : WA_OBJID TYPE ST_OBJID.

DATA: WS_FCAT TYPE SLIS_FIELDCAT_ALV . " FEILDCATALOG FOR ALV REPORT

DATA: IN_FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: W_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA : LV_COUNT TYPE I. "FEILD FOR SERIAL NUMBER

***************************END OF DATA DECLARATION******************************************

***********SELECTION SCREEN DESIGN***********************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .

SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .

SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

**********END OF SELECTION SCREEN DESIGN*****************

*****INITIALIZATION VENT TO ASIGN DEFAULT VALUES TO OTYPE

*INITIALIZATION.

  • S_OTYPE-LOW = 'D'.

  • S_OTYPE-SIGN = 'I'.

  • S_OTYPE-OPTION = 'EQ'.

  • APPEND S_OTYPE.

  • CLEAR S_OTYPE.

*************END OF EVENT INITIALIZATION*****************

*********VALIDATION FOR SCREEN FIELDS********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

  • IF S_OBJID IS NOT INITIAL.

SELECT OTYPE OBJID FROM HRP1000

INTO TABLE IT_OBJID_SH

WHERE OTYPE = 'D'.

IF SY-SUBRC EQ 0.

  • SEARCH HELP FOR QUALIFICATION.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'OBJID'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'S_OBJID'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_OBJID_SH

  • FIELD_TAB =

  • RETURN_TAB = RETURN_TAB

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

.

  • IF SY-SUBRC NE 0.

  • MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA.' TYPE 'E'.

  • ENDIF.

*

  • ENDIF.

  • REFRESH IT_OBJID.

***************VALIDATION OF SCREEN FIELDS ENDS***********

*****************START OF SELECTION ************************

START-OF-SELECTION.

SELECT OTYPE

OBJID

RELAT

BEGDA

ENDDA

SCLAS

SOBID FROM HRP1001 INTO TABLE IT_HRP1001

WHERE OTYPE = 'D'

AND OBJID IN S_OBJID

AND BEGDA GE DATE-LOW

AND ENDDA LE DATE-HIGH

AND ( SCLAS = 'E' OR SCLAS = 'ET' ).

IF SY-SUBRC NE 0.

MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

ENDIF.

LOOP AT IT_HRP1001 INTO WA_HRP1001.

WA_SOBID-OTYPE = WA_HRP1001-OTYPE.

WA_SOBID-OBJID = WA_HRP1001-OBJID.

WA_SOBID-RELAT = WA_HRP1001-RELAT.

WA_SOBID-BEGDA = WA_HRP1001-BEGDA.

WA_SOBID-ENDDA = WA_HRP1001-ENDDA.

WA_SOBID-SCLAS = WA_HRP1001-SCLAS.

WA_SOBID-SOBID = WA_HRP1001-SOBID.

APPEND WA_SOBID TO IT_SOBID.

ENDLOOP.

SELECT OTYPE

OBJID

AEDTM

UNAME

DELET

CANCR

  • NCONT

FROM HRP1026

INTO TABLE IT_HRP1026

FOR ALL ENTRIES IN IT_SOBID

WHERE OBJID = IT_SOBID-SOBID

AND ( OTYPE = 'E' OR OTYPE = 'ET' )

AND DELET = 'X' AND

BEGDA GE DATE-LOW AND

ENDDA LE DATE-HIGH.

IF SY-SUBRC EQ 0.

SELECT OBJID

STEXT

FROM HRP1000

INTO TABLE IT_HRP1000

FOR ALL ENTRIES IN IT_SOBID

WHERE OBJID = IT_SOBID-SOBID AND

BEGDA GE DATE-LOW AND

ENDDA LE DATE-HIGH.

SELECT CANCR

CANCRT

FROM T77CRT

INTO TABLE IT_REASON

FOR ALL ENTRIES IN IT_HRP1026

WHERE CANCR = IT_HRP1026-CANCR

AND LANGU = 'E' .

********PERFORM FOR GETTING T HE LOCATION OF THE COURCE**

PERFORM GET_LOCATION.

**************END OF LOCATION OF COURCE ******************

ELSE.

MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

ENDIF.

*****PERFORM FOR GETTING DATA INTO THE FINAL INTERNAL TABLE IT_OUTPUT**

PERFORM GET_DATA.

*********************************END OF PERFORM ET DATA ***************

***********LOGIC FOR PRONTING NUMBER OF RECORDS ***********************

LV_COUNT = 0.

LOOP AT IT_OUTPUT INTO WA_OUTPUT.

LV_COUNT = LV_COUNT + 1.

WA_OUTPUT-COUNT = LV_COUNT.

APPEND WA_OUTPUT TO IT_OUTPUT_1.

ENDLOOP.

REFRESH IT_OUTPUT.

IT_OUTPUT = IT_OUTPUT_1.

********************END OF LOGIC FOR NUMBER OF RECORDS ***************

****************DISPLAYING OUTPUT BY USEING GRID DISPLAY**********

PERFORM ALV_DISPLAY.

****************************END OF PERFORM FOR DISPLAYING **********

&----


*& Form PERFORM_ALV

&----


  • DISPLAY THE RECORDS IN ALV GRID FORMAT.

----


FORM ALV_DISPLAY.

PERFORM FIELD_CATALOG USING 'COUNT' 'Sr. No.'.

PERFORM FIELD_CATALOG USING 'OBJID' 'COURCE ID.'.

PERFORM FIELD_CATALOG USING 'STEXT' 'COURCE NAME'.

PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.

PERFORM FIELD_CATALOG USING 'BEGDA' 'BEGIN DATE '.

PERFORM FIELD_CATALOG USING 'ENDDA' 'END DATE '.

PERFORM FIELD_CATALOG USING 'CANCRT' 'REASON'.

PERFORM FIELD_CATALOG USING 'AEDTM' 'DATE Of CANCEL'.

  • PERFORM FIELD_CATALOG USING 'NCONT' 'NUMBER OF BOOKINGS'.

  • PERFORM FIELD_CATALOG USING 'LOCTX' 'COURCE LOCATION'.

PERFORM FIELD_CATALOG USING 'UNAME' 'WHO CANCELLED'.

  • PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'IT_OUTPUT'

I_GRID_TITLE = ' Cancelled courses with reason '

IT_FIELDCAT = IN_FCAT

TABLES

T_OUTTAB = IT_OUTPUT.

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. "PERFORM_ALV

&----


*& Form FIELD_CATALOG

&----


  • text

----


  • -->FIELD_NAME text

  • -->DIS_TEXT text

----


FORM FIELD_CATALOG USING FIELD_NAME DIS_TEXT.

CLEAR WS_FCAT.

WS_FCAT-TABNAME = 'IT_OUTPUT'.

WS_FCAT-FIELDNAME = FIELD_NAME.

WS_FCAT-SELTEXT_M = DIS_TEXT.

APPEND WS_FCAT TO IN_FCAT .

ENDFORM. "FIELD_CATALOG

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

*sort it_sobid by objid.

LOOP AT IT_SOBID INTO WA_SOBID." where otype eq s_otype and objid eq s_objid.

READ TABLE IT_HRP1026 WITH KEY OBJID = WA_SOBID-SOBID OTYPE = WA_SOBID-SCLAS INTO WA_HRP1026.

IF SY-SUBRC EQ 0.

READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.

  • READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.

WA_OUTPUT-OBJID = WA_HRP1026-OBJID.

WA_OUTPUT-BEGDA = WA_SOBID-BEGDA.

WA_OUTPUT-ENDDA = WA_SOBID-ENDDA.

WA_OUTPUT-AEDTM = WA_HRP1026-AEDTM.

WA_OUTPUT-UNAME = WA_HRP1026-UNAME.

  • WA_OUTPUT-NCONT = WA_HRP1026-NCONT.

  • READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.

WA_OUTPUT-STEXT = WA_HRP1000-STEXT.

READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.

WA_OUTPUT-CANCRT = WA_REASON-CANCRT.

CLEAR WA_REASON-CANCRT.

READ TABLE IT_LOCATION1 WITH KEY OBJID = WA_HRP1026-OBJID INTO WA_LOCATION1..

READ TABLE IT_LSTEXT WITH KEY OBJID = WA_LOCATION1-SOBID OTYPE = 'F' INTO WA_LSTEXT.

WA_OUTPUT-LSTEXT = WA_LSTEXT-LSTEXT.

CLEAR WA_LSTEXT-LSTEXT.

APPEND WA_OUTPUT TO IT_OUTPUT.

CLEAR WA_OUTPUT.

CLEAR WA_OUTPUT-CANCRT.

ENDIF.

ENDLOOP.

ENDFORM. " GET_DATA

&----


*& Form GET_LOCATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_LOCATION .

SELECT OTYPE

OBJID

RSIGN

RELAT

SCLAS

SOBID

FROM HRP1001

INTO TABLE IT_LOCATION

FOR ALL ENTRIES IN IT_HRP1026

WHERE OTYPE = 'E' AND OBJID = IT_HRP1026-OBJID

AND RSIGN = 'A' AND RELAT = '024' AND SCLAS = 'F'

AND BEGDA GE DATE-LOW AND ENDDA LE DATE-HIGH.

IF SY-SUBRC NE 0.

MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

ENDIF.

LOOP AT IT_LOCATION INTO WA_LOCATION.

WA_LOCATION1-OTYPE = WA_LOCATION-OTYPE.

WA_LOCATION1-OBJID = WA_LOCATION-OBJID.

WA_LOCATION1-RSIGN = WA_LOCATION-RSIGN.

WA_LOCATION1-RELAT = WA_LOCATION-RELAT.

WA_LOCATION1-SCLAS = WA_LOCATION-SCLAS.

WA_LOCATION1-SOBID = WA_LOCATION-SOBID.

APPEND WA_LOCATION1 TO IT_LOCATION1.

  • CLEAR WA_LOCATION1.

ENDLOOP.

SELECT OTYPE

OBJID

STEXT

FROM HRP1000

INTO TABLE IT_LSTEXT

FOR ALL ENTRIES IN IT_LOCATION1

WHERE OBJID = IT_LOCATION1-SOBID

AND OTYPE = 'F'.

  • AND BEGDA GE DATE-LOW

  • AND ENDDA LE DATE-HIGH.

ENDFORM. " GET_LOCATION

Former Member
0 Kudos

Hi

<b> SELECT OTYPE

OBJID

RELAT

BEGDA

ENDDA

SCLAS

SOBID FROM HRP1001 INTO TABLE IT_HRP1001

WHERE OTYPE = 'D'

AND OBJID IN S_SOBID

AND BEGDA GE DATE-LOW

AND ENDDA LE DATE-HIGH

AND ( SCLAS = 'E' OR SCLAS = 'ET' ).

IF SY-SUBRC NE 0.

MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

ENDIF.

SELECT OTYPE

OBJID

AEDTM

UNAME

DELET

CANCR

  • NCONT

FROM HRP1026

INTO TABLE IT_HRP1026

FOR ALL ENTRIES IN IT_SOBID

WHERE OBJID = IT_SOBID-SOBID

AND ( OTYPE = 'E' OR OTYPE = 'ET' )

AND DELET = 'X' AND

BEGDA GE DATE-LOW AND

ENDDA LE DATE-HIGH.

IF SY-SUBRC EQ 0.

SELECT CANCR

CANCRT

FROM T77CRT

INTO TABLE IT_REASON

FOR ALL ENTRIES IN IT_HRP1026

WHERE CANCR = IT_HRP1026-CANCR

AND LANGU = 'E' .

ENDIF.</b>

LOOP AT THE 1ST SELECT QUERY AND

READ THE NEXT TABLES AND MOVE DATA TO FINAL WORK AREA AND APPEND THAT TO FINAL INTERNAL TABLE

REWARD IF USEFULL

Former Member
0 Kudos

Hi,

Used This code:

TABLES : vbak , "SALES ORDER HEADER

vbap , " SALES ORDER ITEM

kna1 , " CUSTOMER MASTER

TYPES : BEGIN OF ty_vbak,

vbeln TYPE vbak-vbeln,

kunnr TYPE vbak-kunnr,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart ,

END OF ty_vbak ,

BEGIN OF ty_vbap ,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

brgew TYPE vbap-brgew,

ntgew TYPE vbap-ntgew,

gewei TYPE vbap-gewei ,

netwr TYPE vbap-netwr ,

waerk TYPE vbap-waerk,

END OF ty_vbap,

BEGIN OF ty_kna1 ,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1 ,

telf1 TYPE kna1-telf1,

END OF ty_kna1.

DATA : it_vbak TYPE TABLE OF ty_vbak,

it_vbap TYPE TABLE OF ty_vbap,

it_kna1 TYPE TABLE OF ty_kna1,

wa_vbak TYPE ty_vbak,

wa_vbap TYPE ty_vbap,

wa_kna1 TYPE ty_kna1 .

SELECT vbeln

kunnr

vkorg

vtweg

spart

FROM vbak

INTO TABLE it_vbak

WHERE vbeln IN s_vbeln

AND vkorg IN s_vkorg

AND erdat IN s_erdat.

IF sy-subrc NE 0.

MESSAGE ' NO RECORDS EXIST ! ' TYPE 'E'.

ENDIF.

START-OF-SELECTION.

SELECT vbeln

posnr

matnr

brgew

ntgew

gewei

netwr

waerk

FROM vbap

INTO TABLE it_vbap

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln .

SELECT kunnr

name1

telf1

FROM kna1

INTO TABLE it_kna1

FOR ALL ENTRIES IN it_vbak

WHERE kunnr = it_vbak-kunnr .

Regards,

Nihar Swain.