07-31-2007 10:20 AM
hi friends, i have a problem in smartform for extracting the data from more than two tables i wrote code but it will not extracting the data can any one help me in this situation, if possible correct code and give me reply as early as possible.
I am sending you the code please check it once.
SELECT
vbeln
stceg
FROM vbrk INTO TABLE i_vbrk WHERE vbeln = p_vbeln.
IF NOT i_vbrk[] IS INITIAL.
SELECT
vbeln
vgbel
FROM vbrp INTO TABLE i_vbrp WHERE vbeln = i_vbrk-vbeln.
IF NOT i_vbrp[] IS INITIAL.
SELECT
vbeln
FROM
likp INTO TABLE i_likp WHERE vbeln = i_vbrp-vgbel.
IF NOT i_likp[] IS INITIAL.
SELECT
parnr
FROM vbpa INTO TABLE i_vbpa WHERE vbeln = i_likp-vbeln.
IF NOT i_vbpa[] IS INITIAL.
SELECT
kunnr FROM kna1 INTO TABLE i_kna1 WHERE kunnr = i_vbpa-kunnr.
IF NOT i_kna1[] IS INITIAL.
SELECT
kunnr
FROM knkk INTO TABLE i_knkk WHERE kunnr = i_kna1-kunnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
******************************
*this is for item information
******************************
SELECT
matnr
mfrpn
eannr
FROM mara INTO TABLE i_mara WHERE matnr = i_mara-matnr.
IF NOT i_mara[] IS INITIAL.
SELECT
matnr
maktx
FROM makt INTO TABLE i_makt WHERE matnr = i_mara-matnr.
IF NOT i_makt[] IS INITIAL.
SELECT
matnr
stawn
herkl
FROM marc INTO TABLE i_marc WHERE matnr = i_makt-matnr.
IF NOT i_marc[] IS INITIAL.
SELECT
matnr
vbeln
fkimg
FROM vbrp INTO TABLE i_vbrp WHERE matnr = i_mara-matnr.
IF NOT i_vbrp[] IS INITIAL.
SELECT
vbeln
posnr
FROM vbpa INTO TABLE i_vbpa WHERE vbeln = i_vbrp-vbeln.
IF NOT i_vbpa[] IS INITIAL.
SELECT
vbeln
netpr FROM vbap INTO TABLE i_vbap WHERE vbeln = i_vbpa-vbeln.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
07-31-2007 10:34 AM
Hi,
Change the code as below,
SELECT
vbeln
stceg
FROM vbrk INTO TABLE i_vbrk WHERE vbeln = p_vbeln.
IF NOT i_vbrk[] IS INITIAL.
SELECT
vbeln
vgbel
FROM vbrp INTO TABLE i_vbrp
<b>For all entries in i_vbrk</b>
WHERE vbeln = i_vbrk-vbeln.
IF NOT i_vbrp[] IS INITIAL.
SELECT
vbeln
FROM
likp INTO TABLE i_likp
<b>For all entries in i_vbrp</b>
WHERE vbeln = i_vbrp-vgbel.
IF NOT i_likp[] IS INITIAL.
SELECT
parnr
FROM vbpa INTO TABLE i_vbpa
<b>For all entries in i_likp</b>
WHERE vbeln = i_likp-vbeln.
IF NOT i_vbpa[] IS INITIAL.
SELECT
kunnr FROM kna1 INTO TABLE i_kna1
<b>For all entries in i_vbpa</b>
WHERE kunnr = i_vbpa-kunnr.
IF NOT i_kna1[] IS INITIAL.
SELECT
kunnr
FROM knkk INTO TABLE i_knkk
<b>For all entries in i_kna1</b>
WHERE kunnr = i_kna1-kunnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Reward if helpful.
07-31-2007 10:36 AM
Hi,
Similarly for item also change the code.
If you do the code like this always ur where condition value will be blank only so no data will be fetched.
<b>Reward if helpful</b>
07-31-2007 10:51 AM
thank you friend i tried the code which you gave ,but it is giving dump please check it once possible.This is my full code,
REPORT zsmartform_l.
TABLES: vbrk,vbap,mara,marc.
DATA:i_vbrk LIKE vbrk OCCURS 0 WITH HEADER LINE,
i_likp LIKE likp OCCURS 0 WITH HEADER LINE,
i_vbrp LIKE vbrp OCCURS 0 WITH HEADER LINE,
i_vbpa LIKE vbpa OCCURS 0 WITH HEADER LINE,
i_kna1 LIKE kna1 OCCURS 0 WITH HEADER LINE,
i_vbap LIKE vbap OCCURS 0 WITH HEADER LINE,
i_knkk LIKE knkk OCCURS 0 WITH HEADER LINE,
i_mara LIKE mara OCCURS 0 WITH HEADER LINE,
i_makt LIKE makt OCCURS 0 WITH HEADER LINE,
i_marc LIKE marc OCCURS 0 WITH HEADER LINE.
DATA:adrnr TYPE t001-adrnr.
DATA:adrnr1 TYPE t001-adrnr.
PARAMETERS:p_vbeln LIKE vbrk-vbeln.
***********************
*this is for title
***********************
SELECT SINGLE * FROM vbrk INTO i_vbrk WHERE vbeln = p_vbeln.
*********************************
**this is for company address
********************************
SELECT SINGLE adrnr INTO adrnr
FROM vbrk AS a
INNER JOIN t001 AS b ON
abukrs = bbukrs WHERE a~vbeln = p_vbeln.
*************************************
***this is for sold-to-party address
************************************
SELECT SINGLE adrnr
FROM kna1 INTO adrnr1 WHERE kunnr = i_vbrk-kunag.
*INCLUDE IDBILLPRINT.
************************************
**this is for ship to party address
************************************
**select single
kunwe
from vbdkr into kunwe1 where kunnr = vbdkr-kunwe.
********************************
*this is for header information
*******************************
SELECT
vbeln
stceg
FROM vbrk INTO TABLE i_vbrk WHERE vbeln = p_vbeln.
IF NOT i_vbrk[] IS INITIAL.
SELECT
vbeln
vgbel
FROM vbrp INTO TABLE i_vbrp
FOR ALL ENTRIES IN i_vbrk
WHERE vbeln = i_vbrk-vbeln.
IF NOT i_vbrp[] IS INITIAL.
SELECT
vbeln
FROM
likp INTO TABLE i_likp
FOR ALL ENTRIES IN i_vbrp
WHERE vbeln = i_vbrp-vgbel.
IF NOT i_likp[] IS INITIAL.
SELECT
parnr
FROM vbpa INTO TABLE i_vbpa
FOR ALL ENTRIES IN i_likp
WHERE vbeln = i_likp-vbeln.
IF NOT i_vbpa[] IS INITIAL.
SELECT
kunnr
FROM kna1 INTO TABLE i_kna1
FOR ALL ENTRIES IN i_vbpa
WHERE kunnr = i_vbpa-kunnr.
IF NOT i_kna1[] IS INITIAL.
SELECT
kunnr
FROM knkk INTO TABLE i_knkk
FOR ALL ENTRIES IN i_kna1
WHERE kunnr = i_kna1-kunnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
******************************
*this is for item information
******************************
SELECT
matnr
mfrpn
eannr
FROM mara INTO TABLE i_mara WHERE matnr = mara-matnr.
IF NOT i_mara[] IS INITIAL.
SELECT
matnr
maktx
FROM makt INTO TABLE i_makt
for all entries in i_mara
WHERE matnr = i_mara-matnr.
IF NOT i_makt[] IS INITIAL.
SELECT
matnr
stawn
herkl
FROM marc INTO TABLE i_marc
for all entries in i_makt
WHERE matnr = i_makt-matnr.
IF NOT i_marc[] IS INITIAL.
SELECT
vbeln
matnr
fkimg
FROM vbrp INTO TABLE i_vbrp
for all entries in i_marc
WHERE matnr = i_marc-matnr.
IF NOT i_vbrp[] IS INITIAL.
SELECT
vbeln
posnr
FROM vbpa INTO TABLE i_vbpa
for all entries in i_vbrp
WHERE vbeln = i_vbrp-vbeln.
IF NOT i_vbpa[] IS INITIAL.
SELECT
vbeln
netpr FROM vbap INTO TABLE i_vbap
for all entries in i_vbpa
WHERE vbeln = i_vbpa-vbeln.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.