Advertisement
Guest User

Laporan Arus Kas dan Barang (SAP)

a guest
Jan 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.63 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report ZFI_VENDOR_KAS_BARANG
  3. *&---------------------------------------------------------------------*
  4. *&
  5. *&---------------------------------------------------------------------*
  6. REPORT zfi_vendor_kas_barang.
  7. TABLES : lfa1, t001.
  8.  
  9. TYPES : BEGIN OF ty_lfa1,
  10. lifnr TYPE lfa1-lifnr,
  11. name1 TYPE lfa1-name1,
  12. adrnr TYPE lfa1-adrnr,
  13. pstl2 TYPE lfa1-pstl2,
  14. ort01 TYPE lfa1-ort01,
  15. land1 TYPE lfa1-land1,
  16. telf1 TYPE lfa1-telf1,
  17. stceg TYPE lfa1-stceg,
  18. END OF ty_lfa1,
  19.  
  20. BEGIN OF ty_lfb1,
  21. lifnr TYPE lfb1-lifnr,
  22. bukrs TYPE lfb1-bukrs,
  23. pernr TYPE lfb1-pernr,
  24. akont TYPE lfb1-akont,
  25. END OF ty_lfb1,
  26.  
  27. BEGIN OF ty_lfbk,
  28. lifnr TYPE lfbk-lifnr,
  29. bankl TYPE lfbk-bankl,
  30. bankn TYPE lfbk-bankn,
  31. banks TYPE lfbk-banks,
  32. END OF ty_lfbk,
  33.  
  34. BEGIN OF ty_bnka,
  35. bankl TYPE bnka-bankl,
  36. banks TYPE bnka-banks,
  37. banka TYPE bnka-banka,
  38. END OF ty_bnka.
  39.  
  40. DATA : gi_lfa1 TYPE TABLE OF ty_lfa1,
  41. gw_lfa1 TYPE ty_lfa1,
  42. gi_lfb1 TYPE TABLE OF ty_lfb1,
  43. gw_lfb1 TYPE ty_lfb1,
  44. gi_lfbk TYPE TABLE OF ty_lfbk,
  45. gw_lfbk TYPE ty_lfbk,
  46. gi_bnka TYPE TABLE OF ty_bnka,
  47. gw_bnka TYPE ty_bnka,
  48. gi_data TYPE TABLE OF zst_fi_vendor_kb,
  49. gw_data TYPE zst_fi_vendor_kb.
  50.  
  51. *----------------------------------------------------------------------*
  52. * ALV *
  53. *----------------------------------------------------------------------*
  54. DATA : gi_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
  55. gw_fieldcat LIKE LINE OF gi_fieldcat,
  56. gw_layout TYPE slis_layout_alv,
  57. gw_print TYPE slis_print_alv,
  58. gi_events TYPE slis_t_event,
  59. gi_sort TYPE slis_sortinfo_alv OCCURS 1,
  60. gw_sort LIKE LINE OF gi_sort.
  61.  
  62. DATA : lv_pos TYPE i.
  63.  
  64. SELECTION-SCREEN BEGIN OF BLOCK ssf WITH FRAME TITLE TEXT-001.
  65. SELECTION-SCREEN BEGIN OF LINE.
  66. SELECTION-SCREEN COMMENT 1(25) t_bukrs FOR FIELD s_bukrs.
  67. SELECT-OPTIONS : s_bukrs FOR t001-bukrs OBLIGATORY.
  68. SELECTION-SCREEN END OF LINE.
  69. SELECTION-SCREEN BEGIN OF LINE.
  70. SELECTION-SCREEN COMMENT 1(25) t_lifnr FOR FIELD s_lifnr.
  71. SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr OBLIGATORY.
  72. SELECTION-SCREEN END OF LINE.
  73. SELECTION-SCREEN END OF BLOCK ssf.
  74.  
  75. INITIALIZATION.
  76. t_lifnr = 'Vendor Code'.
  77. t_bukrs = 'Company Code'.
  78.  
  79. START-OF-SELECTION.
  80. PERFORM f_display.
  81.  
  82. *&---------------------------------------------------------------------*
  83. *& Form F_COLLECT
  84. *&---------------------------------------------------------------------*
  85. * text
  86. *----------------------------------------------------------------------*
  87. * --> p1 text
  88. * <-- p2 text
  89. *----------------------------------------------------------------------*
  90. FORM f_collect .
  91. SELECT lifnr name1 adrnr pstl2 ort01 land1 telf1 stceg
  92. INTO TABLE gi_lfa1
  93. FROM lfa1
  94. WHERE lifnr IN s_lifnr.
  95.  
  96. IF gi_lfa1[] IS INITIAL.
  97. MESSAGE 'Data Empty, Please try another parameter input' TYPE 'I'.
  98. LEAVE LIST-PROCESSING.
  99. ENDIF.
  100.  
  101. SELECT lifnr bukrs pernr akont
  102. INTO TABLE gi_lfb1
  103. FROM lfb1
  104. FOR ALL ENTRIES IN gi_lfa1
  105. WHERE bukrs IN s_bukrs
  106. AND lifnr EQ gi_lfa1-lifnr.
  107.  
  108. SELECT lifnr bankl bankn banks
  109. INTO TABLE gi_lfbk
  110. FROM lfbk
  111. FOR ALL ENTRIES IN gi_lfb1
  112. WHERE lifnr EQ gi_lfb1-lifnr.
  113.  
  114. SELECT bankl banks banka
  115. INTO TABLE gi_bnka
  116. FROM bnka
  117. FOR ALL ENTRIES IN gi_lfbk
  118. WHERE bankl EQ gi_lfbk-bankl
  119. AND banks EQ gi_lfbk-banks.
  120.  
  121. SORT gi_lfa1 BY lifnr.
  122. LOOP AT gi_lfa1 INTO gw_lfa1.
  123. gw_data-kode = gw_lfa1-lifnr.
  124. gw_data-nama = gw_lfa1-name1.
  125. gw_data-alamat_kode = gw_lfa1-adrnr.
  126.  
  127. SELECT SINGLE street INTO (gw_data-alamat)
  128. FROM adrc WHERE addrnumber EQ gw_lfa1-adrnr.
  129.  
  130. gw_data-kode_pos = gw_lfa1-pstl2.
  131. gw_data-kota = gw_lfa1-ort01.
  132. * gw_data-negara = gw_lfa1-land1.
  133. SELECT SINGLE landx INTO (gw_data-negara)
  134. FROM t005t WHERE land1 EQ gw_lfa1-land1 AND spras EQ sy-langu.
  135.  
  136. gw_data-telp = gw_lfa1-telf1.
  137. gw_data-vat_number = gw_lfa1-stceg.
  138. LOOP AT gi_lfb1 INTO gw_lfb1 WHERE lifnr EQ gw_lfa1-lifnr.
  139. gw_data-rek_account = gw_lfb1-akont.
  140. LOOP AT gi_lfbk INTO gw_lfbk WHERE lifnr EQ gw_lfb1-lifnr.
  141. gw_data-bank_key = gw_lfbk-bankl.
  142. gw_data-bank_account = gw_lfbk-bankn.
  143. gw_data-bank_country = gw_lfbk-banks.
  144. READ TABLE gi_bnka INTO gw_bnka WITH KEY bankl = gw_lfbk-bankl
  145. banks = gw_lfbk-banks.
  146. IF sy-subrc = 0.
  147. gw_data-bank_name = gw_bnka-banka.
  148. ENDIF.
  149. APPEND gw_data TO gi_data.
  150. CLEAR gw_data.
  151. ENDLOOP.
  152. ENDLOOP.
  153. ENDLOOP.
  154.  
  155. IF gi_data[] IS NOT INITIAL.
  156. DELETE gi_data WHERE kode EQ space.
  157. ENDIF.
  158. ENDFORM.
  159.  
  160. *&---------------------------------------------------------------------*
  161. *& Form F_DISPLAY
  162. *&---------------------------------------------------------------------*
  163. * text
  164. *----------------------------------------------------------------------*
  165. * --> p1 text
  166. * <-- p2 text
  167. *----------------------------------------------------------------------*
  168. FORM f_display.
  169. PERFORM f_collect.
  170. PERFORM f_build_layout.
  171. PERFORM f_build_print.
  172. PERFORM f_build_event.
  173. PERFORM f_build_sort.
  174. PERFORM f_build_fieldcat.
  175.  
  176. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  177. EXPORTING
  178. i_callback_program = sy-repid
  179. is_layout = gw_layout
  180. it_fieldcat = gi_fieldcat[]
  181. is_print = gw_print
  182. it_sort = gi_sort[]
  183. i_save = 'A'
  184. i_default = 'X' " Initial variant active/inactive logic
  185. i_callback_pf_status_set = 'F_PF_STATUS'
  186. i_callback_user_command = 'F_USER_COMMAND'
  187. i_callback_top_of_page = 'F_TOP'
  188. it_events = gi_events[]
  189. TABLES
  190. t_outtab = gi_data[]
  191. EXCEPTIONS
  192. program_error = 1
  193. OTHERS = 2.
  194. * IF sy-subrc <> 0.
  195. * MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  196. * WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  197. * ENDIF.
  198. ENDFORM.
  199.  
  200. *&---------------------------------------------------------------------*
  201. *& Form F_BUILD_LAYOUT
  202. *&---------------------------------------------------------------------*
  203. * text
  204. *----------------------------------------------------------------------*
  205. * --> p1 text
  206. * <-- p2 text
  207. *----------------------------------------------------------------------*
  208. FORM f_build_layout .
  209. gw_layout-zebra = 'X'.
  210. gw_layout-info_fieldname = 'COLOR'.
  211. gw_layout-box_tabname = 'GI_DATA'.
  212. gw_layout-no_colhead = space.
  213. gw_layout-colwidth_optimize = 'X'.
  214. ENDFORM.
  215. *&---------------------------------------------------------------------*
  216. *& Form F_BUILD_PRINT
  217. *&---------------------------------------------------------------------*
  218. * text
  219. *----------------------------------------------------------------------*
  220. * --> p1 text
  221. * <-- p2 text
  222. *----------------------------------------------------------------------*
  223. FORM f_build_print .
  224. gw_print-no_print_listinfos = 'X'.
  225. gw_print-no_print_selinfos = 'X'.
  226. gw_print-no_coverpage = 'X'.
  227. gw_print-no_print_hierseq_item = 'X'.
  228. ENDFORM.
  229.  
  230. *&---------------------------------------------------------------------*
  231. *& Form F_BUILD_FIELDCAT
  232. *&---------------------------------------------------------------------*
  233. * text
  234. *----------------------------------------------------------------------*
  235. * --> p1 text
  236. * <-- p2 text
  237. *----------------------------------------------------------------------*
  238. FORM f_build_fieldcat .
  239. DEFINE m_fcat.
  240. ADD 1 TO lv_pos.
  241. gw_fieldcat-col_pos = lv_pos.
  242. gw_fieldcat-fieldname = &1.
  243. gw_fieldcat-seltext_l = &2.
  244. gw_fieldcat-seltext_m = &2.
  245. gw_fieldcat-seltext_s = &2.
  246. gw_fieldcat-outputlen = &3.
  247. gw_fieldcat-fix_column = &4.
  248. gw_fieldcat-key = &5.
  249. gw_fieldcat-just = &6.
  250. APPEND gw_fieldcat TO gi_fieldcat.
  251. CLEAR gw_fieldcat.
  252. END-OF-DEFINITION.
  253. m_fcat 'KODE' 'Kode Vendor' 15 'X' '' ''.
  254. m_fcat 'NAMA' 'Nama' 40 'X' '' ''.
  255. m_fcat 'ALAMAT' 'Alamat' 30 'X' '' ''.
  256. m_fcat 'KODE_POS' 'Kode Pos' 15 'X' '' ''.
  257. m_fcat 'KOTA' 'Kota' 25 'X' '' ''.
  258. m_fcat 'NEGARA' 'Negara' 12 'X' '' ''.
  259. m_fcat 'TELP' 'Telepon' 20 'X' '' ''.
  260. m_fcat 'VAT_NUMBER' 'Vat Number' 25 'X' '' ''.
  261. m_fcat 'REK_ACCOUNT' 'Rek Account' 15 'X' '' ''.
  262. m_fcat 'BANK_KEY' 'Bank Key' 20 'X' '' ''.
  263. m_fcat 'BANK_ACCOUNT' 'Bank Account' 24 'X' '' ''.
  264. m_fcat 'BANK_COUNTRY' 'Bank Country' 6 'X' '' ''.
  265. m_fcat 'BANK_NAME' 'Bank Name' 70 'X' '' ''.
  266. ENDFORM.
  267.  
  268. FORM f_build_event .
  269. DATA: ls_event TYPE slis_alv_event.
  270.  
  271. CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
  272. EXPORTING
  273. i_list_type = 0
  274. IMPORTING
  275. et_events = gi_events[]
  276. EXCEPTIONS
  277. list_type_wrong = 1
  278. OTHERS = 2.
  279. IF sy-subrc <> 0.
  280. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  281. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  282. ENDIF.
  283.  
  284. CLEAR ls_event.
  285. READ TABLE gi_events INTO ls_event WITH KEY name = slis_ev_top_of_page.
  286. IF sy-subrc = 0.
  287. MOVE 'F_TOP' TO ls_event-form.
  288. APPEND ls_event TO gi_events.
  289. ENDIF.
  290.  
  291. ENDFORM.
  292.  
  293. FORM f_pf_status USING fu_extab TYPE slis_t_extab.
  294. DATA : it_exclude TYPE slis_t_extab,
  295. wa_exclude TYPE slis_extab.
  296. REFRESH fu_extab.
  297. SET PF-STATUS 'YSTANDARD' EXCLUDING fu_extab.
  298. SET TITLEBAR 'TITLE' WITH 'Laporan Arus Kas dan Barang Vendor'.
  299. ENDFORM. "F_PF_STATUS
  300.  
  301. FORM f_user_command USING fu_ucomm LIKE sy-ucomm
  302. fu_selfield TYPE slis_selfield.
  303. DATA : ref_grid TYPE REF TO cl_gui_alv_grid.
  304.  
  305. CASE fu_ucomm.
  306. WHEN 'BACK'.
  307. PERFORM f_exit_program.
  308. WHEN '&EX' OR '&RW'.
  309. LEAVE TO SCREEN 0.
  310. ENDCASE.
  311.  
  312. IF ref_grid IS INITIAL.
  313. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
  314. IMPORTING
  315. e_grid = ref_grid.
  316. ENDIF.
  317.  
  318. IF NOT ref_grid IS INITIAL.
  319. CALL METHOD ref_grid->check_changed_data.
  320. ENDIF.
  321. ENDFORM. "f_user_command
  322.  
  323. FORM f_exit_program .
  324. LEAVE PROGRAM.
  325. ENDFORM. " F_EXIT_PROGRAM
  326.  
  327. *&---------------------------------------------------------------------*
  328. *& Form F_BUILD_SORT
  329. *&---------------------------------------------------------------------*
  330. * text
  331. *----------------------------------------------------------------------*
  332. * --> p1 text
  333. * <-- p2 text
  334. *----------------------------------------------------------------------*
  335. FORM f_build_sort .
  336. REFRESH gi_sort.
  337. CLEAR lv_pos.
  338. DEFINE m_sort.
  339. ADD 1 TO lv_pos.
  340. gw_sort-spos = lv_pos.
  341. gw_sort-fieldname = &1.
  342. gw_sort-up = &2.
  343. gw_sort-subtot = &3.
  344. APPEND gw_sort TO gi_sort.
  345. CLEAR gw_sort.
  346. END-OF-DEFINITION.
  347. ENDFORM.
  348.  
  349. FORM f_top.
  350. DATA: t_header TYPE slis_t_listheader,
  351. x_header TYPE slis_listheader.
  352.  
  353. x_header-typ = 'H'.
  354. x_header-info = 'PT PEMBANGUNAN PERUMAHAN (PERSERO) TBK'.
  355. APPEND x_header TO t_header.
  356. CLEAR x_header.
  357.  
  358. x_header-typ = 'H'.
  359. x_header-info = 'Laporan Arus Kas dan Barang Vendor'.
  360. APPEND x_header TO t_header.
  361. CLEAR x_header.
  362.  
  363. x_header-typ = 'S'.
  364. CONCATENATE 'Vendor Code : ' s_lifnr-low 'To' s_lifnr-high INTO x_header-info SEPARATED BY space.
  365. APPEND x_header TO t_header.
  366. CLEAR x_header.
  367.  
  368. x_header-typ = 'S'.
  369. CONCATENATE 'Company Code : ' s_bukrs-low 'To' s_bukrs-high INTO x_header-info SEPARATED BY space.
  370. APPEND x_header TO t_header.
  371. CLEAR x_header.
  372.  
  373. x_header-typ = 'A'.
  374. CONCATENATE 'Generated By : ' x_header-info sy-uname INTO x_header-info SEPARATED BY space.
  375. APPEND x_header TO t_header.
  376. CLEAR x_header.
  377.  
  378. x_header-typ = 'A'.
  379. CONCATENATE 'Generated On : ' x_header-info sy-datum+6(2) '/' sy-datum+4(2) '/' sy-datum(4) INTO x_header-info SEPARATED BY space.
  380. APPEND x_header TO t_header.
  381. CLEAR x_header.
  382.  
  383. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  384. EXPORTING
  385. it_list_commentary = t_header
  386. i_logo = 'ENJOY'
  387. * I_END_OF_LIST_GRID =
  388. * I_ALV_FORM =
  389. .
  390. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement