Anda di halaman 1dari 5

*&---------------------------------------------------------------------*

*& Report ZINVOICES_DISPLAY


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zinvoices_display.
TYPE-POOLS slis.
TABLES :rbkp.
TYPES : BEGIN OF invoices,
belnr TYPE re_belnr,
gjahr TYPE gjahr,
blart TYPE blart,
bldat TYPE bldat,
budat TYPE budat,
usnam TYPE usnam,
bukrs TYPE bukrs,
END OF invoices.
DATA : i_invoices TYPE TABLE OF invoices,
i_fieldcat TYPE TABLE OF slis_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
wa_invoices TYPE invoices,
wa_rbkp TYPE rbkp.
FIELD-SYMBOLS : <fs_invoices> TYPE invoices.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_belnr FOR rbkp-belnr.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
SELECT belnr
gjahr
blart
bldat
budat
usnam
bukrs
FROM rbkp
INTO TABLE i_invoices
WHERE belnr IN s_belnr.
IF sy-subrc IS INITIAL.
PERFORM build_fieldcat.
PERFORM display_output.
ENDIF.
*&---------------------------------------------------------------------*
*&
Form build_fieldcat
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM build_fieldcat .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BELNR'.
wa_fieldcat-datatype = 'RE_BELNR'.
wa_fieldcat-ref_tabname = 'RBKP'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-outputlen = 10.
wa_fieldcat-hotspot
= 'X'.
wa_fieldcat-seltext_l = 'Invoices'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'GJAHR'.
wa_fieldcat-datatype = 'GJAHR'.
wa_fieldcat-ref_tabname = 'RBKP'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-outputlen = 10.
wa_fieldcat-seltext_l = 'Year'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BLART'.
wa_fieldcat-datatype = 'BLART'.
wa_fieldcat-ref_tabname = 'RBKP'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-outputlen = 10.
wa_fieldcat-seltext_l = 'Doc. Type'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BLDAT'.
wa_fieldcat-datatype = 'BLDAT'.
wa_fieldcat-ref_tabname = 'RBKP'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-outputlen = 10.
wa_fieldcat-seltext_l = 'Document Date'.
* wa_fieldcat-edit
= 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'USNAM'.
wa_fieldcat-datatype = 'USNAM'.
wa_fieldcat-ref_tabname = 'RBKP'.
wa_fieldcat-col_pos = 5.
wa_fieldcat-outputlen = 15.
wa_fieldcat-seltext_l = 'User Name'.
wa_fieldcat-edit
= 'X'.
APPEND wa_fieldcat TO i_fieldcat.

ENDFORM.
" build_fieldcat
*&---------------------------------------------------------------------*

*&
Form display_output
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_output .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '
* I_BYPASSING_BUFFER
= ' '
* I_BUFFER_ACTIVE
= ' '
i_callback_program
= sy-repid
i_callback_pf_status_set
= 'SET_PF_STATUS'
i_callback_user_command
= 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE
= ' '
* I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
* I_CALLBACK_HTML_END_OF_LIST
= ' '
* I_STRUCTURE_NAME
=
* I_BACKGROUND_ID
= ' '
* I_GRID_TITLE
=
* I_GRID_SETTINGS
=
* IS_LAYOUT
=
it_fieldcat
=
i_fieldcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
* I_SAVE
= ' '
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* I_HTML_HEIGHT_TOP
= 0
* I_HTML_HEIGHT_END
= 0
* IT_ALV_GRAPHICS
=
* IT_HYPERLINK
=
* IT_ADD_FIELDCAT
=
* IT_EXCEPT_QINFO
=
* IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER
=
* ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= i_invoices
* 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_output

*&---------------------------------------------------------------------*
*&
Form user_command
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->R_UCOMM
text
*
-->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA : lv_belnr TYPE re_belnr,
lv_gjahr TYPE gjahr.
CASE sy-ucomm.
WHEN 'SAVE'.
READ TABLE i_invoices ASSIGNING <fs_invoices> INDEX rs_selfield-tabindex.
IF sy-subrc IS INITIAL.
<fs_invoices>-usnam = rs_selfield-value.
SELECT SINGLE * FROM rbkp
INTO wa_rbkp
WHERE belnr EQ <fs_invoices>-belnr
AND gjahr EQ <fs_invoices>-gjahr.
IF sy-subrc IS INITIAL.
wa_rbkp-usnam = <fs_invoices>-usnam.
UPDATE rbkp FROM wa_rbkp.
IF sy-subrc IS INITIAL.
COMMIT WORK.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
SELECT SINGLE belnr
gjahr
FROM rbkp
INTO (lv_belnr, lv_gjahr)
WHERE belnr EQ rs_selfield-value.
IF sy-subrc IS INITIAL.
CASE rs_selfield-fieldname.
WHEN 'BELNR'.
SET PARAMETER ID : 'RBN' FIELD lv_belnr.
SET PARAMETER ID : 'GJR' FIELD lv_gjahr.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDFORM.

"user_command

*&---------------------------------------------------------------------*

*&
Form set_pf_status
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->RT_EXTAB text
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD_FULLSCREEN'.
ENDFORM. "Set_pf_status

Anda mungkin juga menyukai