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.
*