02-11-2008 6:46 AM
hi all,
i couldnt find out wat the mistake in this progarm .can anyone pl tel me where i did mistake.
Actualy the requirement i, display the full address of vendor by using lifnr.
REPORT YTESTPROG2.
tables: lfa1,adrc.
parameters: KD_LIFNR type lfa1-lifnr.
DATA: BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
ANRED LIKE LFA1-ANRED,
NAME1 LIKE LFA1-NAME1,
NAME2 LIKE LFA1-NAME2,
NAME3 LIKE LFA1-NAME3,
NAME4 LIKE LFA1-NAME4,
stras like lfa1-stras,
ADRNR like lfa1-ADRNR,
ORT01 LIKE LFA1-ORT01,
ORT02 LIKE LFA1-ORT02,
PSTLZ LIKE LFA1-PSTLZ,
ADDRNUMBER LIKE ADRC-ADDRNUMBER,
HOUSE_NUM1 LIKE ADRC-HOUSE_NUM1,
STR_SUPPL1 like adrc-STR_SUPPL1,
STREET2 LIKE ADRC-STR_SUPPL1,
STREET3 LIKE ADRC-STR_SUPPL2,
STREET4 LIKE ADRC-STR_SUPPL3,
STREET5 LIKE ADRC-LOCATION,
REGION LIKE ADRC-REGION,
COUNTRY LIKE ADRC-COUNTRY,
end of itab.
SELECT LIFNR ANRED NAME1 NAME2 NAME3 NAME4 stras ort01 adrnr
ORT02 PSTLZ FROM LFA1"ADRCREGION ADRCCOUNTRY
INTO CORRESPONDING FIELDS OF TABLE ITAB
"FROM LFA1 "INNER JOIN ADRC
"LFA1ADRNR = ADRCADDRNUMBER
WHERE LIFNR eq KD_LIFNR.
select single adrc~STR_SUPPL1
"adrcSTR_SUPPL2 adrcSTR_SUPPL3 adrc~LOCATION
into itab-street2 from lfa1
inner join adrc on
lfa1adrnr = adrcaddrnumber
WHERE lfa1~lifnr = kd_lifnr.
loop at itab.
write:/ itab-lifnr,itab-ANRED,itab-NAME1,itab-ORT01,itab-ort02,itab-pstlz,itab-ADRNR,
itab-STREET2.
endloop.
02-11-2008 7:08 AM
Hi,
Using same code, you have to use endselect and modify statement. See code below :
SELECT LIFNR ANRED NAME1 NAME2 NAME3 NAME4 stras ort01 adrnr
ORT02 PSTLZ FROM LFA1"ADRC~REGION ADRC~COUNTRY
INTO CORRESPONDING FIELDS OF TABLE ITAB
"FROM LFA1 "INNER JOIN ADRC
"LFA1~ADRNR = ADRC~ADDRNUMBER
WHERE LIFNR eq KD_LIFNR.
select single adrc~STR_SUPPL1
"adrc~STR_SUPPL2 adrc~STR_SUPPL3 adrc~LOCATION
into itab-street2 from lfa1
inner join adrc on
lfa1~adrnr = adrc~addrnumber
WHERE lfa1~lifnr = kd_lifnr.
modify itab. "New code added
endselect. "New code added.
loop at itab.
write:/ itab-lifnr,itab-ANRED,itab-NAME1,itab-ORT01,itab-ort02,itab-pstlz,itab-ADRNR,
itab-STREET2.
endloop.
Thanks,
Sriram Ponna.
02-11-2008 6:59 AM
Hi Ranga,
The code should be quite simple actually. A simple demo is below:
TABLES: lfa1, adrc.
PARAMETERS: p_lifnr TYPE lfa1-lifnr.
DATA: BEGIN OF itab OCCURS 0,
lifnr TYPE lfa1-lifnr,
name1 TYPE adrc-name1,
city1 TYPE adrc-city1,
END OF itab.
SELECT a~lifnr b~name1 b~city1
FROM lfa1 AS a INNER JOIN adrc AS b
ON a~adrnr EQ b~addrnumber
INTO TABLE itab
WHERE a~lifnr EQ p_lifnr.
IF sy-subrc EQ 0.
LOOP AT itab.
WRITE:/ itab-lifnr, itab-name1 , itab-city1.
ENDLOOP.
ENDIF.
You can add the extra fields you need into itab and the SELECT query.
Cheers,
Aditya
02-11-2008 7:08 AM
Hi,
Using same code, you have to use endselect and modify statement. See code below :
SELECT LIFNR ANRED NAME1 NAME2 NAME3 NAME4 stras ort01 adrnr
ORT02 PSTLZ FROM LFA1"ADRC~REGION ADRC~COUNTRY
INTO CORRESPONDING FIELDS OF TABLE ITAB
"FROM LFA1 "INNER JOIN ADRC
"LFA1~ADRNR = ADRC~ADDRNUMBER
WHERE LIFNR eq KD_LIFNR.
select single adrc~STR_SUPPL1
"adrc~STR_SUPPL2 adrc~STR_SUPPL3 adrc~LOCATION
into itab-street2 from lfa1
inner join adrc on
lfa1~adrnr = adrc~addrnumber
WHERE lfa1~lifnr = kd_lifnr.
modify itab. "New code added
endselect. "New code added.
loop at itab.
write:/ itab-lifnr,itab-ANRED,itab-NAME1,itab-ORT01,itab-ort02,itab-pstlz,itab-ADRNR,
itab-STREET2.
endloop.
Thanks,
Sriram Ponna.
02-11-2008 7:37 AM
hi Sriram Ponna,
Thanks for ur reply.i tried as u said.but i got a run time error.the error is table_illegal_statement.
if possible can u tel y this error is coming pl.Thanks for u great help.
Regds,
Ranganyahi.
02-11-2008 7:57 AM
Try as below:
PARAMETERS: p_lifnr TYPE lifnr.
TYPES: BEGIN OF ty_ven_data,
lifnr LIKE lfa1-lifnr,
anred LIKE lfa1-anred,
name1 LIKE lfa1-name1,
name2 LIKE lfa1-name2,
name3 LIKE lfa1-name3,
name4 LIKE lfa1-name4,
stras LIKE lfa1-stras,
adrnr LIKE lfa1-adrnr,
ort01 LIKE lfa1-ort01,
ort02 LIKE lfa1-ort02,
pstlz LIKE lfa1-pstlz,
addrnumber LIKE adrc-addrnumber,
house_num1 LIKE adrc-house_num1,
str_suppl1 LIKE adrc-str_suppl1,
* str_suppl2 LIKE ADRC-STR_SUPPL1,
str_suppl2 LIKE adrc-str_suppl2,
str_suppl3 LIKE adrc-str_suppl3,
location LIKE adrc-location,
region LIKE adrc-region,
country LIKE adrc-country,
END OF ty_ven_data.
DATA: i_ven_data TYPE TABLE OF ty_ven_data,
wa_ven_data TYPE ty_ven_data.
START-OF-SELECTION.
SELECT a~lifnr a~anred a~name1 a~name2 a~name3 a~name4
a~stras a~adrnr a~ort01 a~ort02 a~pstlz
b~addrnumber b~house_num1 b~str_suppl1 b~str_suppl2
b~str_suppl3 b~location b~region b~country
INTO TABLE i_ven_data
FROM lfa1 AS a
INNER JOIN adrc AS b
ON a~adrnr = b~addrnumber
WHERE a~lifnr = p_lifnr.
Regards
Eswar