Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
486
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.48 KB | None | 0 0
  1. *&------------------------------------------------------------*
  2. *& Change History -
  3. *& Note 807160 - This note includes changes for resolution
  4. *& 1751 specifying changes in list and magnetic
  5. *& output.
  6. *&------------------------------------------------------------*
  7.  
  8. REPORT J_1AF026 NO STANDARD PAGE HEADING
  9. LINE-SIZE 150 "changes
  10. LINE-COUNT 65
  11. MESSAGE-ID 8A.
  12.  
  13. ************************************************************************
  14. * Report J_1AF026
  15. * Short description of the program:Social security withholding
  16. * Changed Function/flow of the program
  17. * Report Output Converted To ALV using Standard SAP Function
  18. * Module 'REUSE_ALV_LIST_DISPLAY'.
  19. * Used LIST_APPEND parameter of LAYOUT structure and handled *
  20. * END_OF_LIST event to display multiple lists.
  21. *---------------------------------------------------------------------*
  22.  
  23.  
  24.  
  25. TYPE-POOLS: slis. "ALV Addition
  26.  
  27. *----------------------------------------------------------------------
  28. * Tables
  29. *----------------------------------------------------------------------
  30. TABLES:
  31. ADDR1_SEL, " address selection parameter
  32. BHDGD, " output header
  33. BKPF, " document header
  34. BSEC, " one-time data
  35. BSEG, " document lines
  36. LFA1, " vendor master
  37. WITH_ITEM, " withholding segment
  38. T059O, " off. withhld. code
  39. T059Z, " withholding codes
  40. SADR, " company address
  41. T001, " company code
  42. T001Z, " company code /add. data
  43. J_1AFRID. " foreign person id
  44. *----------------------------------------------------------------------
  45. * Selection screen
  46. *----------------------------------------------------------------------
  47. SELECTION-SCREEN SKIP.
  48. SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-S01.
  49. SELECT-OPTIONS: S_WITHT FOR WITH_ITEM-WITHT.
  50. SELECTION-SCREEN ULINE.
  51. PARAMETERS: S_NEWDAT LIKE J_1AFPDO-NEWDAT,
  52. S_FILE LIKE RFPDO1-ALLGUNIX.
  53. SELECTION-SCREEN END OF BLOCK 1.
  54. *----------------------------------------------------------------------
  55. * Fields & int. tables
  56. *----------------------------------------------------------------------
  57. DATA:
  58. HEADER,
  59. XLINES TYPE P,
  60. XDMBTR LIKE BSEG-DMBTR,
  61. XTEXT(80),
  62. PDATE(10),
  63. CHAR21(21),
  64. XSTCD1 LIKE LFA1-STCD1. " Tax Number
  65.  
  66. * withholding codes
  67. DATA: BEGIN OF XT059Z OCCURS 10.
  68. INCLUDE STRUCTURE T059Z.
  69. DATA: END OF XT059Z.
  70.  
  71.  
  72. * vendor master data
  73. DATA: BEGIN OF XLFA1 OCCURS 40.
  74. INCLUDE STRUCTURE LFA1.
  75. DATA END OF XLFA1.
  76.  
  77. DATA:
  78. * data for printing
  79. BEGIN OF DETAIL OCCURS 100,
  80. BUDAT LIKE BKPF-BUDAT,
  81. * QSCOD(3),
  82. BLDAT LIKE BKPF-BLDAT, "2148881
  83. QSCOD(3),
  84. LIFNR LIKE LFA1-LIFNR,
  85. NAME1 LIKE LFA1-NAME1,
  86. STCDT LIKE LFA1-STCDT,
  87. STCD1 LIKE LFA1-STCD1,
  88. * WTH_AMNT LIKE BSEG-DMBTR,
  89. * WTH_AMNT_N LIKE BSEG-DMBTR,
  90. * WTH_AMNT_E LIKE BSEG-DMBTR,
  91. WTH_BASE LIKE BSEG-DMBTR,
  92. WTH_AMNT LIKE BSEG-DMBTR,
  93. * WTH_AMNT_B LIKE BSEG-DMBTR, "2148881
  94. * WTH_AMNT_T LIKE BSEG-DMBTR, "2148881
  95. GJAHR LIKE BKPF-GJAHR,
  96. BELNR LIKE BSEG-BELNR,
  97. CTNUM LIKE WITH_ITEM-CTNUMBER, "Note 807160
  98. CANCEL, "Note 1014319
  99. END OF DETAIL,
  100.  
  101. * data collected for dataset
  102. BEGIN OF DETAIL2 OCCURS 100,
  103. * STCD1(11),
  104. * BUDAT LIKE BKPF-BUDAT,
  105. * QSCOD(3),
  106. * WTH_AMNT_N LIKE BSEG-DMBTR,
  107. * WTH_AMNT_E LIKE BSEG-DMBTR,
  108. FORMCD(4) TYPE C, "2148881
  109. VERSN(4) TYPE N, "2148881
  110. FILL1(10) TYPE C, "2148881
  111. TAXPAYR_ID(11) TYPE C, "2148881
  112. NTAXCD(3) TYPE N, "2148881
  113. QSCOD(3), "2148881
  114. STCD1(11),
  115. BUDAT LIKE BKPF-BUDAT,
  116. DOCTYP(2) TYPE C, "2148881
  117. BLDAT LIKE BKPF-BLDAT, "2148881
  118. BELNR(16) TYPE C, "2148881
  119. * WTH_AMNT_B LIKE BSEG-DMBTR, "2148881
  120. * WTH_AMNT_T LIKE BSEG-DMBTR, "2148881
  121. WTH_BASE LIKE BSEG-DMBTR, "N2171941
  122. WTH_AMNT LIKE BSEG-DMBTR, "N2171941
  123. CTNUM LIKE WITH_ITEM-CTNUMBER, "Note 807160
  124. CANCEL, "Note 1014319
  125. END OF DETAIL2,
  126.  
  127. * data for dataset
  128. BEGIN OF DETAIL_DS,
  129. ** stcd1(13), " Note 211392 "Note 807160
  130. * stcd1(11), " Note 807160
  131. * budat(10), " Note 211392
  132. * qscod(3),
  133. * wth_amnt_n(11) type c, " Note 211392
  134. * wth_amnt_e(11) type c, " Note 211392
  135. * zero4(4) type c value '0000',
  136. * CTNUM LIKE WITH_ITEM-CTNUMBER, "Note 807160
  137. FORMCD(4) TYPE C, "2148881
  138. VERSN(4) TYPE N, "2148881
  139. FILL1(10) TYPE C, "2148881
  140. TAXPAYR_ID(11) TYPE C, "2148881
  141. NTAXCD(3) TYPE N, "2148881
  142. qscod(3),
  143. stcd1(11), " Note 807160
  144. budat(10), " Note 211392
  145. DOCTYP(2) TYPE N, "2148881
  146. BLDAT(10) TYPE C, "2148881
  147. BELNR(16) TYPE C, "2148881
  148. WTH_AMNT_B(14) TYPE C, "2148881
  149. WTH_AMNT_T(14) TYPE C, "2148881
  150. FILL2(25) TYPE C, "2148881
  151. FILL3(10) TYPE C, "2148881
  152. FILL4(14) TYPE C, "2148881
  153. FILL5(30) TYPE C, "2148881
  154. END OF DETAIL_DS,
  155.  
  156. * totals per code
  157. BEGIN OF TOTAL_CODE OCCURS 10,
  158. QSCOD(3),
  159. * WTH_AMNT LIKE BSEG-DMBTR,
  160. WTH_BASE LIKE BSEG-DMBTR,
  161. WTH_AMNT LIKE BSEG-DMBTR,
  162. END OF TOTAL_CODE,
  163.  
  164. * company code data
  165. BEGIN OF XT001,
  166. STCDT LIKE LFA1-STCDT,
  167. STCD1 LIKE LFA1-STCD1,
  168. END OF XT001.
  169.  
  170. * foreign persons id.
  171. DATA: BEGIN OF XFRID OCCURS 10.
  172. INCLUDE STRUCTURE J_1AFRID.
  173. DATA: END OF XFRID.
  174. DATA: FLAG_CANCEL TYPE C. "Note 1014319
  175. DATA: LT_BKPF TYPE TABLE OF bkpf.
  176. DATA: hlp_msg(150) TYPE C. "2148881
  177.  
  178. * ALV Changes starts
  179.  
  180. *Header Data
  181. DATA:
  182. gr_header TYPE REF TO cl_salv_form_layout_grid,
  183. gr_header1 TYPE REF TO cl_salv_form_layout_grid,
  184. gr_label TYPE REF TO cl_salv_form_label,
  185. gr_text TYPE REF TO cl_salv_form_text.
  186.  
  187. *Internal tables
  188.  
  189. *Output Lists
  190. DATA: gt_detail TYPE TABLE OF gss_j_1af026_alv_list1,
  191. gt_total_code TYPE TABLE OF gss_j_1af026_alv_list2,
  192. *Internal table for ALV events
  193. gt_events TYPE slis_t_event.
  194.  
  195. *report name
  196. DATA gv_repid LIKE sy-repid.
  197.  
  198. *Constants
  199. CONSTANTS gc_itab_name TYPE dd02l-tabname VALUE 'GT_DETAIL'.
  200. CONSTANTS gc_layout TYPE c VALUE 'X'.
  201. CONSTANTS gc_ddic_txt TYPE c VALUE 'L'.
  202. CONSTANTS gc_pf_status_formname TYPE slis_formname VALUE
  203. 'PF_STATUS_ALV'.
  204. CONSTANTS gc_pf_status_name TYPE gui_status VALUE 'STANDARD_ALV'.
  205.  
  206. CONSTANTS:
  207. gc_structure_name1 TYPE dd02l-tabname VALUE 'GSS_J_1AF026_ALV_LIST1',
  208. gc_structure_name2 TYPE dd02l-tabname VALUE 'GSS_J_1AF026_ALV_LIST2',
  209. gc_internal_tabname TYPE dd02l-tabname VALUE 'GT_DETAIL'.
  210.  
  211. CONSTANTS gc_filename TYPE fileintern VALUE 'FI_J1AF026_FILE'.
  212. *---------------------------------------------------------------------*
  213. INITIALIZATION.
  214. gv_repid = sy-repid.
  215. *Build Events, and subroutines for the events
  216. PERFORM eventtab_build CHANGING gt_events.
  217.  
  218. * ALV Changes ends
  219.  
  220. *----------------------------------------------------------------------*
  221. * Checking the parameters
  222. *----------------------------------------------------------------------*
  223. AT SELECTION-SCREEN.
  224. PERFORM CHECK_SELECTION_SCREEN.
  225. *----------------------------------------------------------------------*
  226. * START-OF-SELECTION
  227. *----------------------------------------------------------------------*
  228. START-OF-SELECTION.
  229. * Output header
  230. IF NOT s_newdat IS INITIAL.
  231. CALL FUNCTION 'FILE_VALIDATE_NAME'
  232. EXPORTING
  233. logical_filename = gc_filename
  234. changing
  235. physical_filename = s_file
  236. EXCEPTIONS
  237. LOGICAL_FILENAME_NOT_FOUND = 1
  238. VALIDATION_FAILED = 2
  239. OTHERS = 3.
  240. IF sy-subrc <> 0.
  241. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  242. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  243. ENDIF.
  244. * OPEN DATASET s_file FOR OUTPUT IN TEXT MODE
  245. * ENCODING NON-UNICODE IGNORING CONVERSION ERRORS.
  246. OPEN DATASET S_FILE FOR OUTPUT IN BINARY MODE.
  247. ENDIF.
  248. CLEAR bhdgd.
  249. BHDGD-INIFL = 0.
  250. BHDGD-LINES = 117.
  251. BHDGD-UNAME = SY-UNAME.
  252. BHDGD-REPID = SY-REPID.
  253. BHDGD-LINE1 = TEXT-H01.
  254. BHDGD-BUKRS = BR_BUKRS-LOW.
  255.  
  256. IF BR_BUDAT-LOW IS INITIAL AND
  257. BR_BUDAT-HIGH IS INITIAL.
  258. XTEXT = TEXT-H01.
  259. ELSE.
  260. XTEXT = TEXT-H02.
  261.  
  262. PDATE = BR_BUDAT-LOW+6(2).
  263. PDATE+2 = '/'.
  264. PDATE+3 = BR_BUDAT-LOW+4(2).
  265. PDATE+5 = '/'.
  266. PDATE+6 = BR_BUDAT-LOW(4).
  267.  
  268. REPLACE '&1' WITH PDATE INTO XTEXT.
  269.  
  270. IF NOT BR_BUDAT-HIGH IS INITIAL.
  271. PDATE = BR_BUDAT-HIGH+6(2).
  272. PDATE+2 = '/'.
  273. PDATE+3 = BR_BUDAT-HIGH+4(2).
  274. PDATE+5 = '/'.
  275. PDATE+6 = BR_BUDAT-HIGH(4).
  276. ENDIF.
  277.  
  278. REPLACE '&2' WITH PDATE INTO XTEXT.
  279. ENDIF.
  280. BHDGD-LINE2 = XTEXT.
  281. *----------------------------------------------------------------------*
  282. * SELECTION
  283. *----------------------------------------------------------------------*
  284. GET BKPF.
  285. * check: bkpf-stblg is initial,
  286.  
  287. ON CHANGE OF BKPF-BUKRS.
  288. PERFORM READ_COMPANY_DATA.
  289. ENDON.
  290. **Note 1014319 Begins
  291. IF NOT BKPF-STBLG IS INITIAL.
  292. * FLAG_CANCEL = 'X'.
  293. SELECT * FROM BKPF INTO TABLE LT_BKPF WHERE
  294. bukrs = bkpf-bukrs AND
  295. belnr = bkpf-stblg AND
  296. gjahr = bkpf-stjah AND
  297. budat IN br_budat.
  298. IF sy-subrc = 0.
  299. FLAG_CANCEL = 'X'.
  300. ENDIF.
  301. ELSE.
  302. FLAG_CANCEL = ' '.
  303. ENDIF.
  304. **Note 1014319 Ends
  305.  
  306. GET BSEG.
  307. CHECK: BSEG-KOART EQ 'K',
  308. NOT BSEG-QSSKZ IS INITIAL,
  309. BSEG-XZAHL NE SPACE,
  310. BSEG-REBZT NE 'U'.
  311.  
  312. PERFORM READ_WITHHLD_DATA.
  313. *----------------------------------------------------------------------*
  314. * END-OF-SELECTION
  315. *----------------------------------------------------------------------*
  316. END-OF-SELECTION.
  317. FORMAT INTENSIFIED OFF.
  318.  
  319. PERFORM PRINT_DATA.
  320.  
  321. * ALV Changes starts
  322. * Display ALV
  323. header = 0.
  324. PERFORM display_alv.
  325. * ALV Changes ends
  326. *----------------------------------------------------------------------*
  327. * LINE-SELECTION
  328. *----------------------------------------------------------------------*
  329. AT LINE-SELECTION.
  330. TYPE-POOLS sp01r.
  331. DATA up_list TYPE sp01r_id_list WITH HEADER LINE. "#EC *
  332.  
  333. CHECK hlp_msg NE space.
  334. SET PARAMETER ID 'GLX' FIELD S_FILE.
  335. SUBMIT rfasldpc VIA SELECTION-SCREEN AND RETURN.
  336.  
  337. CHECK DETAIL-BELNR NE SPACE.
  338.  
  339. SET PARAMETER ID 'BLN' FIELD DETAIL-BELNR.
  340. SET PARAMETER ID 'BUK' FIELD T001-BUKRS.
  341. SET PARAMETER ID 'GJR' FIELD DETAIL-GJAHR.
  342.  
  343. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
  344.  
  345. CLEAR DETAIL.
  346.  
  347.  
  348. * ALV Comment starts
  349. *----------------------------------------------------------------------*
  350. * TOP-OF-PAGE
  351. *----------------------------------------------------------------------*
  352. *TOP-OF-PAGE.
  353. *
  354. ** Output header
  355. * PERFORM BATCH-HEADING(RSBTCHH0).
  356. *
  357. * ULINE.
  358. *
  359. * IF HEADER = 0.
  360. * PERFORM PRINT_HEADER_0.
  361. * ELSE.
  362. * PERFORM PRINT_HEADER_1.
  363. * ENDIF.
  364. *
  365. * ULINE.
  366. * SKIP.
  367.  
  368. * ALV Comment ends
  369.  
  370. *&---------------------------------------------------------------------*
  371. *& Form CHECK_SELECTION_SCREEN
  372. *&---------------------------------------------------------------------*
  373. * text *
  374. *----------------------------------------------------------------------*
  375. FORM CHECK_SELECTION_SCREEN.
  376. * check that only one company code entered
  377. DESCRIBE TABLE BR_BUKRS LINES XLINES.
  378.  
  379. IF XLINES NE 1 OR
  380. BR_BUKRS-LOW IS INITIAL OR
  381. ( BR_BUKRS-LOW NE BR_BUKRS-HIGH AND
  382. NOT BR_BUKRS-HIGH IS INITIAL ).
  383.  
  384. MESSAGE E821.
  385. ENDIF.
  386.  
  387. IF NOT S_NEWDAT IS INITIAL. " create dataset ?
  388. IF S_FILE IS INITIAL. " dataset entered ?
  389. MESSAGE E811.
  390. ELSE.
  391. PERFORM file_validate.
  392. ENDIF.
  393.  
  394. * OPEN DATASET S_FILE FOR OUTPUT IN TEXT MODE
  395. * ENCODING NON-UNICODE IGNORING CONVERSION ERRORS.
  396. *
  397. * IF SY-SUBRC NE 0.
  398. * MESSAGE E812 WITH S_FILE.
  399. * ENDIF.
  400. ENDIF.
  401. ENDFORM. " CHECK_SELECTION_SCREEN
  402. *&---------------------------------------------------------------------*
  403. *& Form READ_COMPANY_DATA
  404. *&---------------------------------------------------------------------*
  405. * text *
  406. *----------------------------------------------------------------------*
  407. FORM READ_COMPANY_DATA.
  408. SELECT SINGLE * FROM T001 WHERE BUKRS = BKPF-BUKRS.
  409.  
  410. CLEAR: ADDR1_SEL, SADR.
  411. ADDR1_SEL-ADDRNUMBER = T001-ADRNR. "SADR40A
  412.  
  413. CALL FUNCTION 'ADDR_GET'
  414. EXPORTING
  415. ADDRESS_SELECTION = ADDR1_SEL
  416. ADDRESS_GROUP = 'CA01'
  417. * read_sadr_only = 'X'
  418. IMPORTING
  419. SADR = SADR.
  420.  
  421. * select single * from sadr where adrnr eq t001-adrnr
  422. * and natio eq space.
  423.  
  424. SELECT SINGLE * FROM T001Z WHERE BUKRS = T001-BUKRS
  425. AND PARTY = 'J1ATID'.
  426.  
  427. XT001-STCDT = T001Z-PAVAL.
  428.  
  429. CLEAR T001Z.
  430. SELECT SINGLE * FROM T001Z WHERE BUKRS = T001-BUKRS
  431. AND PARTY = 'J1AIDN'.
  432.  
  433. XT001-STCD1 = T001Z-PAVAL.
  434. ENDFORM. " READ_COMPANY_DATA
  435. *&---------------------------------------------------------------------*
  436. *& Form READ_MASTER_DATA
  437. *&---------------------------------------------------------------------*
  438. * text *
  439. *----------------------------------------------------------------------*
  440. FORM READ_MASTER_DATA USING F_CPD.
  441. IF F_CPD NE SPACE.
  442. SELECT SINGLE * FROM BSEC WHERE BUKRS = BSEG-BUKRS
  443. AND BELNR = BSEG-BELNR
  444. AND GJAHR = BSEG-GJAHR
  445. AND BUZEI = BSEG-BUZEI.
  446.  
  447. MOVE-CORRESPONDING BSEC TO XLFA1.
  448. XLFA1-LIFNR = BSEG-LIFNR.
  449.  
  450. IF BSEC-NAME1 IS INITIAL.
  451. XLFA1-NAME1 = BSEC-NAME2.
  452. ENDIF.
  453.  
  454. XSTCD1 = XLFA1-STCD1.
  455. IF XLFA1-LAND1 NE T001-LAND1.
  456. PERFORM READ_FOREIGN_ID
  457. USING XLFA1-LAND1 XLFA1-STKZN
  458. CHANGING XSTCD1.
  459. ENDIF.
  460. XLFA1-STCD1 = XSTCD1.
  461. CHECK 1 = 2.
  462. ENDIF.
  463.  
  464. CHECK BSEG-LIFNR NE XLFA1-LIFNR.
  465.  
  466. CLEAR: LFA1, XLFA1.
  467.  
  468. READ TABLE XLFA1 WITH KEY MANDT = SY-MANDT
  469. LIFNR = BSEG-LIFNR.
  470.  
  471. CHECK SY-SUBRC NE 0.
  472.  
  473. SELECT SINGLE * FROM LFA1 WHERE LIFNR = BSEG-LIFNR.
  474.  
  475. IF NOT LFA1-FISKN IS INITIAL.
  476. SELECT SINGLE * FROM LFA1 WHERE LIFNR = LFA1-FISKN.
  477. ENDIF.
  478.  
  479. MOVE-CORRESPONDING LFA1 TO XLFA1.
  480.  
  481. IF LFA1-NAME1 IS INITIAL.
  482. XLFA1-NAME1 = LFA1-NAME2.
  483. ENDIF.
  484.  
  485. XSTCD1 = LFA1-STCD1.
  486. IF LFA1-LAND1 NE T001-LAND1.
  487. PERFORM READ_FOREIGN_ID
  488. USING LFA1-LAND1 LFA1-STKZN
  489. CHANGING XSTCD1.
  490. ENDIF.
  491. XLFA1-STCD1 = XSTCD1.
  492.  
  493. APPEND XLFA1.
  494. ENDFORM. " READ_MASTER_DATA
  495. *&---------------------------------------------------------------------*
  496. *& Form READ_WITHHLD_DATA
  497. *&---------------------------------------------------------------------*
  498. * text *
  499. *----------------------------------------------------------------------*
  500. FORM READ_WITHHLD_DATA.
  501. * read the withholding data segment
  502. SELECT * FROM WITH_ITEM WHERE BUKRS EQ BKPF-BUKRS
  503. AND BELNR EQ BSEG-BELNR
  504. AND GJAHR EQ BSEG-GJAHR
  505. AND BUZEI EQ BSEG-BUZEI
  506. AND WITHT IN S_WITHT
  507. AND WT_WITHCD NE SPACE
  508. AND WT_STAT EQ SPACE
  509. AND WT_GRUWTPD EQ SPACE
  510. AND WT_DOWNC EQ SPACE "Note 637932
  511. AND WT_QBSHH NE 0.
  512.  
  513. IF SY-SUBRC NE 0. "Note 637932
  514. REJECT.
  515. ENDIF.
  516. ON CHANGE OF BSEG-LIFNR.
  517. PERFORM READ_MASTER_DATA USING ' '.
  518. ENDON.
  519.  
  520. ON CHANGE OF BSEG-BUKRS OR BSEG-BELNR OR BSEG-GJAHR OR BSEG-BUZEI.
  521. IF BSEG-XCPDD NE SPACE AND
  522. XLFA1-XCPDK NE SPACE.
  523. PERFORM READ_MASTER_DATA USING 'X'.
  524. ENDIF.
  525. ENDON.
  526.  
  527. PERFORM READ_WITHHLD_CODE.
  528. PERFORM FILL_DETAIL.
  529. ENDSELECT.
  530. ENDFORM. " READ_WITHHLD_DATA
  531. *&---------------------------------------------------------------------*
  532. *& Form READ_WITHHLD_CODE
  533. *&---------------------------------------------------------------------*
  534. * text *
  535. *----------------------------------------------------------------------*
  536. FORM READ_WITHHLD_CODE.
  537. CLEAR: XT059Z, T059Z.
  538.  
  539. READ TABLE XT059Z WITH KEY MANDT = SY-MANDT
  540. LAND1 = T001-LAND1
  541. WITHT = WITH_ITEM-WITHT
  542. WT_WITHCD = WITH_ITEM-WT_WITHCD.
  543.  
  544. CHECK SY-SUBRC NE 0.
  545.  
  546. SELECT SINGLE * FROM T059Z WHERE LAND1 = T001-LAND1
  547. AND WITHT = WITH_ITEM-WITHT
  548. AND WT_WITHCD = WITH_ITEM-WT_WITHCD.
  549.  
  550. MOVE-CORRESPONDING T059Z TO XT059Z.
  551.  
  552. APPEND XT059Z.
  553. ENDFORM. " READ_WITHHLD_CODE
  554. *&---------------------------------------------------------------------*
  555. *& Form FILL_DETAIL
  556. *&---------------------------------------------------------------------*
  557. * text *
  558. *----------------------------------------------------------------------*
  559. FORM FILL_DETAIL.
  560. CLEAR DETAIL.
  561.  
  562. MOVE-CORRESPONDING XLFA1 TO DETAIL.
  563.  
  564. DETAIL-BLDAT = BKPF-BLDAT. "2148881
  565. DETAIL-BUDAT = BKPF-BUDAT.
  566. DETAIL-GJAHR = BKPF-GJAHR.
  567. DETAIL-BELNR = BKPF-BELNR.
  568. DETAIL-QSCOD = XT059Z-QSCOD.
  569. * DETAIL-WTH_AMNT = WITH_ITEM-WT_QBSHH.
  570. * DETAIL-WTH_BASE = WITH_ITEM-J_1AF_WT_REPBS.
  571. DETAIL-WTH_BASE = WITH_ITEM-WT_QSSHH.
  572. DETAIL-WTH_AMNT = WITH_ITEM-WT_QBSHH.
  573. DETAIL-CTNUM = WITH_ITEM-CTNUMBER. "Note 807160
  574.  
  575. **Note 1014319 Begins
  576. IF FLAG_CANCEL EQ 'X'.
  577. MOVE '1' TO DETAIL-CANCEL.
  578. ENDIF.
  579. **Note 1014319 Ends
  580. * IF WITH_ITEM-WT_QBSHH > 0. "N2171941
  581. * DETAIL-WTH_AMNT_T = WITH_ITEM-WT_QBSHH.
  582. * ELSE.
  583. * DETAIL-WTH_AMNT_T = WITH_ITEM-WT_QBSHH * -1.
  584. * ENDIF.
  585. *
  586. ** IF WITH_ITEM-J_1AF_WT_REPBS > 0.
  587. ** DETAIL-WTH_AMNT_B = WITH_ITEM-J_1AF_WT_REPBS.
  588. ** ELSE.
  589. ** DETAIL-WTH_AMNT_B = WITH_ITEM-J_1AF_WT_REPBS * -1.
  590. ** DETAIL-WTH_BASE = DETAIL-WTH_BASE * -1.
  591. ** ENDIF.
  592. *
  593. * IF WITH_ITEM-WT_QSSHH > 0.
  594. * DETAIL-WTH_AMNT_B = WITH_ITEM-WT_QSSHH.
  595. * ELSE.
  596. * DETAIL-WTH_AMNT_B = WITH_ITEM-WT_QSSHH * -1.
  597. ** DETAIL-WTH_BASE = DETAIL-WTH_BASE * -1.
  598. * ENDIF. "N2171941
  599.  
  600. MOVE-CORRESPONDING DETAIL TO TOTAL_CODE.
  601.  
  602. COLLECT: DETAIL, TOTAL_CODE.
  603. ENDFORM. " FILL_DETAIL
  604. *&---------------------------------------------------------------------*
  605. *& Form PRINT_DATA
  606. *&---------------------------------------------------------------------*
  607. * text *
  608. *----------------------------------------------------------------------*
  609. FORM PRINT_DATA.
  610.  
  611. DATA: ls_total_code TYPE gss_j_1af026_alv_list2. "ALV Addition
  612. DATA: lt_formcode TYPE TABLE OF FIWTARC_FORMCOD. "2148881
  613. DATA: ls_formcode type FIWTARC_FORMCOD. "2148881
  614. DATA: ls_t001z TYPE t001z, "2148881
  615. help_bukrs(5) TYPE C,
  616. help_file(50) TYPE C,
  617. temp1 TYPE STRING,
  618. temp2 TYPE STRING,
  619. crlf(2) TYPE C.
  620.  
  621. crlf = cl_abap_char_utilities=>cr_lf.
  622. SELECT SINGLE * FROM t001z INTO ls_t001z "2148881
  623. WHERE bukrs EQ br_bukrs-low "2148881
  624. AND party EQ 'JAR026'. "2148881
  625. IF ls_t001z-paval IS INITIAL.
  626. SELECT SINGLE * FROM t001z INTO ls_t001z "2148881
  627. WHERE bukrs EQ br_bukrs-low "2148881
  628. AND party EQ 'J1AIDN'. "2148881
  629. ENDIF.
  630.  
  631. SELECT * from FIWTARC_FORMCOD "2148881
  632. INTO TABLE lt_formcode "2148881
  633. WHERE LAND1 = 'AR'. "2148881
  634.  
  635. SORT: DETAIL, TOTAL_CODE.
  636.  
  637. LOOP AT DETAIL.
  638. PERFORM PRINT_DETAIL.
  639.  
  640. AT LAST.
  641.  
  642. * ALV Comment starts
  643. * FORMAT INTENSIFIED ON.
  644. *
  645. * ULINE.
  646. * ALV Comment ends
  647. SUM.
  648. * ALV Comment starts
  649. * WRITE:/ TEXT-T01,
  650. * DETAIL-WTH_AMNT CURRENCY T001-WAERS
  651. * UNDER DETAIL-WTH_AMNT_N.
  652. * ALV Comment ends
  653. ENDAT.
  654. ENDLOOP.
  655.  
  656. IF S_NEWDAT NE SPACE.
  657. SORT DETAIL2.
  658. **Note 1014319 Begins
  659. * LOOP AT DETAIL2.
  660. * LOOP AT DETAIL2 WHERE CANCEL IS INITIAL.
  661. DATA: AFIP_BELNR(11) TYPE N. "2148881
  662. LOOP AT DETAIL2 WHERE CANCEL IS INITIAL.
  663. **Note 1014319 Ends
  664. * " Begin Note 211392
  665. * MOVE-CORRESPONDING DETAIL2 TO DETAIL_DS.
  666. * write detail2-stcd1 to detail_ds-stcd1 "Note 807160 changes
  667. * using edit mask '__-________-_'.
  668. concatenate detail2-budat+6(2) '/' detail2-budat+4(2) '/'
  669. detail2-budat(4) into detail_ds-budat.
  670. * move : detail2-qscod to detail_ds-qscod,
  671. * detail2-wth_amnt_n to detail_ds-wth_amnt_n,
  672. * detail2-wth_amnt_e to detail_ds-wth_amnt_e,
  673. * detail2-stcd1 to detail_ds-stcd1, "Note 807160
  674. * detail2-ctnum to detail_ds-ctnum. "Note 807160
  675. ** " End Note 211392
  676. * SHIFT DETAIL_DS-WTH_AMNT_E RIGHT.
  677. * SHIFT DETAIL_DS-WTH_AMNT_N RIGHT.
  678. *
  679. * TRANSFER DETAIL_DS TO S_FILE.
  680. "2148881
  681. concatenate detail2-bldat+6(2) '/' detail2-bldat+4(2) '/'
  682. detail2-bldat(4) into detail_ds-bldat.
  683. "2148881
  684. move : detail2-qscod to detail_ds-qscod,
  685. detail2-wth_base to detail_ds-wth_amnt_b, "N2171941
  686. detail2-wth_amnt to detail_ds-wth_amnt_t, "N2171941
  687. detail2-stcd1 to detail_ds-stcd1. "Note 807160
  688. READ TABLE lt_formcode INTO ls_formcode "2148881
  689. with key land1 = 'AR' "2148881
  690. WT_QSCOD = detail2-qscod. "2148881
  691. IF SY-SUBRC = 0. "2148881
  692. detail_ds-FORMCD = ls_formcode-FORM_CODE. "2148881
  693. ELSE. "2148881
  694. detail_ds-FORMCD = '2004'. "2148881
  695. ENDIF. "2148881
  696. detail_ds-VERSN = '0100'. "2148881
  697. detail_ds-TAXPAYR_ID = ls_t001z-paval. "2148881
  698. detail_ds-NTAXCD = '353'. "2148881
  699. detail_ds-DOCTYP = 6. "2148881
  700. AFIP_BELNR = detail2-BELNR. "2148881
  701. concatenate 'X' AFIP_BELNR ' ' into
  702. detail_ds-belnr.
  703. SHIFT DETAIL_DS-WTH_AMNT_B RIGHT. "N2171941
  704. SHIFT DETAIL_DS-WTH_AMNT_T RIGHT. "N2171941
  705.  
  706. TRANSFER DETAIL_DS TO S_FILE.
  707. TRANSFER crlf TO S_FILE.
  708. CLEAR: AFIP_BELNR. "2148881
  709. ENDLOOP.
  710.  
  711. CLOSE DATASET S_FILE.
  712. ENDIF.
  713.  
  714. HEADER = 1.
  715. NEW-PAGE.
  716.  
  717. FORMAT INTENSIFIED OFF.
  718.  
  719. DELETE TOTAL_CODE WHERE WTH_AMNT = 0.
  720.  
  721. LOOP AT TOTAL_CODE.
  722. CLEAR T059O.
  723. SELECT SINGLE * FROM T059O WHERE LAND1 = T001-LAND1
  724. AND WT_QSCOD = TOTAL_CODE-QSCOD.
  725.  
  726. ADD TOTAL_CODE-WTH_AMNT TO XDMBTR.
  727. * ALV Comment starts
  728. * WRITE:/ TOTAL_CODE-QSCOD,
  729. * 9 T059O-TEXT40,
  730. * TOTAL_CODE-WTH_AMNT CURRENCY T001-WAERS.
  731. * ALV Comment ends
  732.  
  733. * ALV Changes starts
  734. MOVE total_code-qscod TO ls_total_code-qscod.
  735. MOVE t059o-text40 TO ls_total_code-text40.
  736. * MOVE total_code-wth_amnt TO ls_total_code-wth_amnt.
  737. MOVE total_code-wth_base TO ls_total_code-wth_base.
  738. MOVE total_code-wth_amnt TO ls_total_code-wth_amnt.
  739. APPEND ls_total_code TO gt_total_code.
  740. * ALV Changes ends
  741.  
  742. AT LAST.
  743.  
  744. * FORMAT INTENSIFIED ON.
  745. * ULINE.
  746. *
  747. * WRITE:/ TEXT-T01,
  748. * XDMBTR CURRENCY T001-WAERS UNDER TOTAL_CODE-WTH_AMNT.
  749. ENDAT.
  750. ENDLOOP.
  751.  
  752. CLEAR DETAIL.
  753. *ENDFORM. " PRINT_DATA
  754. WRITE sy-uline.
  755. FORMAT COLOR 2 INTENSIFIED OFF.
  756. help_bukrs = br_bukrs-low.
  757. help_file = S_FILE.
  758. hlp_msg = Text-605. "'File & Created for Company code &'
  759.  
  760. SPLIT hlp_msg AT '&' INTO temp1 hlp_msg.
  761. CONCATENATE temp1 help_file INTO temp2
  762. SEPARATED BY SPACE.
  763. CONCATENATE temp2 hlp_msg INTO hlp_msg
  764. SEPARATED BY SPACE.
  765. REPLACE '&' WITH help_bukrs INTO hlp_msg.
  766. CONDENSE hlp_msg.
  767. SHIFT hlp_msg RIGHT.
  768. hlp_msg(1) = hlp_msg+149(1) = sy-vline.
  769. WRITE hlp_msg.
  770. WRITE sy-uline.
  771.  
  772. ENDFORM. " PRINT_DATA
  773. *---------------------------------------------------------------------*
  774. * AT LINE-SELECTION *
  775. *---------------------------------------------------------------------*
  776. * Call for report RFASLDPC To Download file to local PC *
  777. *---------------------------------------------------------------------*
  778. *&---------------------------------------------------------------------*
  779. *& Form PRINT_DETAIL
  780. *&---------------------------------------------------------------------*
  781. * text *
  782. *----------------------------------------------------------------------*
  783. FORM PRINT_DETAIL.
  784.  
  785. DATA ls_detail TYPE gss_j_1af026_alv_list1. "ALV Addition
  786.  
  787. FORMAT COLOR OFF.
  788. * ALV Comment starts
  789. * WRITE:/ DETAIL-BUDAT,
  790. * 14 DETAIL-QSCOD,
  791. * 22 DETAIL-LIFNR,
  792. * DETAIL-NAME1(25),
  793. * DETAIL-STCDT.
  794. * ALV Comment ends
  795.  
  796. * ALV Changes starts
  797. MOVE detail-budat TO ls_detail-budat.
  798. MOVE detail-qscod TO ls_detail-qscod.
  799. MOVE detail-lifnr TO ls_detail-lifnr.
  800. MOVE detail-name1 TO ls_detail-name1.
  801. MOVE detail-stcdt TO ls_detail-stcdt.
  802. MOVE detail-ctnum TO ls_detail-ctnum.
  803. * ALV Changes ends
  804.  
  805. IF DETAIL-STCDT = '80'.
  806. * WRITE: DETAIL-STCD1 USING EDIT MASK '__-________-_'. "ALV Comment
  807. write DETAIL-STCD1 USING EDIT MASK '__-________-_' to
  808. ls_detail-stcd1. "ALV Addition
  809. ELSE.
  810. * WRITE: DETAIL-STCD1. "ALV Comment
  811. MOVE detail-stcd1 TO ls_detail-stcd1. "ALV Addition
  812. ENDIF.
  813.  
  814. *** Note # 975848 Begin
  815. * IF DETAIL-WTH_AMNT_N NE 0.
  816. ** WRITE: DETAIL-WTH_AMNT_N CURRENCY T001-WAERS COLOR 3. "ALV
  817. *Comment
  818. * MOVE detail-wth_amnt_n TO ls_detail-wth_amnt. "ALV
  819. *Addition
  820. * ELSE.
  821. ** WRITE: DETAIL-WTH_AMNT_E CURRENCY T001-WAERS COLOR 6. "ALV
  822. *Comment
  823. * MOVE detail-wth_amnt_e TO ls_detail-wth_amnt. "ALV
  824. *Addition
  825. * ENDIF.
  826. * MOVE detail-wth_amnt TO ls_detail-wth_amnt.
  827. MOVE detail-wth_base TO ls_detail-wth_base.
  828.  
  829. MOVE detail-wth_amnt TO ls_detail-wth_amnt.
  830. *** Note # 975848 End
  831.  
  832. * ALV Comment starts
  833. * FORMAT COLOR OFF.
  834. *
  835. * WRITE: DETAIL-GJAHR, ' ' NO-GAP,
  836. * DETAIL-BELNR.
  837. * ALV Comment ends
  838.  
  839. * ALV Changes starts
  840. MOVE detail-gjahr TO ls_detail-gjahr.
  841. MOVE detail-belnr TO ls_detail-belnr.
  842. APPEND ls_detail TO gt_detail.
  843. * ALV Changes ends
  844.  
  845. HIDE: DETAIL-GJAHR, DETAIL-BELNR.
  846.  
  847. IF S_NEWDAT NE SPACE.
  848. CLEAR DETAIL2.
  849. MOVE-CORRESPONDING DETAIL TO DETAIL2.
  850.  
  851. COLLECT DETAIL2.
  852. ENDIF.
  853. ENDFORM. " PRINT_DETAIL
  854. *&---------------------------------------------------------------------*
  855. *& Form PRINT_HEADER_0
  856. *&---------------------------------------------------------------------*
  857. * text *
  858. *----------------------------------------------------------------------*
  859. FORM PRINT_HEADER_0.
  860. * WRITE:/ TEXT-H21, T001-BUKRS,
  861. * / TEXT-H22. "ALV Comment
  862. * ALV Changes starts
  863. CREATE OBJECT gr_header.
  864.  
  865. gr_label = gr_header->create_label(
  866. row = 1
  867. column = 1
  868. text = text-h21 ).
  869.  
  870. gr_text = gr_header->create_text(
  871. row = 1
  872. column = 2
  873. text = t001-bukrs ).
  874.  
  875. gr_label = gr_header->create_label(
  876. row = 2
  877. column = 1
  878. text = text-h22 ).
  879. * ALV Changes ends
  880.  
  881. IF XT001-STCDT = '80'.
  882. * WRITE: XT001-STCD1 USING EDIT MASK '__-________-_'. "ALV Comment
  883. gr_text = gr_header->create_text(
  884. row = 2
  885. column = 2
  886. text = xt001-stcd1 ). "ALV Addition
  887. ELSE.
  888. * WRITE: XT001-STCD1. "ALV Comment
  889. gr_text = gr_header->create_text(
  890. row = 2
  891. column = 2
  892. text = xt001-stcd1 ). "ALV Addition
  893.  
  894. ENDIF.
  895.  
  896. IF S_NEWDAT NE SPACE.
  897. * WRITE:/ TEXT-H23, S_FILE. "ALV Comment
  898. * ALV Changes starts
  899. gr_label = gr_header->create_label(
  900. row = 3
  901. column = 1
  902. text = text-h23 ).
  903.  
  904. gr_text = gr_header->create_text(
  905. row = 3
  906. column = 2
  907. text = s_file ).
  908. * ALV Changes ends
  909.  
  910. ENDIF.
  911.  
  912. *ALV Comment starts
  913. * ULINE.
  914.  
  915. * WRITE:/12 TEXT-U01,
  916. * / TEXT-U10,
  917. * 12 TEXT-U02,
  918. * 22 TEXT-U04,
  919. * 59 TEXT-U11,
  920. * 80 TEXT-U12 RIGHT-JUSTIFIED,
  921. * 96 TEXT-U16,
  922. * 102 TEXT-U13.
  923. * ALV Comment ends
  924.  
  925. CALL METHOD cl_salv_form_content=>set
  926. EXPORTING
  927. value = gr_header. "ALV Addition
  928.  
  929.  
  930. ENDFORM. " PRINT_HEADER_0
  931. *&---------------------------------------------------------------------*
  932. *& Form PRINT_HEADER_1
  933. *&---------------------------------------------------------------------*
  934. * text *
  935. *----------------------------------------------------------------------*
  936. FORM PRINT_HEADER_1.
  937. * WRITE:/ TEXT-H21, T001-BUKRS,
  938. * 43 TEXT-H11 CENTERED,
  939. * / TEXT-H22. "ALV Comment
  940.  
  941. * ALV Changes starts
  942. CREATE OBJECT gr_header1.
  943.  
  944. gr_label = gr_header1->create_label(
  945. row = 2
  946. column = 1
  947. text = text-h21 ).
  948.  
  949. gr_text = gr_header1->create_text(
  950. row = 2
  951. column = 2
  952. text = t001-bukrs ).
  953.  
  954. gr_label = gr_header1->create_label(
  955. row = 1
  956. column = 2
  957. text = text-h11 ).
  958.  
  959. gr_label = gr_header1->create_label(
  960. row = 3
  961. column = 1
  962. text = text-h22 ).
  963. * ALV Changes ends
  964.  
  965. IF XT001-STCDT = '80'.
  966. * WRITE: XT001-STCD1 USING EDIT MASK '__-________-_'. "ALV Comment
  967. gr_text = gr_header1->create_text(
  968. row = 3
  969. column = 2
  970. text = xt001-stcd1 ). "ALV Addition
  971.  
  972. ELSE.
  973. * WRITE: XT001-STCD1. "ALV Comment
  974. gr_text = gr_header1->create_text(
  975. row = 3
  976. column = 2
  977. text = xt001-stcd1 ). "ALV Addition
  978.  
  979. ENDIF.
  980.  
  981. IF S_NEWDAT NE SPACE.
  982. * WRITE:/ TEXT-H23, S_FILE. "ALV Comment
  983.  
  984. * ALV Changes starts
  985. gr_label = gr_header1->create_label(
  986. row = 3
  987. column = 1
  988. text = text-h23 ).
  989.  
  990. gr_text = gr_header1->create_text(
  991. row = 3
  992. column = 2
  993. text = s_file ).
  994. * ALV Changes ends
  995.  
  996. ENDIF.
  997.  
  998. *ALV Comment starts
  999. * ULINE.
  1000. *
  1001. * WRITE:/ TEXT-U14,
  1002. * 9 TEXT-U15,
  1003. * 50 TEXT-U12 RIGHT-JUSTIFIED.
  1004. * ALV Comment ends
  1005.  
  1006. CALL METHOD cl_salv_form_content=>set
  1007. EXPORTING
  1008. value = gr_header1. "ALV Addition
  1009.  
  1010. ENDFORM. " PRINT_HEADER_1
  1011.  
  1012. *&---------------------------------------------------------------------*
  1013. *& Form READ_FOREIGN_ID
  1014. *&---------------------------------------------------------------------*
  1015. * Retrive code for foreign persons
  1016. *----------------------------------------------------------------------*
  1017. FORM READ_FOREIGN_ID USING XLAND1
  1018. XSTKZN
  1019. CHANGING XXSTCD1 .
  1020. CLEAR: XFRID, J_1AFRID.
  1021. READ TABLE XFRID WITH KEY MANDT = SY-MANDT
  1022. LAND1 = XLAND1
  1023. STKZN = XSTKZN.
  1024. * entry exists?
  1025. IF SY-SUBRC NE 0.
  1026.  
  1027. SELECT SINGLE * FROM J_1AFRID
  1028. WHERE LAND1 = XLAND1
  1029. AND STKZN = XSTKZN.
  1030. IF SY-SUBRC EQ 0.
  1031. MOVE-CORRESPONDING J_1AFRID TO XFRID.
  1032. APPEND XFRID.
  1033. ENDIF.
  1034. ENDIF.
  1035.  
  1036. IF SY-SUBRC EQ 0.
  1037. XXSTCD1 = XFRID-J_1AFPID.
  1038. ENDIF.
  1039.  
  1040. ENDFORM. " READ_FOREIGN_ID
  1041.  
  1042. * ALV Changes starts
  1043. *&---------------------------------------------------------------------*
  1044. *& Form EVENTTAB_BUILD
  1045. *&---------------------------------------------------------------------*
  1046. * Build Events
  1047. *----------------------------------------------------------------------*
  1048. * <-->XT_EVENTS text
  1049. *----------------------------------------------------------------------*
  1050. FORM eventtab_build CHANGING xt_events TYPE slis_t_event.
  1051.  
  1052. DATA: ls_event TYPE slis_alv_event.
  1053.  
  1054. *Top of Page
  1055. MOVE slis_ev_top_of_page TO ls_event-name.
  1056. MOVE slis_ev_top_of_page TO ls_event-form.
  1057. APPEND ls_event TO xt_events.
  1058.  
  1059. *End of List
  1060. CLEAR ls_event.
  1061. MOVE slis_ev_end_of_list TO ls_event-name.
  1062. MOVE slis_ev_end_of_list TO ls_event-form.
  1063. APPEND ls_event TO xt_events.
  1064.  
  1065. *User Command
  1066. CLEAR ls_event.
  1067. MOVE slis_ev_user_command TO ls_event-name.
  1068. MOVE slis_ev_user_command TO ls_event-form.
  1069. APPEND ls_event TO xt_events.
  1070.  
  1071. ENDFORM. " EVENTTAB_BUILD
  1072.  
  1073. *&---------------------------------------------------------------------*
  1074. *& Form Display_ALV
  1075. *&---------------------------------------------------------------------*
  1076. * Display List
  1077. *----------------------------------------------------------------------*
  1078. FORM display_alv .
  1079.  
  1080. FIELD-SYMBOLS : <gfs_outtab> TYPE STANDARD TABLE.
  1081.  
  1082. DATA:
  1083. * Internal table for ALV Field Catalog
  1084. lt_fieldcat TYPE slis_t_fieldcat_alv,
  1085. * Structure for ALV Layout
  1086. ls_layout TYPE slis_layout_alv.
  1087.  
  1088. *Build Field catalog for output structure
  1089. PERFORM fieldcat_build CHANGING lt_fieldcat.
  1090.  
  1091. *Build the layout for ALV
  1092. PERFORM layout_build CHANGING ls_layout.
  1093.  
  1094. IF header = 0.
  1095. ls_layout-list_append = 'Y'.
  1096. ELSE.
  1097. ls_layout-list_append = 'X'.
  1098. ENDIF.
  1099.  
  1100. IF header = 0.
  1101. ASSIGN gt_detail TO <gfs_outtab>.
  1102. ELSE.
  1103. ASSIGN gt_total_code TO <gfs_outtab>.
  1104. ENDIF.
  1105.  
  1106. *Display ALV
  1107. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  1108. EXPORTING
  1109. i_callback_program = gv_repid
  1110. i_callback_pf_status_set = gc_pf_status_formname
  1111. is_layout = ls_layout
  1112. it_fieldcat = lt_fieldcat
  1113. it_events = gt_events
  1114. TABLES
  1115. t_outtab = <gfs_outtab>
  1116. EXCEPTIONS
  1117. program_error = 1
  1118. OTHERS = 2.
  1119. IF sy-subrc <> 0.
  1120. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  1121. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  1122. ENDIF.
  1123.  
  1124. ENDFORM. " Display_ALV
  1125. *&---------------------------------------------------------------------*
  1126. *& Form FIELDCAT_BUILD
  1127. *&---------------------------------------------------------------------*
  1128. * Build Field Catalog
  1129. *----------------------------------------------------------------------*
  1130. * <-->XT_FIELDCAT Field catalog
  1131. *----------------------------------------------------------------------*
  1132. FORM fieldcat_build CHANGING xt_fieldcat TYPE slis_t_fieldcat_alv.
  1133.  
  1134. DATA lv_structure_name TYPE dd02l-tabname.
  1135.  
  1136. FIELD-SYMBOLS <fs> TYPE slis_fieldcat_alv.
  1137.  
  1138. IF header = 0.
  1139. MOVE gc_structure_name1 TO lv_structure_name.
  1140. ELSE.
  1141. MOVE gc_structure_name2 TO lv_structure_name.
  1142. ENDIF.
  1143.  
  1144. CLEAR xt_fieldcat.
  1145. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  1146. EXPORTING
  1147. i_program_name = gv_repid
  1148. * I_INTERNAL_TABNAME = G_TABNAME
  1149. i_structure_name = lv_structure_name
  1150. * I_CLIENT_NEVER_DISPLAY = 'X'
  1151. CHANGING
  1152. ct_fieldcat = xt_fieldcat.
  1153.  
  1154. IF header = 0.
  1155. *SUM
  1156. READ TABLE xt_fieldcat ASSIGNING <fs> WITH KEY
  1157. fieldname = 'WTH_AMNT'.
  1158. IF sy-subrc = 0.
  1159. <fs>-do_sum = 'X'.
  1160. ENDIF.
  1161.  
  1162. *SUM
  1163. READ TABLE xt_fieldcat ASSIGNING <fs> WITH KEY
  1164. fieldname = 'WTH_BASE'.
  1165. IF sy-subrc = 0.
  1166. <fs>-do_sum = 'X'.
  1167. ENDIF.
  1168.  
  1169. *Set internal table name
  1170. LOOP AT xt_fieldcat ASSIGNING <fs>.
  1171. <fs>-tabname = gc_internal_tabname.
  1172. ENDLOOP.
  1173.  
  1174. ELSE.
  1175.  
  1176. *Set Field Description
  1177. LOOP AT xt_fieldcat ASSIGNING <fs>.
  1178. CASE sy-tabix.
  1179. WHEN 1.
  1180. <fs>-seltext_l = text-u14.
  1181. WHEN 2.
  1182. <fs>-seltext_l = text-u15.
  1183. WHEN 3.
  1184. <fs>-seltext_l = text-u12.
  1185. *SUM
  1186. **Checkman
  1187. * READ TABLE xt_fieldcat ASSIGNING <fs> WITH KEY
  1188. * fieldname = 'WTH_AMNT'.
  1189. * IF sy-subrc = 0.
  1190. * <fs>-do_sum = 'X'.
  1191. * ENDIF.
  1192.  
  1193. ENDCASE.
  1194. <fs>-ddictxt = gc_ddic_txt.
  1195. **Checkman
  1196. IF <fs>-fieldname = 'WTH_AMNT'.
  1197. <fs>-do_sum = 'X'.
  1198. ENDIF.
  1199.  
  1200. IF <fs>-fieldname = 'WTH_BASE'.
  1201. <fs>-do_sum = 'X'.
  1202. ENDIF.
  1203.  
  1204. **Checkman
  1205. ENDLOOP.
  1206. ENDIF.
  1207.  
  1208. ENDFORM. " FIELDCAT_BUILD
  1209. *&---------------------------------------------------------------------*
  1210. *& Form LAYOUT_BUILD
  1211. *&---------------------------------------------------------------------*
  1212. * Set layout
  1213. *----------------------------------------------------------------------*
  1214. * <-->XS_LAYOUT Layout Structure
  1215. *----------------------------------------------------------------------*
  1216. FORM layout_build CHANGING xs_layout TYPE slis_layout_alv.
  1217.  
  1218. xs_layout-colwidth_optimize = gc_layout.
  1219. xs_layout-allow_switch_to_list = gc_layout.
  1220. xs_layout-min_linesize = '120'.
  1221.  
  1222. ENDFORM. " LAYOUT_BUILD
  1223.  
  1224. *&--------------------------------------------------------------------*
  1225. *& Form PF_STATUS_ALV
  1226. *&--------------------------------------------------------------------*
  1227. * Set PF Status
  1228. *---------------------------------------------------------------------*
  1229. * -->IV_EXTAB PF Status
  1230. *---------------------------------------------------------------------*
  1231. FORM pf_status_alv USING iv_extab TYPE slis_t_extab.
  1232.  
  1233. SET PF-STATUS 'J_1AF026_ALV'.
  1234. * SET PF-STATUS gc_pf_status_name.
  1235.  
  1236. ENDFORM. "PF_STATUS_ALV
  1237.  
  1238. *----------------------------------------------------------------------*
  1239. * TOP-OF-PAGE
  1240. *----------------------------------------------------------------------*
  1241. FORM top_of_page.
  1242.  
  1243. CALL FUNCTION 'FAGL_BATCH_HEADING_PERFORM'
  1244. EXPORTING
  1245. is_bhdgd = bhdgd.
  1246.  
  1247. IF header = 0.
  1248. PERFORM print_header_0.
  1249. ELSE.
  1250. PERFORM print_header_1.
  1251. ENDIF.
  1252.  
  1253. ENDFORM. "TOP_OF_PAGE
  1254.  
  1255. *----------------------------------------------------------------------*
  1256. * END-OF-list
  1257. *----------------------------------------------------------------------*
  1258. FORM end_of_list.
  1259.  
  1260. IF header = 0.
  1261. header = 1.
  1262. *Display Second List
  1263. PERFORM display_alv.
  1264. ENDIF.
  1265.  
  1266. ENDFORM. "END_OF_PAGE
  1267.  
  1268.  
  1269. *&--------------------------------------------------------------------*
  1270. *& Form user_command
  1271. *&--------------------------------------------------------------------*
  1272. * Handle At Line-Selection
  1273. *---------------------------------------------------------------------*
  1274. * -->IV_UCOMM Function Code
  1275. * -->IS_SELFIELD Information of cursor position in ALV
  1276. *---------------------------------------------------------------------*
  1277. FORM user_command USING iv_ucomm TYPE sy-ucomm
  1278. is_selfield TYPE slis_selfield.
  1279.  
  1280. DATA ls_detail LIKE LINE OF detail.
  1281.  
  1282. IF is_selfield-tabname = gc_itab_name.
  1283. CASE iv_ucomm.
  1284. *At Line-Selection
  1285. WHEN '&IC1'.
  1286. READ TABLE detail INTO ls_detail INDEX is_selfield-tabindex.
  1287. IF sy-subrc = 0.
  1288. CHECK ls_detail-belnr NE space.
  1289.  
  1290. SET PARAMETER ID 'BLN' FIELD ls_detail-belnr.
  1291. SET PARAMETER ID 'BUK' FIELD t001-bukrs.
  1292. SET PARAMETER ID 'GJR' FIELD ls_detail-gjahr.
  1293.  
  1294. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
  1295. ENDIF.
  1296.  
  1297.  
  1298. ENDCASE.
  1299. ENDIF.
  1300. ENDFORM. "user_command
  1301.  
  1302. * ALV Changes ends
  1303. *&---------------------------------------------------------------------*
  1304. *& Form FILE_VALIDATE
  1305. *&---------------------------------------------------------------------*
  1306. * text
  1307. *----------------------------------------------------------------------*
  1308. * --> p1 text
  1309. * <-- p2 text
  1310. *----------------------------------------------------------------------*
  1311. FORM file_validate .
  1312.  
  1313. CALL FUNCTION 'FILE_VALIDATE_NAME'
  1314. EXPORTING
  1315. logical_filename = gc_filename
  1316. changing
  1317. physical_filename = s_file
  1318. EXCEPTIONS
  1319. LOGICAL_FILENAME_NOT_FOUND = 1
  1320. VALIDATION_FAILED = 2
  1321. OTHERS = 3.
  1322. IF sy-subrc <> 0.
  1323. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  1324. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  1325. ENDIF.
  1326.  
  1327. ENDFORM. " FILE_VALIDATE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement