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: 

smartform related doubt

Former Member
0 Kudos

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.

3 REPLIES 3

Former Member
0 Kudos

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.

Former Member
0 Kudos

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>

0 Kudos

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.