Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZFI_VENDOR_KAS_BARANG
- *&---------------------------------------------------------------------*
- *&
- *&---------------------------------------------------------------------*
- REPORT zfi_vendor_kas_barang.
- TABLES : lfa1, t001.
- TYPES : BEGIN OF ty_lfa1,
- lifnr TYPE lfa1-lifnr,
- name1 TYPE lfa1-name1,
- adrnr TYPE lfa1-adrnr,
- pstl2 TYPE lfa1-pstl2,
- ort01 TYPE lfa1-ort01,
- land1 TYPE lfa1-land1,
- telf1 TYPE lfa1-telf1,
- stceg TYPE lfa1-stceg,
- END OF ty_lfa1,
- BEGIN OF ty_lfb1,
- lifnr TYPE lfb1-lifnr,
- bukrs TYPE lfb1-bukrs,
- pernr TYPE lfb1-pernr,
- akont TYPE lfb1-akont,
- END OF ty_lfb1,
- BEGIN OF ty_lfbk,
- lifnr TYPE lfbk-lifnr,
- bankl TYPE lfbk-bankl,
- bankn TYPE lfbk-bankn,
- banks TYPE lfbk-banks,
- END OF ty_lfbk,
- BEGIN OF ty_bnka,
- bankl TYPE bnka-bankl,
- banks TYPE bnka-banks,
- banka TYPE bnka-banka,
- END OF ty_bnka.
- DATA : gi_lfa1 TYPE TABLE OF ty_lfa1,
- gw_lfa1 TYPE ty_lfa1,
- gi_lfb1 TYPE TABLE OF ty_lfb1,
- gw_lfb1 TYPE ty_lfb1,
- gi_lfbk TYPE TABLE OF ty_lfbk,
- gw_lfbk TYPE ty_lfbk,
- gi_bnka TYPE TABLE OF ty_bnka,
- gw_bnka TYPE ty_bnka,
- gi_data TYPE TABLE OF zst_fi_vendor_kb,
- gw_data TYPE zst_fi_vendor_kb.
- *----------------------------------------------------------------------*
- * ALV *
- *----------------------------------------------------------------------*
- DATA : gi_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
- gw_fieldcat LIKE LINE OF gi_fieldcat,
- gw_layout TYPE slis_layout_alv,
- gw_print TYPE slis_print_alv,
- gi_events TYPE slis_t_event,
- gi_sort TYPE slis_sortinfo_alv OCCURS 1,
- gw_sort LIKE LINE OF gi_sort.
- DATA : lv_pos TYPE i.
- SELECTION-SCREEN BEGIN OF BLOCK ssf WITH FRAME TITLE TEXT-001.
- SELECTION-SCREEN BEGIN OF LINE.
- SELECTION-SCREEN COMMENT 1(25) t_bukrs FOR FIELD s_bukrs.
- SELECT-OPTIONS : s_bukrs FOR t001-bukrs OBLIGATORY.
- SELECTION-SCREEN END OF LINE.
- SELECTION-SCREEN BEGIN OF LINE.
- SELECTION-SCREEN COMMENT 1(25) t_lifnr FOR FIELD s_lifnr.
- SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr OBLIGATORY.
- SELECTION-SCREEN END OF LINE.
- SELECTION-SCREEN END OF BLOCK ssf.
- INITIALIZATION.
- t_lifnr = 'Vendor Code'.
- t_bukrs = 'Company Code'.
- START-OF-SELECTION.
- PERFORM f_display.
- *&---------------------------------------------------------------------*
- *& Form F_COLLECT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_collect .
- SELECT lifnr name1 adrnr pstl2 ort01 land1 telf1 stceg
- INTO TABLE gi_lfa1
- FROM lfa1
- WHERE lifnr IN s_lifnr.
- IF gi_lfa1[] IS INITIAL.
- MESSAGE 'Data Empty, Please try another parameter input' TYPE 'I'.
- LEAVE LIST-PROCESSING.
- ENDIF.
- SELECT lifnr bukrs pernr akont
- INTO TABLE gi_lfb1
- FROM lfb1
- FOR ALL ENTRIES IN gi_lfa1
- WHERE bukrs IN s_bukrs
- AND lifnr EQ gi_lfa1-lifnr.
- SELECT lifnr bankl bankn banks
- INTO TABLE gi_lfbk
- FROM lfbk
- FOR ALL ENTRIES IN gi_lfb1
- WHERE lifnr EQ gi_lfb1-lifnr.
- SELECT bankl banks banka
- INTO TABLE gi_bnka
- FROM bnka
- FOR ALL ENTRIES IN gi_lfbk
- WHERE bankl EQ gi_lfbk-bankl
- AND banks EQ gi_lfbk-banks.
- SORT gi_lfa1 BY lifnr.
- LOOP AT gi_lfa1 INTO gw_lfa1.
- gw_data-kode = gw_lfa1-lifnr.
- gw_data-nama = gw_lfa1-name1.
- gw_data-alamat_kode = gw_lfa1-adrnr.
- SELECT SINGLE street INTO (gw_data-alamat)
- FROM adrc WHERE addrnumber EQ gw_lfa1-adrnr.
- gw_data-kode_pos = gw_lfa1-pstl2.
- gw_data-kota = gw_lfa1-ort01.
- * gw_data-negara = gw_lfa1-land1.
- SELECT SINGLE landx INTO (gw_data-negara)
- FROM t005t WHERE land1 EQ gw_lfa1-land1 AND spras EQ sy-langu.
- gw_data-telp = gw_lfa1-telf1.
- gw_data-vat_number = gw_lfa1-stceg.
- LOOP AT gi_lfb1 INTO gw_lfb1 WHERE lifnr EQ gw_lfa1-lifnr.
- gw_data-rek_account = gw_lfb1-akont.
- LOOP AT gi_lfbk INTO gw_lfbk WHERE lifnr EQ gw_lfb1-lifnr.
- gw_data-bank_key = gw_lfbk-bankl.
- gw_data-bank_account = gw_lfbk-bankn.
- gw_data-bank_country = gw_lfbk-banks.
- READ TABLE gi_bnka INTO gw_bnka WITH KEY bankl = gw_lfbk-bankl
- banks = gw_lfbk-banks.
- IF sy-subrc = 0.
- gw_data-bank_name = gw_bnka-banka.
- ENDIF.
- APPEND gw_data TO gi_data.
- CLEAR gw_data.
- ENDLOOP.
- ENDLOOP.
- ENDLOOP.
- IF gi_data[] IS NOT INITIAL.
- DELETE gi_data WHERE kode EQ space.
- ENDIF.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form F_DISPLAY
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_display.
- PERFORM f_collect.
- PERFORM f_build_layout.
- PERFORM f_build_print.
- PERFORM f_build_event.
- PERFORM f_build_sort.
- PERFORM f_build_fieldcat.
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
- EXPORTING
- i_callback_program = sy-repid
- is_layout = gw_layout
- it_fieldcat = gi_fieldcat[]
- is_print = gw_print
- it_sort = gi_sort[]
- i_save = 'A'
- i_default = 'X' " Initial variant active/inactive logic
- i_callback_pf_status_set = 'F_PF_STATUS'
- i_callback_user_command = 'F_USER_COMMAND'
- i_callback_top_of_page = 'F_TOP'
- it_events = gi_events[]
- TABLES
- t_outtab = gi_data[]
- 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.
- *&---------------------------------------------------------------------*
- *& Form F_BUILD_LAYOUT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_build_layout .
- gw_layout-zebra = 'X'.
- gw_layout-info_fieldname = 'COLOR'.
- gw_layout-box_tabname = 'GI_DATA'.
- gw_layout-no_colhead = space.
- gw_layout-colwidth_optimize = 'X'.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form F_BUILD_PRINT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_build_print .
- gw_print-no_print_listinfos = 'X'.
- gw_print-no_print_selinfos = 'X'.
- gw_print-no_coverpage = 'X'.
- gw_print-no_print_hierseq_item = 'X'.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form F_BUILD_FIELDCAT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_build_fieldcat .
- DEFINE m_fcat.
- ADD 1 TO lv_pos.
- gw_fieldcat-col_pos = lv_pos.
- gw_fieldcat-fieldname = &1.
- gw_fieldcat-seltext_l = &2.
- gw_fieldcat-seltext_m = &2.
- gw_fieldcat-seltext_s = &2.
- gw_fieldcat-outputlen = &3.
- gw_fieldcat-fix_column = &4.
- gw_fieldcat-key = &5.
- gw_fieldcat-just = &6.
- APPEND gw_fieldcat TO gi_fieldcat.
- CLEAR gw_fieldcat.
- END-OF-DEFINITION.
- m_fcat 'KODE' 'Kode Vendor' 15 'X' '' ''.
- m_fcat 'NAMA' 'Nama' 40 'X' '' ''.
- m_fcat 'ALAMAT' 'Alamat' 30 'X' '' ''.
- m_fcat 'KODE_POS' 'Kode Pos' 15 'X' '' ''.
- m_fcat 'KOTA' 'Kota' 25 'X' '' ''.
- m_fcat 'NEGARA' 'Negara' 12 'X' '' ''.
- m_fcat 'TELP' 'Telepon' 20 'X' '' ''.
- m_fcat 'VAT_NUMBER' 'Vat Number' 25 'X' '' ''.
- m_fcat 'REK_ACCOUNT' 'Rek Account' 15 'X' '' ''.
- m_fcat 'BANK_KEY' 'Bank Key' 20 'X' '' ''.
- m_fcat 'BANK_ACCOUNT' 'Bank Account' 24 'X' '' ''.
- m_fcat 'BANK_COUNTRY' 'Bank Country' 6 'X' '' ''.
- m_fcat 'BANK_NAME' 'Bank Name' 70 'X' '' ''.
- ENDFORM.
- FORM f_build_event .
- DATA: ls_event TYPE slis_alv_event.
- CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
- EXPORTING
- i_list_type = 0
- IMPORTING
- et_events = gi_events[]
- EXCEPTIONS
- list_type_wrong = 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.
- CLEAR ls_event.
- READ TABLE gi_events INTO ls_event WITH KEY name = slis_ev_top_of_page.
- IF sy-subrc = 0.
- MOVE 'F_TOP' TO ls_event-form.
- APPEND ls_event TO gi_events.
- ENDIF.
- ENDFORM.
- FORM f_pf_status USING fu_extab TYPE slis_t_extab.
- DATA : it_exclude TYPE slis_t_extab,
- wa_exclude TYPE slis_extab.
- REFRESH fu_extab.
- SET PF-STATUS 'YSTANDARD' EXCLUDING fu_extab.
- SET TITLEBAR 'TITLE' WITH 'Laporan Arus Kas dan Barang Vendor'.
- ENDFORM. "F_PF_STATUS
- FORM f_user_command USING fu_ucomm LIKE sy-ucomm
- fu_selfield TYPE slis_selfield.
- DATA : ref_grid TYPE REF TO cl_gui_alv_grid.
- CASE fu_ucomm.
- WHEN 'BACK'.
- PERFORM f_exit_program.
- WHEN '&EX' OR '&RW'.
- LEAVE TO SCREEN 0.
- ENDCASE.
- IF ref_grid IS INITIAL.
- CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
- IMPORTING
- e_grid = ref_grid.
- ENDIF.
- IF NOT ref_grid IS INITIAL.
- CALL METHOD ref_grid->check_changed_data.
- ENDIF.
- ENDFORM. "f_user_command
- FORM f_exit_program .
- LEAVE PROGRAM.
- ENDFORM. " F_EXIT_PROGRAM
- *&---------------------------------------------------------------------*
- *& Form F_BUILD_SORT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM f_build_sort .
- REFRESH gi_sort.
- CLEAR lv_pos.
- DEFINE m_sort.
- ADD 1 TO lv_pos.
- gw_sort-spos = lv_pos.
- gw_sort-fieldname = &1.
- gw_sort-up = &2.
- gw_sort-subtot = &3.
- APPEND gw_sort TO gi_sort.
- CLEAR gw_sort.
- END-OF-DEFINITION.
- ENDFORM.
- FORM f_top.
- DATA: t_header TYPE slis_t_listheader,
- x_header TYPE slis_listheader.
- x_header-typ = 'H'.
- x_header-info = 'PT PEMBANGUNAN PERUMAHAN (PERSERO) TBK'.
- APPEND x_header TO t_header.
- CLEAR x_header.
- x_header-typ = 'H'.
- x_header-info = 'Laporan Arus Kas dan Barang Vendor'.
- APPEND x_header TO t_header.
- CLEAR x_header.
- x_header-typ = 'S'.
- CONCATENATE 'Vendor Code : ' s_lifnr-low 'To' s_lifnr-high INTO x_header-info SEPARATED BY space.
- APPEND x_header TO t_header.
- CLEAR x_header.
- x_header-typ = 'S'.
- CONCATENATE 'Company Code : ' s_bukrs-low 'To' s_bukrs-high INTO x_header-info SEPARATED BY space.
- APPEND x_header TO t_header.
- CLEAR x_header.
- x_header-typ = 'A'.
- CONCATENATE 'Generated By : ' x_header-info sy-uname INTO x_header-info SEPARATED BY space.
- APPEND x_header TO t_header.
- CLEAR x_header.
- x_header-typ = 'A'.
- CONCATENATE 'Generated On : ' x_header-info sy-datum+6(2) '/' sy-datum+4(2) '/' sy-datum(4) INTO x_header-info SEPARATED BY space.
- APPEND x_header TO t_header.
- CLEAR x_header.
- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
- EXPORTING
- it_list_commentary = t_header
- i_logo = 'ENJOY'
- * I_END_OF_LIST_GRID =
- * I_ALV_FORM =
- .
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement