Skip to Content
0
Former Member
Dec 12, 2006 at 08:32 AM

performance probelem any idea?????

48 Views

REPORT ztest .

include ZOPEN_RTRN_data.

include ZOPEN_RTRN_scr.

SELECT DISTINCT

kdauf

kdpos

kunnr

matnr

prctr

FROM mseg

*UP TO lv_rows ROWS

INTO CORRESPONDING FIELDS OF TABLE imseg

WHERE matnr IN matnr

AND prctr IN prctr

AND kunnr IN kunnr

AND kdauf IN kdauf

AND ( bwart = '651'

OR bwart = '652'

OR bwart = '901'

OR bwart = '902' ).

LOOP AT imseg ASSIGNING <f1>.

CLEAR z651.

CLEAR z652.

CLEAR z901.

CLEAR z902.

SELECT menge bwart

FROM mseg

INTO (mseg-menge , mseg-bwart )

  • where matnr = <f1>-matnr

  • and kunnr = <f1>-kunnr.

WHERE kdauf = <f1>-kdauf

AND kdpos = <f1>-kdpos.

IF sy-subrc = '0'.

CASE mseg-bwart.

WHEN '651'.

z651 = mseg-menge.

WHEN '652'.

z652 = mseg-menge.

WHEN '901'.

z901 = mseg-menge.

WHEN '902'.

z902 = mseg-menge.

WHEN OTHERS.

CONTINUE.

ENDCASE.

<f1>-recqty = z651 - z652.

<f1>-retqty = z901 - z902.

<f1>-diff = <f1>-recqty - <f1>-retqty.

ENDIF.

ENDSELECT.

ENDLOOP.

IF p_minus = 'X'.

LOOP AT imseg.

IF imseg-diff >= '0.00'.

DELETE imseg.

ENDIF.

ENDLOOP.

ENDIF.

IF p_plus = 'X'.

LOOP AT imseg.

IF imseg-diff <= '0.00'.

DELETE imseg.

ENDIF.

ENDLOOP.

ENDIF.

PERFORM alv_rep.

&----


*& ALV_REPORT *

*& *

&----


FORM alv_rep.

CLEAR i_fieldcat.

REFRESH i_fieldcat .

PERFORM e04_comment_build USING gt_list_top_of_page[].

PERFORM aufbauen_fieldcat USING 'KUNNR' 'MSEG' ' '

'' '' ''.

PERFORM aufbauen_fieldcat USING 'KDAUF' 'MSEG' '' ''

'' ''.

PERFORM aufbauen_fieldcat USING 'KDPOS' 'MSEG' '' ''

'' ''.

PERFORM aufbauen_fieldcat USING 'MATNR' 'MSEG' ' '

'' '' ''.

PERFORM aufbauen_fieldcat USING 'PRCTR' 'MSEG' ' '

'' '' ''.

  • PERFORM aufbauen_fieldcat USING 'BWART' 'MSEG' ' '

  • '' '' ''.

  • PERFORM aufbauen_fieldcat USING 'MENGE' 'MSEG' ' '

  • '' '' ''.

PERFORM aufbauen_fieldcat USING 'RECQTY' ' ' 'Recieved Qnt'

'' '' ''.

PERFORM aufbauen_fieldcat USING 'RETQTY' ' ' 'Return Qnt'

'' '' ''.

PERFORM aufbauen_fieldcat USING 'DIFF' ' ' 'Diffrence'

'' '' ''.

  • PERFORM aufbauen_fieldcat USING 'NAME1' 'LFA1' ' '

  • '' '' ''.

  • PERFORM aufbauen_fieldcat USING 'DMBTR' 'EKBE' ' '

*'' '' ''.

  • PERFORM aufbauen_fieldcat USING 'CALC' 'T_OBJECTS' 'PO Value'

  • '' '' ''.

  • PERFORM aufbauen_fieldcat USING 'WAERS' 'EKBE' ' '

  • '' '' ''.

*

  • PERFORM aufbauen_fieldcat USING 'WAERS' 'EKBE' ' '

  • '' '' ''.

**L_LAYOUT-info_fieldname = 'color_line'.

l_layout-colwidth_optimize = 'X'.

l_layout-info_fieldname = 'X'.

  • l_layout-cell_merge = 'X'.

l_layout-numc_sum = 'X'.

*

  • l_layout-totals_only = 'X'.

*

  • l_layout-totals_text = 'X'.

*

  • l_layout-detail_initial_lines = 'X'.

.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_pf_status_set = 'STANDARD'

i_callback_user_command = 'ALV_USER_COMMAND'

is_layout = l_layout

  • i_callback_top_of_page = 'TOP-OF-PAGE'

it_fieldcat = i_fieldcat[]

i_save = 'A'

is_variant = is_variant

it_events = gt_events[]

TABLES

t_outtab = imseg "

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM. "alv_rep

&----


*& Form AUFBAUEN_FIELDCAT

&----


FORM aufbauen_fieldcat USING p_fieldname

p_ref_tabname

p_name

p_sum

p_emp

p_out.

i_fieldcat-fieldname = p_fieldname .

i_fieldcat-ref_tabname = p_ref_tabname .

i_fieldcat-reptext_ddic = p_name .

i_fieldcat-seltext_l = p_name .

i_fieldcat-seltext_m = p_name .

i_fieldcat-seltext_s = p_name .

i_fieldcat-do_sum = p_sum .

i_fieldcat-emphasize = p_emp .

i_fieldcat-no_out = p_out .

APPEND i_fieldcat .

ENDFORM. " AUFBAUEN_FIELDCAT

----


  • FORM E04_COMMENT_BUILD *

----


FORM e04_comment_build USING e04_lt_top_of_page TYPE

slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

CLEAR e04_lt_top_of_page .

REFRESH e04_lt_top_of_page .

ls_line-typ = 'H'.

ls_line-info = 'XXXXX'.

APPEND ls_line TO e04_lt_top_of_page.

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = text-002 .

ls_line-info = sy-uname .

APPEND ls_line TO e04_lt_top_of_page.

"e04_comment_build

CLEAR e04_lt_top_of_page .

REFRESH e04_lt_top_of_page .

****end

CLEAR ls_line.

ls_line-typ = 'H'.

  • ls_line-key = ''. "not used for this type

ls_line-info = 'Vendor Report'(001).

APPEND ls_line TO e04_lt_top_of_page.

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = text-011.

  • WRITE sy-datum TO ls_line-info.

CONCATENATE sy-datum6(2) '/' sy-datum4(2) '/' sy-datum(4)

'&&' sy-uzeit(2) ':' sy-uzeit+2(2)

INTO ls_line-info.

REPLACE '&&' WITH ' ' INTO ls_line-info.

APPEND ls_line TO e04_lt_top_of_page.

ENDFORM.

*****----


FORM alv_user_command USING r_comm TYPE sy-ucomm

rs_selfield TYPE slis_selfield.

****----


IF r_comm = '&IC1' .

IF rs_selfield-fieldname EQ 'KDAUF'.

READ TABLE imseg INDEX rs_selfield-tabindex.

SET PARAMETER ID 'AUN' FIELD imseg-kdauf.

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN .

ENDIF.

ENDIF.

ENDFORM.

----


FORM standard USING rt_extab TYPE slis_t_extab .

SET PF-STATUS 'STANDARD' ."excluding rt_extab.

ENDFORM. "STANDARD

&----


FORM top_of_page.

DATA: header TYPE slis_t_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = header

i_logo = 'ENJOY'.

ENDFORM.

*