09-07-2007 5:26 AM
Hi Experts,
i know how to use 2 tables. but
How to combine 3 internal tables using for all entries.
Regards,
sudharsan.
09-07-2007 5:29 AM
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
09-07-2007 5:29 AM
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
09-07-2007 5:31 AM
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
09-07-2007 5:35 AM
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
09-07-2007 5:39 AM
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.
09-07-2007 5:40 AM
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.
09-07-2007 5:49 AM
Hi all,
Thank u verymuch to all. i ve cleared my problem,
i ve given gd rewards 2 all.
Thanks and Regards,
sudharsan
09-07-2007 5:55 AM
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
09-07-2007 5:58 AM
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
09-07-2007 6:12 AM
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.