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 program

Former Member
0 Likes
812

i have written a program which gives the output for PO , PO item , Inbound delivery number, Inbound delivery Quantity & shipment number.

The delivery quantity has to be addded grid value wise which is not coming, see if you people can help me out

the program is as follows

&----


*& Report ZDAN_DEMO_ALV3_COPY

*&

&----


*&

*&

&----


REPORT ZDAN_DEMO_ALV3_COPY.

TYPE-POOLS : slis.

TABLES : ekpo.

TYPES : BEGIN OF ty_ekpo,

ebeln TYPE ekpo-ebeln, " PO

ebelp TYPE ekpo-ebelp," PO Item

END OF ty_ekpo.

TYPES : BEGIN OF ty_ekkn,

ebeln TYPE ekkn-ebeln,

ebelp TYPE ekkn-ebelp,

vbeln TYPE ekkn-vbeln,

vbelp TYPE ekkn-vbelp,

END OF ty_ekkn.

TYPES : BEGIN OF ty_lips,

vbeln TYPE lips-vbeln,

posnr TYPE lips-posnr,

vgbel TYPE lips-vgbel,

vgpos TYPE lips-vgpos,

lfimg TYPE lips-lfimg,

END OF ty_lips.

TYPES : BEGIN OF ty_vttp,

vbeln TYPE vttp-vbeln,

tknum TYPE vttp-tknum,

END OF ty_vttp.

TYPES : BEGIN OF ty_final,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

vbeln TYPE lips-vbeln,

lfimg TYPE lips-lfimg,

tknum type vttp-tknum,

end of ty_final.

DATA : totquan TYPE lips-lfimg,

del_num TYPE lips-vbeln.

DATA : it_ekpo TYPE TABLE OF ty_ekpo,

wa_ekpo LIKE LINE OF it_ekpo,

it_ekkn TYPE TABLE OF ty_ekkn,

wa_ekkn LIKE LINE OF it_ekkn,

it_lips TYPE TABLE OF ty_lips,

wa_lips LIKE LINE OF it_lips,

it_vttp TYPE TABLE OF ty_vttp,

wa_vttp LIKE LINE OF it_vttp,

it_final TYPE TABLE OF ty_final,

wa_final LIKE LINE OF it_final.

DATA : it_fclog TYPE slis_t_fieldcat_alv,

wa_fclog LIKE LINE OF it_fclog,

it_sort TYPE slis_t_sortinfo_alv,

wa_sort LIKE LINE OF it_sort,

gd_layout TYPE slis_layout_alv,

gd_print TYPE slis_print_alv,

gd_repid LIKE sy-repid,

gt_events TYPE slis_t_event.

SELECTION-SCREEN BEGIN OF BLOCK sodisp WITH FRAME TITLE text-001.

SELECT-OPTIONS: ponum FOR ekpo-ebeln.

SELECTION-SCREEN END OF BLOCK sodisp.

START-OF-SELECTION.

PERFORM data_retv.

PERFORM fclog.

PERFORM disp_rpt.

&----


*& Form data_retv

&----


  • text

----


break hopflabap1.

FORM data_retv.

  • break hopflabap1.

SELECT ebeln ebelp

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln IN ponum.

sort it_ekpo by ebeln.

SELECT ebeln ebelp vbeln vbelp

FROM ekkn

INTO TABLE it_ekkn

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp EQ it_ekpo-ebelp.

SELECT vbeln posnr vgbel vgpos lfimg

FROM lips

INTO TABLE it_lips

FOR ALL ENTRIES IN it_ekkn

WHERE vgbel EQ it_ekkn-vbeln

AND vgpos EQ it_ekkn-vbelp

AND lfimg <> 0.

SELECT vbeln tknum

FROM vttp

INTO TABLE it_vttp

FOR ALL ENTRIES IN it_lips

WHERE vbeln EQ it_lips-vbeln.

break hopflabap1.

LOOP AT it_ekpo INTO wa_ekpo."it gives all po with line item

wa_final-ebeln = wa_ekpo-ebeln."po

wa_final-ebelp = wa_ekpo-ebelp."po item

CLEAR wa_ekkn.

READ TABLE it_ekkn INTO wa_ekkn with key ebeln = wa_ekpo-ebeln.

CLEAR wa_lips.

loop at it_lips INTO wa_lips WHERE vgbel = wa_ekkn-vbeln AND vgpos = wa_ekkn-vbelp.

if wa_lips-vgbel eq del_num.

totquan = totquan + wa_lips-lfimg.

ENDIF.

CLEAR wa_vttp.

READ TABLE it_vttp INTO wa_vttp WITH KEY vbeln = wa_lips-vbeln.

wa_final-tknum = wa_vttp-tknum.

wa_final-lfimg = totquan.

APPEND wa_final TO it_final.

del_num = wa_lips-vbeln.

endloop.

ENDLOOP.

*break hopflabap1.

  • LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln IN ponum.

  • LOOP AT it_ekkn INTO wa_ekkn WHERE ebeln = wa_ekpo-ebeln.

  • LOOP AT it_lips INTO wa_lips WHERE vgbel EQ wa_ekkn-vbeln AND vgpos = wa_ekkn-vbelp.

*

  • wa_final-ebeln = wa_ekpo-ebeln.

  • wa_final-ebelp = wa_ekpo-ebelp.

  • wa_final-vbeln = wa_lips-vbeln.

  • del_num = wa_lips-vbeln.

*

  • if del_num eq wa_lips-vbeln.

  • totquan = totquan + wa_lips-lfimg.

  • ENDIF.

*

  • wa_final-lfimg = totquan.

*

*

  • CLEAR wa_vttp.

  • READ TABLE it_vttp INTO wa_vttp WITH KEY vbeln = wa_lips-vbeln.

*

  • wa_final-tknum = wa_vttp-tknum.

*

*

  • ENDLOOP.

*

  • APPEND wa_final TO it_final.

*

  • DELETE ADJACENT DUPLICATES FROM it_final.

*

  • ENDLOOP.

*

  • ENDLOOP.

ENDFORM. "data_retv

&----


*& Form disp_rpt

&----


  • text

----


FORM disp_rpt.

gd_repid = sy-repid .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

  • i_callback_user_command = 'USER_COMMAND'

  • is_print = gd_print

  • i_callback_pf_status_set = 'SET_STATUS'

  • i_callback_top_of_page = 'TOP-OF-PAGE'

  • is_layout = gd_layout

it_fieldcat = it_fclog[]

it_sort = it_sort[]

  • i_save = 'X'

  • IT_EVENTS = GT_EVENTS[]

TABLES

t_outtab = it_final[].

  • EXCEPTIONS

  • program_error = 1

  • OTHERS = 2.

  • IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

ENDFORM. " DISPLAY_ALV_REPORT

&----


*& Form fclog

&----


  • text

----


FORM fclog.

wa_fclog-fieldname = 'EBELN'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'PO'.

wa_fclog-outputlen = 15.

wa_fclog-col_pos = 2.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = ' EBELP'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'PO Item'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 3.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'VBELN'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = ' Delivery Number'.

wa_fclog-outputlen = 15.

wa_fclog-col_pos = 4.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'LFIMG'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = ' Delivery Quantity'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 7.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'TKNUM'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'Shipment Number'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 7.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

ENDFORM. "fclog

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
780

try to use do_sum = 'X' for LFIMG.

wa_fclog-fieldname = 'LFIMG'.
wa_fclog-tabname = 'IT_FINAL'.
wa_fclog-seltext_m = ' Delivery Quantity'.
wa_fclog-outputlen = 20.
wa_fclog-col_pos = 7.
wa_fclog-do_sum = 'X'. "<----add this.
APPEND wa_fclog TO it_fclog.
CLEAR wa_fclog.

6 REPLIES 6
Read only

Former Member
0 Likes
781

try to use do_sum = 'X' for LFIMG.

wa_fclog-fieldname = 'LFIMG'.
wa_fclog-tabname = 'IT_FINAL'.
wa_fclog-seltext_m = ' Delivery Quantity'.
wa_fclog-outputlen = 20.
wa_fclog-col_pos = 7.
wa_fclog-do_sum = 'X'. "<----add this.
APPEND wa_fclog TO it_fclog.
CLEAR wa_fclog.

Read only

0 Likes
780

not working.... the value is coming 0 for all... i have made some changes prog is as follows

&----


*& Report ZDAN_DEMO_ALV3_COPY

*&

&----


*&

*&

&----


REPORT ZDAN_DEMO_ALV3_COPY.

TYPE-POOLS : slis.

TABLES : ekpo.

TYPES : BEGIN OF ty_ekpo,

ebeln TYPE ekpo-ebeln, " PO

ebelp TYPE ekpo-ebelp," PO Item

END OF ty_ekpo.

TYPES : BEGIN OF ty_ekkn,

ebeln TYPE ekkn-ebeln,

ebelp TYPE ekkn-ebelp,

vbeln TYPE ekkn-vbeln,

vbelp TYPE ekkn-vbelp,

END OF ty_ekkn.

TYPES : BEGIN OF ty_lips,

vbeln TYPE lips-vbeln,

posnr TYPE lips-posnr,

vgbel TYPE lips-vgbel,

vgpos TYPE lips-vgpos,

lfimg TYPE lips-lfimg,

END OF ty_lips.

TYPES : BEGIN OF ty_vttp,

vbeln TYPE vttp-vbeln,

tknum TYPE vttp-tknum,

END OF ty_vttp.

TYPES : BEGIN OF ty_final,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

vbeln TYPE lips-vbeln,

lfimg TYPE lips-lfimg,

tknum type vttp-tknum,

end of ty_final.

DATA : totquan TYPE lips-lfimg,

del_num TYPE lips-vbeln.

DATA : it_ekpo TYPE TABLE OF ty_ekpo,

wa_ekpo LIKE LINE OF it_ekpo,

it_ekkn TYPE TABLE OF ty_ekkn,

wa_ekkn LIKE LINE OF it_ekkn,

it_lips TYPE TABLE OF ty_lips,

wa_lips LIKE LINE OF it_lips,

it_vttp TYPE TABLE OF ty_vttp,

wa_vttp LIKE LINE OF it_vttp,

it_final TYPE TABLE OF ty_final,

wa_final LIKE LINE OF it_final.

DATA : it_fclog TYPE slis_t_fieldcat_alv,

wa_fclog LIKE LINE OF it_fclog,

it_sort TYPE slis_t_sortinfo_alv,

wa_sort LIKE LINE OF it_sort,

gd_layout TYPE slis_layout_alv,

gd_print TYPE slis_print_alv,

gd_repid LIKE sy-repid,

gt_events TYPE slis_t_event.

SELECTION-SCREEN BEGIN OF BLOCK sodisp WITH FRAME TITLE text-001.

SELECT-OPTIONS: ponum FOR ekpo-ebeln.

SELECTION-SCREEN END OF BLOCK sodisp.

START-OF-SELECTION.

PERFORM data_retv.

PERFORM fclog.

PERFORM disp_rpt.

&----


*& Form data_retv

&----


  • text

----


break hopflabap1.

FORM data_retv.

  • break hopflabap1.

SELECT ebeln ebelp

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln IN ponum.

sort it_ekpo by ebeln.

SELECT ebeln ebelp vbeln vbelp

FROM ekkn

INTO TABLE it_ekkn

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp EQ it_ekpo-ebelp.

SELECT vbeln posnr vgbel vgpos lfimg

FROM lips

INTO TABLE it_lips

FOR ALL ENTRIES IN it_ekkn

WHERE vgbel EQ it_ekkn-vbeln

AND vgpos EQ it_ekkn-vbelp

AND lfimg <> 0.

SELECT vbeln tknum

FROM vttp

INTO TABLE it_vttp

FOR ALL ENTRIES IN it_lips

WHERE vbeln EQ it_lips-vbeln.

break hopflabap1.

LOOP AT it_ekpo INTO wa_ekpo."it gives all po with line item

wa_final-ebeln = wa_ekpo-ebeln."po

wa_final-ebelp = wa_ekpo-ebelp."po item

CLEAR wa_ekkn.

READ TABLE it_ekkn INTO wa_ekkn with key ebeln = wa_ekpo-ebeln.

CLEAR wa_lips.

loop at it_lips INTO wa_lips WHERE vgbel = wa_ekkn-vbeln AND vgpos = wa_ekkn-vbelp.

if wa_lips-vbeln eq del_num.

totquan = totquan + wa_lips-lfimg.

else.

wa_final-vbeln = wa_lips-vbeln.

wa_final-lfimg = totquan.

CLEAR wa_vttp.

READ TABLE it_vttp INTO wa_vttp WITH KEY vbeln = wa_lips-vbeln.

wa_final-tknum = wa_vttp-tknum.

wa_final-lfimg = totquan.

APPEND wa_final TO it_final.

ENDIF.

del_num = wa_lips-vbeln.

CLEAR totquan.

endloop.

ENDLOOP.

*break hopflabap1.

  • LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln IN ponum.

  • LOOP AT it_ekkn INTO wa_ekkn WHERE ebeln = wa_ekpo-ebeln.

  • LOOP AT it_lips INTO wa_lips WHERE vgbel EQ wa_ekkn-vbeln AND vgpos = wa_ekkn-vbelp.

*

  • wa_final-ebeln = wa_ekpo-ebeln.

  • wa_final-ebelp = wa_ekpo-ebelp.

  • wa_final-vbeln = wa_lips-vbeln.

  • del_num = wa_lips-vbeln.

*

  • if del_num eq wa_lips-vbeln.

  • totquan = totquan + wa_lips-lfimg.

  • ENDIF.

*

  • wa_final-lfimg = totquan.

*

*

  • CLEAR wa_vttp.

  • READ TABLE it_vttp INTO wa_vttp WITH KEY vbeln = wa_lips-vbeln.

*

  • wa_final-tknum = wa_vttp-tknum.

*

*

  • ENDLOOP.

*

  • APPEND wa_final TO it_final.

*

  • DELETE ADJACENT DUPLICATES FROM it_final.

*

  • ENDLOOP.

*

  • ENDLOOP.

ENDFORM. "data_retv

&----


*& Form disp_rpt

&----


  • text

----


FORM disp_rpt.

gd_repid = sy-repid .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

  • i_callback_user_command = 'USER_COMMAND'

  • is_print = gd_print

  • i_callback_pf_status_set = 'SET_STATUS'

  • i_callback_top_of_page = 'TOP-OF-PAGE'

  • is_layout = gd_layout

it_fieldcat = it_fclog[]

it_sort = it_sort[]

  • i_save = 'X'

  • IT_EVENTS = GT_EVENTS[]

TABLES

t_outtab = it_final[].

  • EXCEPTIONS

  • program_error = 1

  • OTHERS = 2.

  • IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

ENDFORM. " DISPLAY_ALV_REPORT

&----


*& Form fclog

&----


  • text

----


FORM fclog.

wa_fclog-fieldname = 'EBELN'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'PO'.

wa_fclog-outputlen = 15.

wa_fclog-col_pos = 2.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = ' EBELP'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'PO Item'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 3.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'VBELN'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = ' Delivery Number'.

wa_fclog-outputlen = 15.

wa_fclog-col_pos = 4.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'LFIMG'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = ' Delivery Quantity'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 7.

wa_fclog-do_sum = 'X'.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

wa_fclog-fieldname = 'TKNUM'.

wa_fclog-tabname = 'IT_FINAL'.

wa_fclog-seltext_m = 'Shipment Number'.

wa_fclog-outputlen = 20.

wa_fclog-col_pos = 7.

APPEND wa_fclog TO it_fclog.

CLEAR wa_fclog.

ENDFORM. "fclog

Read only

0 Likes
780

we dont need the overall total of delivery quantity however the SO which has the same line item and different delivery quantities, these different quantities should be added

Read only

0 Likes
780

then in that case you have to use the sort option. you need to build the sort table based on your requirement. and pass it to it_sort option of the alv.

PS: I see lot of confusion in your coding..?

Read only

0 Likes
780

thanks...

apart from this prog i want to ask you a question...

your skills are too good where did you learn your skills from????

can you suggest me some book that will help me build up my skills?

Read only

0 Likes
780

no books, read sap help, tutorials, blogs, articles, elearning materials available in SDN, some you can learn from experience and some you can learn from participating in SDN communities.