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

intractive report

Former Member
0 Likes
930

hi experts,

i get stuck into one problem..m workin on a report in which i wud like to get sum of netprice corresponding to each ' vbeln ' in an iteractive report..but m not gettin that sum correctly..m sendin u full code..plz chk it out and do whatever changes u can or suggest me wat should i do..

TABLES : VBAK , VBAP.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN TYPE VBAP-VBELN,

ERNAM TYPE VBAP-ERNAM,

MATNR TYPE VBAP-MATNR,

NETPR TYPE VBAP-NETPR,

ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,

VBELN TYPE VBAK-VBELN,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

KUNNR TYPE VBAK-KUNNR,

END OF ITAB1.

DATA : SUM1 TYPE VBAP-NETPR VALUE '0',

A(5) TYPE C.

DATA: V TYPE VBAP-NETPR,

W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.

SORT ITAB BY VBELN.

LOOP AT ITAB.

WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65 ITAB-ARKTX.

at end of vbeln.

sum1 = sum1 + itab-netpr..

  • hide itab-netpr.

endat.

  • hide itab

  • on change of itab-vbeln.

hide sum1.

  • endon.

*

ENDLOOP.

*HIDE S_VBELN.

AT LINE-SELECTION.

GET CURSOR FIELD ITAB-VBELN VALUE W.

CONCATENATE '000000' W INTO W.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1 WHERE VBELN = W.

LOOP AT ITAB1.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

WRITE 50 'TOTAL'.

WRITE 😕 ITAB1-VKORG,30 ITAB1-KUNNR.

WRITE sum1 COLOR 5.

  • CLEAR SUM1.

clear itab1.

ENDLOOP.

regards,

raman.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
907

Put on change of and end on..

On change of itab-vbeln and try it..

copy this program and run it and see..REWRD IF USEFUL

TABLES : VBAK , VBAP.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN TYPE VBAP-VBELN,

ERNAM TYPE VBAP-ERNAM,

MATNR TYPE VBAP-MATNR,

NETPR TYPE VBAP-NETPR,

ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,

VBELN TYPE VBAK-VBELN,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

KUNNR TYPE VBAK-KUNNR,

END OF ITAB1.

DATA : SUM1 TYPE VBAP-NETPR VALUE '0',

A(5) TYPE C.

DATA: V TYPE VBAP-NETPR,

W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.

SORT ITAB BY VBELN.

LOOP AT ITAB.

WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65 ITAB-ARKTX.

on change of itab-vbeln.

*at end of vbeln.

sum1 = sum1 + itab-netpr..

  • hide itab-netpr.

*endat.

  • hide itab

  • on change of itab-vbeln.

hide sum1.

endon.

*

ENDLOOP.

*HIDE S_VBELN.

AT LINE-SELECTION.

GET CURSOR FIELD ITAB-VBELN VALUE W.

CONCATENATE '000000' W INTO W.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1 WHERE VBELN = W.

LOOP AT ITAB1.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

WRITE 50 'TOTAL'.

WRITE 😕 ITAB1-VKORG,30 ITAB1-KUNNR.

WRITE sum1 COLOR 5.

  • CLEAR SUM1.

clear itab1.

ENDLOOP.

hi experts,

i get stuck into one problem..m workin on a report in which i wud like to get sum of netprice corresponding to each ' vbeln ' in an iteractive report..but m not gettin that sum correctly..m sendin u full code..plz chk it out and do whatever changes u can or suggest me wat should i do..

TABLES : VBAK , VBAP.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN TYPE VBAP-VBELN,

ERNAM TYPE VBAP-ERNAM,

MATNR TYPE VBAP-MATNR,

NETPR TYPE VBAP-NETPR,

ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,

VBELN TYPE VBAK-VBELN,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

KUNNR TYPE VBAK-KUNNR,

END OF ITAB1.

DATA : SUM1 TYPE VBAP-NETPR VALUE '0',

A(5) TYPE C.

DATA: V TYPE VBAP-NETPR,

W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.

SORT ITAB BY VBELN.

LOOP AT ITAB.

WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65 ITAB-ARKTX.

at end of vbeln.

sum1 = sum1 + itab-netpr..

  • hide itab-netpr.

endat.

  • hide itab

  • on change of itab-vbeln.

hide sum1.

  • endon.

*

ENDLOOP.

*HIDE S_VBELN.

AT LINE-SELECTION.

GET CURSOR FIELD ITAB-VBELN VALUE W.

CONCATENATE '000000' W INTO W.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1 WHERE VBELN = W.

LOOP AT ITAB1.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

WRITE 50 'TOTAL'.

WRITE 😕 ITAB1-VKORG,30 ITAB1-KUNNR.

WRITE sum1 COLOR 5.

  • CLEAR SUM1.

clear itab1.

ENDLOOP.

regards,

raman.

6 REPLIES 6
Read only

Former Member
0 Likes
907

Hello Raman,

Why do you use a variabele sum1, to calculate the sum of all items in the Sales Order?

The header table VBAK contains the net value of all items: VBAK-NETWR.

Maybe you should use this.

Best regards,

Read only

Former Member
0 Likes
908

Put on change of and end on..

On change of itab-vbeln and try it..

copy this program and run it and see..REWRD IF USEFUL

TABLES : VBAK , VBAP.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN TYPE VBAP-VBELN,

ERNAM TYPE VBAP-ERNAM,

MATNR TYPE VBAP-MATNR,

NETPR TYPE VBAP-NETPR,

ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,

VBELN TYPE VBAK-VBELN,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

KUNNR TYPE VBAK-KUNNR,

END OF ITAB1.

DATA : SUM1 TYPE VBAP-NETPR VALUE '0',

A(5) TYPE C.

DATA: V TYPE VBAP-NETPR,

W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.

SORT ITAB BY VBELN.

LOOP AT ITAB.

WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65 ITAB-ARKTX.

on change of itab-vbeln.

*at end of vbeln.

sum1 = sum1 + itab-netpr..

  • hide itab-netpr.

*endat.

  • hide itab

  • on change of itab-vbeln.

hide sum1.

endon.

*

ENDLOOP.

*HIDE S_VBELN.

AT LINE-SELECTION.

GET CURSOR FIELD ITAB-VBELN VALUE W.

CONCATENATE '000000' W INTO W.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1 WHERE VBELN = W.

LOOP AT ITAB1.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

WRITE 50 'TOTAL'.

WRITE 😕 ITAB1-VKORG,30 ITAB1-KUNNR.

WRITE sum1 COLOR 5.

  • CLEAR SUM1.

clear itab1.

ENDLOOP.

Read only

0 Likes
907

i have tried ' on change of ' event also..it is still not working

Read only

0 Likes
907

Try this report

Reward points isf problem solved!


TABLES : VBAK , VBAP.


DATA: BEGIN OF ITAB OCCURS 0,
VBELN TYPE VBAP-VBELN,
ERNAM TYPE VBAP-ERNAM,
MATNR TYPE VBAP-MATNR,
NETPR TYPE VBAP-NETPR,
ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,
VBELN TYPE VBAK-VBELN,
ERNAM TYPE VBAK-ERNAM,
VKORG TYPE VBAK-VKORG,
KUNNR TYPE VBAK-KUNNR,
END OF ITAB1.
DATA : SUM1 TYPE VBAP-NETPR VALUE '0',
A(5) TYPE C.


DATA: V TYPE VBAP-NETPR,
W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN
IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.


SORT ITAB BY VBELN.
LOOP AT ITAB.

  WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65
  ITAB-ARKTX.

ENDLOOP.




*HIDE S_VBELN.

AT LINE-SELECTION.

  GET CURSOR FIELD ITAB-VBELN VALUE W.
  CONCATENATE '000000' W INTO W.
  SELECT * FROM VBAK
           INTO CORRESPONDING FIELDS OF TABLE ITAB1
           WHERE VBELN EQ W.



  LOOP AT ITAB1.
    CLEAR sum1.
    LOOP AT ITAB WHERE vbeln EQ ITAB1-VBELN.
      sum1 = sum1 + ITAB-netpr.
    ENDLOOP.

    WRITE :/ 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

    WRITE 50 'TOTAL'.



    WRITE :/ ITAB1-VKORG,30 ITAB1-KUNNR.

    WRITE sum1 COLOR 5.

    clear itab1.
  ENDLOOP.

Read only

Former Member
0 Likes
907

Put on change of and end on..

On change of itab-vbeln and try it..

copy this program and run it and see..REWRD IF USEFUL

TABLES : VBAK , VBAP.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN TYPE VBAP-VBELN,

ERNAM TYPE VBAP-ERNAM,

MATNR TYPE VBAP-MATNR,

NETPR TYPE VBAP-NETPR,

ARKTX TYPE VBAP-ARKTX,

END OF ITAB,

BEGIN OF ITAB1 OCCURS 0,

VBELN TYPE VBAK-VBELN,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

KUNNR TYPE VBAK-KUNNR,

END OF ITAB1.

DATA : SUM1 TYPE VBAP-NETPR VALUE '0',

A(5) TYPE C.

DATA: V TYPE VBAP-NETPR,

W TYPE VBAK-VBELN.

SELECT-OPTIONS S_VBELN FOR VBAP-VBELN.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE VBELN IN S_VBELN.

WRITE :/5 'VBELN',20'ERNAM',33'MATNR',45 'NETPR', 65'Sales Order Item'.

SORT ITAB BY VBELN.

LOOP AT ITAB.

WRITE :/5 ITAB-VBELN,20 ITAB-ERNAM,33 ITAB-MATNR,45 ITAB-NETPR, 65 ITAB-ARKTX.

on change of itab-vbeln.

*at end of vbeln.

sum1 = sum1 + itab-netpr..

  • hide itab-netpr.

*endat.

  • hide itab

  • on change of itab-vbeln.

hide sum1.

endon.

*

ENDLOOP.

*HIDE S_VBELN.

AT LINE-SELECTION.

GET CURSOR FIELD ITAB-VBELN VALUE W.

CONCATENATE '000000' W INTO W.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1 WHERE VBELN = W.

LOOP AT ITAB1.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY'.

WRITE 50 'TOTAL'.

WRITE 😕 ITAB1-VKORG,30 ITAB1-KUNNR.

WRITE sum1 COLOR 5.

  • CLEAR SUM1.

clear itab1.

ENDLOOP.

Read only

Former Member
0 Likes
907

Hi Raman,

I did changes to your code. I hope this code will help you. Reward me it is helpful.

Regards,

Sagar

TABLES : vbak , vbap.

DATA: BEGIN OF itab OCCURS 0,

vbeln TYPE vbap-vbeln,

posnr type vbap-posnr,

matnr TYPE vbap-matnr,

netwr TYPE vbap-netwr,

arktx TYPE vbap-arktx,

END OF itab,

BEGIN OF itab1 OCCURS 0,

vbeln TYPE vbak-vbeln,

ernam TYPE vbak-ernam,

vkorg TYPE vbak-vkorg,

kunnr TYPE vbak-kunnr,

netwr type vbak-netwr,

END OF itab1.

DATA : sum1 TYPE vbap-netpr VALUE '0',

a(5) TYPE c.

DATA: v_netpr TYPE vbap-netpr,

v_vbeln TYPE vbak-vbeln,

v_field(20) type c.

SELECT-OPTIONS s_vbeln FOR vbap-vbeln.

start-of-selection.

SELECT vbeln posnr MATNR NETWR arktx

FROM vbap

INTO TABLE itab

WHERE vbeln IN s_vbeln.

end-of-selection.

WRITE :/5 'VBELN', 17 'POSNR', 29 'MATNR', 48 'NETWR', 70 'ARKTX'.

SORT itab BY vbeln POSNR.

LOOP AT itab.

WRITE :/5 itab-vbeln, 17 ITAB-POSNR, 29 itab-matnr, 48 itab-netwr, 70 itab-arktx.

ENDLOOP.

AT LINE-SELECTION.

GET CURSOR FIELD v_field VALUE v_vbeln.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = v_vbeln

IMPORTING

OUTPUT = v_vbeln

.

  • CONCATENATE '000000' w INTO w.

SELECT vbeln ernam vkorg kunnr

FROM vbak

INTO TABLE itab1 WHERE vbeln = v_vbeln.

WRITE 😕 'SALES ORGANISATION ',30 'SOLD TO PARTY', 50 'TOTAL'.

LOOP AT itab1.

WRITE 😕 itab1-vkorg, 30 itab1-kunnr, 50 itab1-netwr.

ENDLOOP.