Application Development and Automation 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: 
Read only

alv report

Former Member
0 Likes
918

hi gurus,

i am create a report using alv by bseg and bkpf but the programm gives dump on used this query

SELECT bukrs

belnr

gjahr

buzei

augdt

shkzg

dmbtr

kostl

hkont

matnr

werks

erfmg

INTO TABLE lt_output

FROM bseg

WHERE bukrs IN s_bukrs.

IF sy-subrc = 0.

SORT lt_output BY belnr.

DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.

ENDIF.

IF NOT lt_output[] IS INITIAL.

SELECT bukrs

belnr

gjahr

blart

bldat

budat

monat

cpudt

usnam

tcode

bktxt

waers

awtyp

awkey

INTO TABLE lt_bkpf FROM bkpf

FOR ALL ENTRIES IN lt_output

WHERE bukrs = lt_output-bukrs AND

belnr = lt_output-belnr AND

gjahr = lt_output-gjahr AND

blart IN s_blart AND

budat IN s_budat ."AND

  • blart = 'SA' OR

  • blart = 'SB' OR

  • blart = 'AB' OR

  • blart = 'ZC'.

it gives dump me after using the blart = 'SB' OR

blart = 'AB' OR

blart = 'ZC .

IF I USE blart = 'SA'.

it is work fine but not work if i use both 'SA" or 'SB'.

plz help me its urgent

thanks

hi gurus,

i am create a report using alv by bseg and bkpf but the programm gives dump on used this query

SELECT bukrs

belnr

gjahr

buzei

augdt

shkzg

dmbtr

kostl

hkont

matnr

werks

erfmg

INTO TABLE lt_output

FROM bseg

WHERE bukrs IN s_bukrs.

IF sy-subrc = 0.

SORT lt_output BY belnr.

DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.

ENDIF.

IF NOT lt_output[] IS INITIAL.

SELECT bukrs

belnr

gjahr

blart

bldat

budat

monat

cpudt

usnam

tcode

bktxt

waers

awtyp

awkey

INTO TABLE lt_bkpf FROM bkpf

FOR ALL ENTRIES IN lt_output

WHERE bukrs = lt_output-bukrs AND

belnr = lt_output-belnr AND

gjahr = lt_output-gjahr AND

blart IN s_blart AND

budat IN s_budat ."AND

  • blart = 'SA' OR

  • blart = 'SB' OR

  • blart = 'AB' OR

  • blart = 'ZC'.

it gives dump me after using the blart = 'SB' OR

blart = 'AB' OR

blart = 'ZC .

IF I USE blart = 'SA'.

it is work fine but not work if i use both 'SA" or 'SB'.

plz help me its urgent

thanks

7 REPLIES 7
Read only

pavel_parshenkov2
Participant
0 Likes
900

Hi,

what the text of the dump?

try to use write you condition like this:

blart IN s_blart AND

blart IN ('SA', 'SB', 'AB', 'ZC') AND

budat IN s_budat

Read only

Former Member
0 Likes
900

Can you provide the Dump Description/Error ID ? Also Is SO_BLART a Range or Select Options ? If Range Can you copy paste the code for filling that up ?

Edited by: Saket Sharma on May 30, 2008 10:22 AM

Read only

0 Likes
900

SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE text-011.

SELECT-OPTIONS: s_bukrs FOR bseg-bukrs,

s_blart FOR bkpf-blart,

s_budat FOR bkpf-budat.

SELECTION-SCREEN END OF BLOCK bl.

FORM get_data .

SELECT bukrs

belnr

gjahr

buzei

augdt

shkzg

dmbtr

kostl

hkont

matnr

werks

erfmg

INTO TABLE lt_output

FROM bseg

WHERE bukrs IN s_bukrs.

IF sy-subrc = 0.

SORT lt_output BY belnr.

DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.

ENDIF.

IF NOT lt_output[] IS INITIAL.

SELECT bukrs

belnr

gjahr

blart

bldat

budat

monat

cpudt

usnam

tcode

bktxt

waers

awtyp

awkey

INTO TABLE lt_bkpf FROM bkpf

FOR ALL ENTRIES IN lt_output

WHERE bukrs = lt_output-bukrs AND

belnr = lt_output-belnr AND

gjahr = lt_output-gjahr AND

blart IN s_blart AND

budat IN s_budat ."AND

  • blart = 'SA' OR

  • blart = 'SB' OR

  • blart = 'AB' OR

  • blart = 'ZC'.

ENDIF.

SORT lt_bkpf.

SORT lt_output[].

DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.

LOOP AT lt_output.

READ TABLE lt_bkpf WITH KEY bukrs = lt_output-bukrs BINARY SEARCH.

IF sy-subrc = 0.

MOVE: lt_bkpf-gjahr TO lt_output-gjahr,

lt_bkpf-belnr TO lt_output-belnr,

lt_bkpf-blart TO lt_output-blart,

lt_bkpf-bldat TO lt_output-bldat,

lt_bkpf-budat TO lt_output-budat,

lt_bkpf-monat TO lt_output-monat,

lt_bkpf-cpudt TO lt_output-cpudt,

lt_bkpf-usnam TO lt_output-usnam,

lt_bkpf-tcode TO lt_output-tcode,

lt_bkpf-bktxt TO lt_output-bktxt,

lt_bkpf-waers TO lt_output-waers,

lt_bkpf-awtyp TO lt_output-awtyp,

lt_bkpf-awkey TO lt_output-awkey.

MODIFY lt_output.

  • ELSE.

  • DELETE lt_output.

ENDIF.

ENDLOOP.

ENDFORM. "get_data

it gives me dump in the area of programm after

IF NOT lt_output[] IS INITIAL.

THANKS

Read only

0 Likes
900

Hi Jayant,

here, u can use 2 select statements.

if s_blart is initial.

select......

In this use coditions like blart = 'AB' etc with out blart in s_blart.

else.

one, with condition blart in s_blart in the select statement.

write it in a form ..endform and perform it where required.

this will definitely work.

reward if useful.

Edited by: Srikanth Kadiyala on May 30, 2008 11:27 AM

Read only

Former Member
0 Likes
900

Hi,

Change the code as like below....

SELECT bukrs

belnr

gjahr

blart

bldat

budat

monat

cpudt

usnam

tcode

bktxt

waers

awtyp

awkey

INTO TABLE lt_bkpf FROM bkpf

FOR ALL ENTRIES IN lt_output

WHERE bukrs = lt_output-bukrs AND

belnr = lt_output-belnr AND

gjahr = lt_output-gjahr AND

blart IN s_blart AND

budat IN s_budat AND

( blart = 'SA' OR

blart = 'SB' OR

blart = 'AB' OR

blart = 'ZC' ).

Rgds,

Bujjji

Read only

Former Member
0 Likes
900

Check if UR giving values in the select option for BLART i.e. s_blart..

Else populate values in select option .. no need to again write blart in

where condition.

blart = 'SA' OR

blart = 'SB' OR

blart = 'AB' OR

blart = 'ZC'.

SELECT bukrs

belnr

gjahr

blart

bldat

budat

monat

cpudt

usnam

tcode

bktxt

waers

awtyp

awkey

INTO TABLE lt_bkpf FROM bkpf

FOR ALL ENTRIES IN lt_output

WHERE bukrs = lt_output-bukrs AND

belnr = lt_output-belnr AND

gjahr = lt_output-gjahr AND

blart IN s_blart AND

budat IN s_budat ."AND

Read only

Former Member
0 Likes
900

here u r using two times..blart..in the where condition..delete the statement

blart IN s_blart in the where condition and use

blart = 'SA' OR

blart = 'SB' OR

blart = 'AB' OR

blart = 'ZC'.

regards,

venkat