Hi All,
My report is talking long time to execute, can some one please help me with it.
MOVE LV_TOTAL TO IOUT-KWERT. is taking long time to move the value.
And also I want cust name to get when there is a new customer, does at new and endat work for this.
Thanks,
Veni.
REPORT ZSDR_SALES_VALUE NO STANDARD PAGE HEADING.
*
DESCRIPTION: This report gives the gross and net sales values based *
on date from the selection screen. *
TABLES: vbrk, vbrp, konv, kna1.
INCLUDE zalvi_grid_display.
DATA: g_repid LIKE sy-repid.
DATA: g_erdat(35) type c.
----
Input Tables
----
DATA: BEGIN OF ivbrk OCCURS 0,
vbeln LIKE vbrk-vbeln,
knumv LIKE vbrk-knumv,
netwr LIKE vbrk-netwr,
erdat like vbrk-erdat,
kunag LIKE vbrk-kunag,
END OF ivbrk.
DATA: BEGIN OF ikonv OCCURS 0,
knumv LIKE konv-knumv,
kwert LIKE konv-kwert,
END OF ikonv.
*DATA: BEGIN OF ikna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF ikna1.
----
Output Table
----
DATA: BEGIN OF iout OCCURS 0,
kunag LIKE vbrk-kunag,
name1 LIKE kna1-name1,
netwr LIKE vbrk-netwr,
kwert LIKE konv-kwert,
END OF iout.
----
SELECTION SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_erdat FOR vbrk-erdat OBLIGATORY.
Parameters: p_kunag like vbrk-kunag.
SELECTION-SCREEN END OF BLOCK b1.
----
START-OF-SELECTION
----
START-OF-SELECTION.
PERFORM get_data.
PERFORM process_data.
PERFORM sub_alv_routines.
PERFORM comment_build USING t_list_top_of_page[].
g_repid = sy-repid.
PERFORM alv_build_fieldcat USING 'IOUT' g_repid.
PERFORM sub_modify_field_cat.
PERFORM sub_call_alv_grid TABLES iout.
&----
*& Form getdata
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data.
SELECT vbeln knumv netwr erdat kunag
FROM vbrk
INTO TABLE ivbrk
WHERE erdat IN s_erdat
and kunag = p_kunag
and fkart = 'F2'.
IF sy-subrc = 0.
SELECT knumv kwert
FROM konv
INTO TABLE ikonv
FOR ALL ENTRIES IN ivbrk
WHERE knumv = ivbrk-knumv
AND kschl = 'PR00'.
ENDIF.
ENDFORM. " get_data
&----
*& Form process_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM process_data.
DATA: lv_name1 LIKE kna1-name1,
LV_kwert like konv-kwert,
lv_total like konv-kwert.
sort ivbrk by kunag.
sort ikonv by knumv.
LOOP AT ivbrk.
MOVE ivbrk-netwr TO iout-netwr.
MOVE ivbrk-kunag TO iout-kunag.
READ TABLE ikonv WITH KEY knumv = ivbrk-knumv.
IF sy-subrc = 0.
loop at ikonv.
LV_kwert = ikonv-kwert.
lv_total = LV_kwert + lv_total.
clear lv_kwert.
endloop.
ENDIF.
Move lv_total to iout-kwert.
at new kunag.
SELECT SINGLE name1
FROM kna1 INTO lv_name1 WHERE kunnr = ivbrk-kunag.
IF sy-subrc = 0.
MOVE lv_name1 TO iout-name1.
ENDIF.
endat.
append iout.
CLEAR iout.
CLEAR ivbrk.
clear ikonv.
CLEAR lv_name1.
clear lv_total.
ENDLOOP.
ENDFORM. " process_data