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

Plz Help!

Former Member
0 Likes
596

Dear All,

Below is my pasting ALV Program. I have few question based on this prog:-

1- Check whether the select stament is correct or not based on my select-options.

2-It's my ALV Grid Display, And I want to show on top of page that: "Purcahse report for the financial year" and also want to show the date form and between, where it's been selected in select-option screen.

How I will do that.

tables: marc,

mkpf,

mseg,

ekko,

ekpo,

ekbe,

rseg.

type-pools: slis.

&----


data: begin of itab occurs 0,

matnr like marc-matnr,

budat like ekbe-budat,

maktx like makt-maktx,

bedat like ekko-bedat,

ebeln like mseg-ebeln,

menge like mseg-menge,

bprme like mseg-bprme,

netwr like ekpo-netwr,

bstmg like mseg-bstmg,

dmbtr like mseg-dmbtr,

bprbm like rseg-bprbm,

refwr like ekbe-refwr,

end of itab.

data: i_fieldcat type slis_t_fieldcat_alv with header line,

wa_fieldcat type slis_fieldcat_alv.

data v_repid type sy-repid.

&----


selection-screen begin of block b1 with frame title text-001.

select-options: s_matnr for marc-matnr,

s_budat for mkpf-budat.

selection-screen end of block b1.

&----


&----


initialization.

v_repid = sy-repid.

start-of-selection.

  • SELECT werks smbln bstmg dmbtr matnr ebeln FROM mseg INTO

  • CORRESPONDING FIELDS OF TABLE itab

  • WHERE matnr IN s_matnr.

**ENDSELECT.

*

*

  • SELECT SINGLE lifnr FROM ekko INTO CORRESPONDING FIELDS OF itab

  • WHERE ebeln = mseg-ebeln.

*

  • SELECT ebeln menge FROM ekpo INTO CORRESPONDING FIELDS OF itab

  • WHERE ebeln = mseg-ebeln.

  • ENDSELECT.

*

  • SELECT ebeln belnr refwr budat FROM ekbe INTO CORRESPONDING FIELDS OF

  • itab

  • WHERE budat IN s_budat AND

  • ebeln = mseg-ebeln.

  • ENDSELECT.

*

  • SELECT SINGLE matnr FROM marc INTO itab

  • WHERE matnr = mseg-matnr.

**APPEND itab.

**END-OF-SELECTION.

*----


  • SELECT matnr ebeln menge bprme bstmg dmbtr FROM mseg INTO

  • CORRESPONDING FIELDS OF TABLE itab

  • WHERE matnr IN s_matnr.

*

*

  • SELECT matnr maktx FROM makt INTO CORRESPONDING FIELDS OF TABLE itab

  • WHERE matnr = mseg-matnr.

*

  • SELECT ebeln bedat FROM ekko INTO CORRESPONDING FIELDS OF TABLE itab

  • WHERE ebeln = mseg-ebeln.

*

  • SELECT ebeln netwr FROM ekpo INTO CORRESPONDING FIELDS OF TABLE itab

  • WHERE ebeln = mseg-ebeln.

*

  • SELECT ebeln bprbm FROM rseg INTO CORRESPONDING FIELDS OF TABLE itab

  • WHERE ebeln = mseg-ebeln.

*

  • SELECT budat ebeln refwr FROM ekbe INTO CORRESPONDING FIELDS OF TABLE

  • itab

  • WHERE budat IN s_budat AND

  • ebeln = mseg-ebeln.

*----


  • ---

select matnr ebeln menge bprme bstmg dmbtr from mseg into

corresponding fields of table itab where matnr in s_matnr.

select matnr maktx from makt appending corresponding fields of table

itab for all entries in itab where matnr = itab-matnr.

select ebeln bedat from ekko appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select ebeln netwr from ekpo appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select ebeln bprbm from rseg appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select budat ebeln refwr from ekbe appending corresponding fields of

table itab for all entries in itab

where budat in s_budat and

ebeln = itab-ebeln.

append itab.

&----


perform build_fieldcatlog.

perform display_alv_report.

&----


  • LOOP AT itab.

*

*WRITE:/ itab-menge, itab-werks, itab-smbln, itab-bstmg, itab-matnr,

*itab-ebeln, itab-lifnr, itab-menge, itab-belnr, itab-refwr, itab-budat.

*

  • ENDLOOP.

&----


*& Form build_fieldcatlog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build_fieldcatlog . "Form BUILD_FIELDCATLOG, Start

wa_fieldcat-fieldname = 'MAKTX'.

wa_fieldcat-seltext_m = 'Material Description'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BEDAT'.

wa_fieldcat-seltext_m = 'PO Date'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_m = 'Purchase Order No'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-seltext_m = 'Purchase Order QTY'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BPRME'.

wa_fieldcat-seltext_m = 'Order Price Unit'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'NETWR'.

wa_fieldcat-seltext_m = 'Po Net Value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BSTMG'.

wa_fieldcat-seltext_m = 'GR QTY'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'DMBTR'.

wa_fieldcat-seltext_m = 'GR Value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BPRBM'.

wa_fieldcat-seltext_m = 'Invoice Qty'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'REFWR'.

wa_fieldcat-seltext_m = 'Invoivce value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

endform. "build_fieldcatlog

" build_fieldcatlog "Form BUILD_FIELDCATLOG, End

&----


*& Form display_alv_report

&----


  • text

----


form display_alv_report. "Form DISPLAY_ALV_REPORT, Start

v_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = i_fieldcat[]

i_callback_top_of_page = 'TOP-OF-PAGE'

i_save = 'A'

TABLES

t_outtab = itab.

endform. "display_alv_report

----


top-of-page.

write:/ 'Purchase request Print program'.

end-of-page.

Plz help me.

Thanks.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
565

HI,

THE BEST WAY TO ANALYZE THIS PROGRAM IS TO INSERT A BREAK-POINT AND EXECUTE IT.

YOU WILL EASILY FIND OUT WHETHER THE SELECT STATEMENT IS WORKING OR NOT. AND ALSO VIEW THE VALUES OF THE PARAMETERS AT RUNTIME.

PLEASE REWARD IF USEFUL.

THANKS AND REGRDS,

SHORI...

5 REPLIES 5
Read only

Former Member
0 Likes
565

Hi,

1. You should check this with your functional. If the report output is correct then the selection should also be correct.

2. You can use below code:

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = i_fieldcat[]

i_callback_top_of_page = <b>'f_top_of_page'</b>

i_save = 'A'

TABLES

t_outtab = itab.

endform. "display_alv_report

----


FORM <b>f_top_of_page</b>.

DATA lt_comment TYPE STANDARD TABLE OF slis_listheader.

DATA lwa_comment TYPE slis_listheader.

CLEAR lwa_comment.

lwa_comment-typ = 'H'. "for header line

lwa_comment-info = 'Purchase report for the financial year'.

APPEND lwa_comment TO lt_comment.

CLEAR lwa_comment.

lwa_comment-typ = 'S'. "for select line

lwa_comment-key = 'Posting Date:'.

CONCATENATE s_budat-low 'To' s_budat-high INTO lwa_comment-info

SEPERATED BY space.

APPEND lwa_comment TO lt_comment.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = lt_comment[].

ENDFORM.

Read only

0 Likes
565

Teddy,

Top of page is still not displaying.

I have used the same code what you have given to me. I dont know why its not working. Can u check once again. DO i need to do some changes in ALV_commwentry_write.

ALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = lt_comment[].

Note:- Do i need to give something else in i"t_list_commentary = lt_comment[]."

Plz advice and do let me know.

Thanks.

Read only

0 Likes
565

hi abhay,

ru getting the output.

thanks,

maheedhar

Read only

Former Member
0 Likes
566

HI,

THE BEST WAY TO ANALYZE THIS PROGRAM IS TO INSERT A BREAK-POINT AND EXECUTE IT.

YOU WILL EASILY FIND OUT WHETHER THE SELECT STATEMENT IS WORKING OR NOT. AND ALSO VIEW THE VALUES OF THE PARAMETERS AT RUNTIME.

PLEASE REWARD IF USEFUL.

THANKS AND REGRDS,

SHORI...

Read only

Former Member
0 Likes
565

hi abhay,

i made the changes as per the requirement..

plz see below code it is displaying header what u specified and displaying BUDAT low and high option also.

tables: marc,

mkpf,

mseg,

ekko,

ekpo,

ekbe,

rseg.

type-pools: slis.

data: begin of itab occurs 0,

matnr like marc-matnr,

budat like ekbe-budat,

maktx like makt-maktx,

bedat like ekko-bedat,

ebeln like mseg-ebeln,

menge like mseg-menge,

bprme like mseg-bprme,

netwr like ekpo-netwr,

bstmg like mseg-bstmg,

dmbtr like mseg-dmbtr,

bprbm like rseg-bprbm,

refwr like ekbe-refwr,

end of itab.

data: i_fieldcat type slis_t_fieldcat_alv with header line,

wa_fieldcat type slis_fieldcat_alv.

data v_repid type sy-repid.

data: l_line TYPE slis_listheader.

data: evnt_vbak type slis_t_event with header line,

lout_vbak type slis_layout_alv,

comm_vbak type slis_t_listheader with header line.

selection-screen begin of block b1 with frame title text-001.

select-options: s_matnr for marc-matnr,

s_budat for mkpf-budat.

selection-screen end of block b1.

initialization.

v_repid = sy-repid.

start-of-selection.

select matnr ebeln menge bprme bstmg dmbtr from mseg into

corresponding fields of table itab where matnr in s_matnr.

select matnr maktx from makt appending corresponding fields of table

itab for all entries in itab where matnr = itab-matnr.

select ebeln bedat from ekko appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select ebeln netwr from ekpo appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select ebeln bprbm from rseg appending corresponding fields of table

itab for all entries in itab where ebeln = itab-ebeln.

select budat ebeln refwr from ekbe appending corresponding fields of

table itab for all entries in itab

where budat in s_budat and

ebeln = itab-ebeln.

append itab.

perform build_fieldcatlog.

perform display_alv_report.

form build_fieldcatlog . "Form BUILD_FIELDCATLOG, Start

wa_fieldcat-fieldname = 'MAKTX'.

wa_fieldcat-seltext_m = 'Material Description'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BEDAT'.

wa_fieldcat-seltext_m = 'PO Date'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_m = 'Purchase Order No'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-seltext_m = 'Purchase Order QTY'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BPRME'.

wa_fieldcat-seltext_m = 'Order Price Unit'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'NETWR'.

wa_fieldcat-seltext_m = 'Po Net Value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BSTMG'.

wa_fieldcat-seltext_m = 'GR QTY'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'DMBTR'.

wa_fieldcat-seltext_m = 'GR Value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'BPRBM'.

wa_fieldcat-seltext_m = 'Invoice Qty'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'REFWR'.

wa_fieldcat-seltext_m = 'Invoivce value'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

lout_vbak-zebra = 'X'.

evnt_vbak-form = 'TOP'.

evnt_vbak-name = 'TOP_OF_PAGE'.

append evnt_vbak.

clear evnt_vbak.

endform. "build_fieldcatlog

&----


*& Form display_alv_report

*----


form display_alv_report. "Form DISPLAY_ALV_REPORT, Start

v_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = i_fieldcat[]

i_callback_top_of_page = 'TOP-OF-PAGE'

i_save = 'A'

IT_EVENTS = evnt_vbak[]

TABLES

t_outtab = itab.

endform. "display_alv_report

form top.

data: w_date(10).

clear comm_vbak[].

comm_vbak-typ = 'H'.

comm_vbak-info = 'Purcahse report for the financial year'.

append comm_vbak.

clear comm_vbak.

comm_vbak-typ = 'S'.

concatenate 'Date From'

s_budat-low

'Till Date'

s_budat-high

into comm_vbak-info separated by space.

append comm_vbak.

clear comm_vbak.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = comm_vbak[]

  • I_LOGO = 'ENJOYSAP_LOGO2'

  • I_END_OF_LIST_GRID =

.

endform.

thanks,

maheedhar