1 *&---------------------------------------------------------------------* 2 *& Report ZR_FI_01 3 *& 4 *&---------------------------------------------------------------------* 5 *&----------狼 6 *& 7 *&---------------------------------------------------------------------* 8 9 REPORT zr_fi_ma. 10 11 12 TABLES: bseg,t001,bkpf ,skat. 13 14 *定義ALV相關變量 15 16 TYPE-POOLS : slis. 17 DATA: afield TYPE slis_fieldcat_alv. 18 DATA: i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE. 19 DATA: fieldcat TYPE slis_t_fieldcat_alv. 20 DATA: gs_layout TYPE slis_layout_alv. 21 DATA: g_repid TYPE sy-repid. 22 DATA: i_layout TYPE slis_layout_alv. 23 DATA gridlsl TYPE lvc_s_glay. 24 DATA itab1 LIKE zstr_pz OCCURS 0 WITH HEADER LINE. 25 *DATA itab2 LIKE zstr_pz OCCURS 0 WITH HEADER LINE. 26 DATA itab LIKE zstr_pz OCCURS 0 WITH HEADER LINE. 27 DATA: c1(2) TYPE c VALUE '年',c2(2) TYPE c VALUE '月',c3(2) TYPE c VALUE '日', 28 c4(4) TYPE c ,c5(2) TYPE c ,c6(2) TYPE c ,c7(20) TYPE c . 29 *DATA LEN TYPE I. 30 *定義內表字段 31 32 DATA:BEGIN OF itab_skat OCCURS 0, 33 txt50 LIKE skat-txt50, 34 saknr LIKE skat-saknr, 35 END OF itab_skat. 36 37 DATA:BEGIN OF itab_bkpf OCCURS 0, 38 bktxt LIKE bkpf-bktxt, "憑證抬頭文本 39 usnam LIKE bkpf-usnam, "用戶名 40 budat LIKE bkpf-budat, "過賬日期 41 belnr LIKE bkpf-belnr, "會計憑證 42 gjahr LIKE bkpf-gjahr, "會計年度 43 bukrs LIKE bkpf-bukrs, "代碼公司 44 monat LIKE bkpf-monat, "會計期間 45 blart LIKE bkpf-blart, "憑證類型 46 bldat LIKE bkpf-bldat, "憑證日期 47 numpg LIKE bkpf-numpg, "頁數 48 STBLG LIKE BKPF-STBLG, "沖銷憑證號 49 WAERS LIKE BKPF-WAERS, "貨幣 50 KURSF LIKE BKPF-KURSF, "匯率 51 BSTAT LIKE BKPF-BSTAT, "憑證狀態 52 END OF itab_bkpf. 53 54 55 DATA:BEGIN OF itab_t001 OCCURS 0, 56 butxt LIKE t001-butxt, "公司代碼 57 bukrs LIKE t001-bukrs, "代碼公司 58 END OF itab_t001. 59 60 DATA: BEGIN OF wa_alv OCCURS 0, 61 flag(1) , 62 augdt01 LIKE zstr_pz-augdt01, 63 bukrs LIKE bseg-bukrs,"代碼公司 64 belnr LIKE bseg-belnr,"會計憑證 65 gjahr LIKE bseg-gjahr,"會計年度 66 butxt LIKE t001-butxt,"公司代碼 67 augdt LIKE bseg-augdt,"清帳日期 68 hkont LIKE bseg-hkont,"總分類帳帳目 69 bktxt LIKE bkpf-bktxt,"憑證抬頭文本 70 buzei LIKE bseg-buzei,"會計憑證中的行項目數 71 txt50 LIKE skat-txt50,"總賬科目成文本 72 wrbtr LIKE bseg-wrbtr,"憑證貨幣金額 73 shkzg LIKE bseg-shkzg,"借方/貸方標識 74 wrbtr01 LIKE bseg-wrbtr,"憑證貨幣金額 75 shkzg01 LIKE bseg-shkzg,"借方/貸方標識 76 usnam LIKE bkpf-usnam, "用戶名 77 budat LIKE bkpf-budat, "過賬日期 78 blart LIKE bkpf-blart, "憑證類型 79 bldat LIKE bkpf-bldat, "憑證日期 80 numpg LIKE bkpf-numpg, "頁數 81 stblg LIKE bkpf-stblg, "沖銷憑證號 82 waers LIKE bkpf-waers, "貨幣 83 kursf LIKE bkpf-kursf, "匯率 84 bstat LIKE bkpf-bstat. "憑證狀態 85 DATA END OF wa_alv. 86 87 DATA wa_alv01 LIKE TABLE OF wa_alv WITH HEADER LINE. 88 89 DATA:BEGIN OF sum_itab OCCURS 0, 90 belnr TYPE bseg-belnr, 91 count01 TYPE bseg-wrbtr, 92 count02 TYPE bseg-wrbtr. 93 DATA END OF sum_itab. 94 *選擇屏幕 95 SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text. 96 97 SELECT-OPTIONS: p_bukrs FOR bkpf-bukrs no INTERVALS OBLIGATORY DEFAULT 1000, 98 p_belnr FOR bkpf-belnr , 99 p_gjahr FOR bkpf-gjahr no INTERVALS OBLIGATORY DEFAULT SY-DATUM, 100 p_monat FOR bkpf-monat, 101 p_usnam FOR bkpf-usnam NO INTERVALS. 102 103 SELECTION-SCREEN END OF BLOCK blk. 104 105 INITIALIZATION. 106 g_repid = sy-repid. 107 text = '憑證信息'. 108 109 START-OF-SELECTION. 110 PERFORM getdata. 111 PERFORM layout_build. 112 PERFORM sub_init_fieldcat. 113 PERFORM sub_init_layout. 114 PERFORM sub_listado. 115 116 END-OF-SELECTION. 117 118 *&--------------------------------------------------------------------* 119 *& Form getdata 120 *&--------------------------------------------------------------------* 121 * 獲取數據 從數據庫表中選擇相應字段 122 *---------------------------------------------------------------------* 123 *&---------------------------------------------------------------------* 124 125 FORM getdata ."從數據庫里取數到ALV 126 127 ****************************************從BKPF中取數據 128 SELECT bktxt usnam budat belnr gjahr bukrs monat blart bldat numpg stblg waers kursf bstat 129 INTO CORRESPONDING FIELDS OF TABLE itab_bkpf 130 FROM bkpf 131 WHERE usnam in p_usnam AND belnr IN p_belnr AND bukrs in p_bukrs AND monat IN p_monat AND gjahr in p_gjahr. 132 IF SY-SUBRC <> 0. 133 MESSAGE '所找數據不存在,請糾正' TYPE 'I'. 134 stop. 135 RETURN."跳出 136 ENDIF. 137 **********************************從BSEG中取數據 138 IF itab_bkpf[] IS NOT INITIAL. 139 SELECT bukrs belnr gjahr augdt hkont wrbtr shkzg buzei 140 INTO CORRESPONDING FIELDS OF TABLE wa_alv 141 * UP TO 100 ROWSC 142 FROM bseg 143 FOR ALL ENTRIES IN itab_bkpf 144 WHERE belnr = itab_bkpf-belnr ."AND gjahr IN p_gjahr and belnr = itab_bkpf-belnr. 145 146 ENDIF. 147 148 ***********************把指在BKPF里有的憑證編號取出來 149 LOOP AT ITAB_BKPF. 150 SELECT SINGLE bukrs belnr gjahr augdt hkont wrbtr shkzg buzei 151 INTO CORRESPONDING FIELDS OF wa_alv 152 FROM bseg 153 WHERE belnr = itab_bkpf-belnr. 154 IF SY-SUBRC <> 0. 155 MOVE-CORRESPONDING itab_bkpf to wa_alv01. 156 APPEND WA_ALV01. 157 ENDIF. 158 ENDLOOP. 159 *************************************從T001中取數據 160 SELECT * 161 INTO CORRESPONDING FIELDS OF TABLE itab_t001 162 FROM t001 "把數直接放到工作區間里面去,不會放在表頭! 163 WHERE bukrs in p_bukrs. 164 165 ************從SKAT里取數 166 IF wa_alv[] IS NOT INITIAL. 167 SELECT txt50 saknr 168 INTO CORRESPONDING FIELDS OF TABLE itab_skat 169 FROM skat 170 FOR ALL ENTRIES IN wa_alv 171 WHERE saknr = wa_alv-hkont." AND SPRAS = '1' AND KTOPL = 'INT'. 172 ENDIF. 173 174 *********************整理alv上要顯示的數據 175 LOOP AT wa_alv. 176 *********** 把借和貸分開 177 CASE wa_alv-shkzg. 178 WHEN 'S'. 179 wa_alv-wrbtr = wa_alv-wrbtr. 180 WHEN 'H'. 181 wa_alv-wrbtr01 = wa_alv-wrbtr. 182 CLEAR wa_alv-wrbtr. 183 WHEN OTHERS. 184 ENDCASE. 185 ************************把BUTXT整理到ALV內表里面 186 READ TABLE itab_t001 WITH KEY bukrs = wa_alv-bukrs. 187 IF sy-subrc EQ 0. 188 MOVE itab_t001-butxt TO wa_alv-butxt. 189 ENDIF. 190 **********************把BKTXT USNAM BUDAT NUMPG整理到ALV內表去 191 READ TABLE itab_bkpf WITH KEY bukrs = wa_alv-bukrs gjahr = wa_alv-gjahr belnr = wa_alv-belnr . 192 IF sy-subrc EQ 0. 193 MOVE itab_bkpf-bktxt TO wa_alv-bktxt. 194 MOVE itab_bkpf-usnam TO wa_alv-usnam. 195 MOVE itab_bkpf-budat TO wa_alv-budat. 196 MOVE itab_bkpf-numpg TO wa_alv-numpg. 197 198 MOVE itab_bkpf-blart TO wa_alv-blart. 199 MOVE itab_bkpf-bldat TO wa_alv-bldat. 200 MOVE itab_bkpf-stblg TO wa_alv-stblg. 201 MOVE itab_bkpf-waers TO wa_alv-waers. 202 203 MOVE itab_bkpf-kursf TO wa_alv-kursf. 204 MOVE itab_bkpf-bstat TO wa_alv-bstat. 205 MOVE itab_bkpf-numpg TO wa_alv-numpg. 206 ENDIF. 207 ************************************* 把TXT50整理到內表去, 208 READ TABLE itab_skat WITH KEY saknr = wa_alv-hkont. 209 IF sy-subrc EQ 0. 210 MOVE itab_skat-txt50 TO wa_alv-txt50. 211 ENDIF. 212 213 MODIFY wa_alv. 214 ENDLOOP. 215 216 **********************把數據轉移到要顯示的ALV屏幕上的內表WA_ALV01上 217 LOOP AT wa_alv. 218 MOVE-CORRESPONDING wa_alv TO wa_alv01. 219 APPEND wa_alv01. 220 ENDLOOP. 221 222 *******************根據物料編號排序,把相同的物料編號刪除 223 SORT wa_alv01 BY belnr. 224 DELETE ADJACENT DUPLICATES FROM wa_alv01 COMPARING belnr. 225 DELETE WA_ALV01 WHERE BELNR = ''. 226 ENDFORM. " GETDATA 227 *&---------------------------------------------------------------------* 228 *& Form SUB_INIT_FIELDCAT 229 *&---------------------------------------------------------------------* 230 * text 231 *----------------------------------------------------------------------* 232 * --> p1 text 233 * <-- p2 text 234 *----------------------------------------------------------------------* 235 FORM layout_build . 236 i_layout-box_fieldname = 'FLAG'. 237 i_layout-colwidth_optimize = 'X'. "優化列寬選項是否設置 238 i_layout-zebra = 'X'. 239 i_layout-detail_initial_lines = 'X'. 240 i_layout-no_vline = 'X'." layout_build 241 242 ENDFORM. " LAYOUT_BUILD 243 244 *&---------------------------------------------------------------------* 245 *& Form SUB_INIT_FIELDCAT 246 *&---------------------------------------------------------------------* 247 * text 248 *----------------------------------------------------------------------* 249 FORM sub_init_fieldcat . 250 251 i_fieldcat-fieldname = 'BUKRS'. "公司代碼 252 i_fieldcat-tabname = 'ITEM'. 253 i_fieldcat-reptext_ddic = '公司代碼'. 254 i_fieldcat-outputlen = 10. 255 i_fieldcat-key = 'X'. 256 i_fieldcat-just = 'C'. 257 APPEND i_fieldcat. 258 CLEAR i_fieldcat. 259 260 i_fieldcat-fieldname = 'BUTXT'. "公司代碼 261 i_fieldcat-tabname = 'ITEM'. 262 i_fieldcat-reptext_ddic = '核算單位'. 263 i_fieldcat-outputlen = 10. 264 i_fieldcat-key = 'X'. 265 * i_fieldcat-no_out ='X'. 266 i_fieldcat-just = 'C'. 267 APPEND i_fieldcat. 268 CLEAR i_fieldcat. 269 270 i_fieldcat-fieldname = 'BELNR'. "會計憑證 271 i_fieldcat-tabname = 'ITEM'. 272 i_fieldcat-reptext_ddic = '憑證編號'. 273 i_fieldcat-outputlen = 12. 274 i_fieldcat-key = 'X'. 275 i_fieldcat-just = 'C'. 276 APPEND i_fieldcat. 277 CLEAR i_fieldcat. 278 279 i_fieldcat-fieldname = 'GJAHR'. 280 i_fieldcat-tabname = 'ITEM'. 281 i_fieldcat-reptext_ddic = '會計年度'. 282 i_fieldcat-outputlen = 4. 283 i_fieldcat-key = 'X'. 284 i_fieldcat-just = 'C'. 285 APPEND i_fieldcat. 286 CLEAR i_fieldcat. 287 288 i_fieldcat-fieldname = 'BLART'. "會計憑證 289 i_fieldcat-tabname = 'ITEM'. 290 i_fieldcat-reptext_ddic = '憑證類型'. 291 i_fieldcat-outputlen = 2. 292 i_fieldcat-just = 'C'. 293 APPEND i_fieldcat. 294 CLEAR i_fieldcat. 295 296 i_fieldcat-fieldname = 'BLDAT'. "會計憑證 297 i_fieldcat-tabname = 'ITEM'. 298 i_fieldcat-reptext_ddic = '憑證日期'. 299 i_fieldcat-outputlen = 8. 300 i_fieldcat-just = 'C'. 301 APPEND i_fieldcat. 302 CLEAR i_fieldcat. 303 304 i_fieldcat-fieldname = 'BUDAT'. "清單日期 305 i_fieldcat-tabname = 'ITEM'. 306 i_fieldcat-reptext_ddic = '過賬日期'. 307 i_fieldcat-outputlen = 10. 308 i_fieldcat-just = 'C'. 309 APPEND i_fieldcat. 310 CLEAR i_fieldcat. 311 312 i_fieldcat-fieldname = 'USNAM'. "用戶名 313 i_fieldcat-tabname = 'ITEM'. 314 i_fieldcat-reptext_ddic = ' 制 單'. 315 i_fieldcat-outputlen = 18. 316 i_fieldcat-just = 'C'. 317 APPEND i_fieldcat. 318 CLEAR i_fieldcat. 319 320 i_fieldcat-fieldname = 'STBLG'. 321 i_fieldcat-tabname = 'ITEM'. 322 i_fieldcat-reptext_ddic = '沖銷憑證號'. 323 i_fieldcat-outputlen = 10. 324 i_fieldcat-just = 'C'. 325 APPEND i_fieldcat. 326 CLEAR i_fieldcat. 327 328 i_fieldcat-fieldname = 'BKTXT'. 329 i_fieldcat-tabname = 'ITEM'. 330 i_fieldcat-reptext_ddic = '憑證抬頭文本'. 331 i_fieldcat-outputlen = 10. 332 i_fieldcat-just = 'C'. 333 APPEND i_fieldcat. 334 CLEAR i_fieldcat. 335 336 i_fieldcat-fieldname = 'WAERS'. 337 i_fieldcat-tabname = 'ITEM'. 338 i_fieldcat-reptext_ddic = '貨幣'. 339 i_fieldcat-outputlen = 14. 340 i_fieldcat-just = 'C'. 341 APPEND i_fieldcat. 342 CLEAR i_fieldcat. 343 344 i_fieldcat-fieldname = 'KURSF'. "用戶名 345 i_fieldcat-tabname = 'ITEM'. 346 i_fieldcat-reptext_ddic = ' 匯率'. 347 i_fieldcat-outputlen = 9. 348 i_fieldcat-just = 'C'. 349 APPEND i_fieldcat. 350 CLEAR i_fieldcat. 351 352 i_fieldcat-fieldname = 'BSTAT'. 353 i_fieldcat-tabname = 'ITEM'. 354 i_fieldcat-reptext_ddic = '憑證狀態'. 355 i_fieldcat-outputlen = 2. 356 i_fieldcat-just = 'C'. 357 APPEND i_fieldcat. 358 CLEAR i_fieldcat. 359 360 i_fieldcat-fieldname = 'NUMPG'. 361 i_fieldcat-tabname = 'ITEM'. 362 i_fieldcat-reptext_ddic = '頁數'. 363 i_fieldcat-outputlen = 3. 364 i_fieldcat-just = 'C'. 365 APPEND i_fieldcat. 366 CLEAR i_fieldcat. 367 368 ENDFORM. " SUB_INIT_FIELDCAT 369 *&---------------------------------------------------------------------* 370 *& Form SUB_INIT_LAYOUT 371 *&---------------------------------------------------------------------* 372 * text 373 *----------------------------------------------------------------------* 374 * --> p1 text 375 * <-- p2 text 376 *----------------------------------------------------------------------* 377 FORM sub_init_layout . 378 DATA:num TYPE i VALUE 0. 379 * DATA: l_output(50). 380 * i_layout-zebra = 'X'. 381 * l_output = '會計憑證'. 382 * i_layout-window_titlebar = l_output. 383 * i_layout-colwidth_optimize = 'X'. 384 * sort wa_alv by NUMPG. 385 * 386 *read table wa_alv with key NUMPG = '' BINARY SEARCH. 387 388 LOOP AT wa_alv WHERE NUMPG <> ''. 389 num = 1. 390 ENDLOOP. 391 IF num = 0. 392 LOOP AT i_fieldcat. 393 i_fieldcat-no_out = ''. 394 IF i_fieldcat-fieldname = 'NUMPG' . 395 i_fieldcat-no_out = 'X'. 396 ENDIF. 397 MODIFY i_fieldcat . 398 ENDLOOP. 399 400 ENDIF. 401 * CALL METHOD go_grid->set_frontend_fieldcatalog 402 * EXPORTING 403 * it_fieldcatalog = gt_fieldcat. 404 * CALL METHOD go_grid->refresh_table_display . 405 406 ENDFORM. " SUB_INIT_LAYOUT 407 *&---------------------------------------------------------------------* 408 *& Form SUB_LISTADO 409 *&---------------------------------------------------------------------* 410 * text 411 *----------------------------------------------------------------------* 412 * --> p1 text 413 * <-- p2 text 414 *----------------------------------------------------------------------* 415 FORM sub_listado . 416 g_repid = sy-repid. 417 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 418 EXPORTING 419 i_callback_user_command = 'USER_COMMAND' 420 i_callback_pf_status_set = 'USER_STATUS' 421 i_callback_program = g_repid 422 is_layout = i_layout 423 it_fieldcat = i_fieldcat[] 424 * it_events = i_events[] 425 TABLES 426 t_outtab = wa_alv01 427 EXCEPTIONS 428 program_error = 1 429 OTHERS = 2. 430 ENDFORM. " SUB_LISTADO 431 432 *&---------------------------------------------------------------------* 433 *& Form user_command 434 *&---------------------------------------------------------------------* 435 * text 436 *----------------------------------------------------------------------* 437 * -->R_UCOMM text 438 * -->RS_SELFIELD text 439 *----------------------------------------------------------------------* 440 FORM user_command USING r_ucomm LIKE sy-ucomm 441 rs_selfield TYPE slis_selfield. 442 443 DATA: ok_code TYPE sy-ucomm. 444 ok_code = sy-ucomm. 445 CLEAR sy-ucomm. 446 447 CASE ok_code. 448 WHEN 'BACK'. 449 LEAVE TO SCREEN 0. 450 WHEN 'EXIT'. 451 EXIT. 452 WHEN 'COPY'. 453 * LEAVE TO SCREEN 0. 454 PERFORM dayin. 455 WHEN 'SAVE'. 456 LEAVE TO SCREEN 0. 457 WHEN OTHERS. 458 EXIT. 459 ENDCASE. 460 461 462 ENDFORM. " USER_COMMAND 463 *&---------------------------------------------------------------------* 464 *& Form USER_STATUS 465 *&---------------------------------------------------------------------* 466 * text 467 *----------------------------------------------------------------------* 468 * --> p1 text 469 * <-- p2 text 470 *----------------------------------------------------------------------* 471 FORM user_status USING extab TYPE slis_t_extab. 472 SET PF-STATUS 'FIPZ_STU01'. 473 SET TITLEBAR 'FIPZ_TIT'. 474 ENDFORM. "user_status 475 *&---------------------------------------------------------------------* 476 *& Form DAYIN 477 *&---------------------------------------------------------------------* 478 * text 479 *----------------------------------------------------------------------* 480 * --> p1 text 481 * <-- p2 text 482 *----------------------------------------------------------------------* 483 FORM dayin . 484 485 PERFORM get_data. 486 DATA fm_name TYPE rs38l_fnam. 487 CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' 488 EXPORTING 489 formname = 'ZFI_PZ002'"寫自己設計的smartforms名字.自動返回對應的function module函數代碼 490 IMPORTING 491 fm_name = fm_name "這里系統返回的是函數代碼(/1BCDWB/SF00000003) 492 EXCEPTIONS 493 no_form = 1 494 no_function_module = 2 495 OTHERS = 3. 496 IF sy-subrc <> 0. 497 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 498 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 499 ENDIF. 500 501 CALL FUNCTION fm_name "調用SMARTFORM,很顯然這里是以FUNCTION MOUDULE的方式和SMARTFORM交互. 502 EXPORTING 503 user_settings = 'X' 504 TABLES "填寫SF調用的表和程序的表對應 505 itab1 = itab1 "前一個是sf 后面是程序的. 506 itab = itab "把ITAB內表的內容傳遞到SMARTFORM中去 507 EXCEPTIONS 508 formatting_error = 1 509 internal_error = 2 510 send_error = 3 511 user_canceled = 4 512 OTHERS = 5. 513 514 ENDFORM. " DAYIN 515 *&---------------------------------------------------------------------* 516 *& Form GET_DATA 517 *&---------------------------------------------------------------------* 518 * text 519 *----------------------------------------------------------------------* 520 * --> p1 text 521 * <-- p2 text 522 *----------------------------------------------------------------------* 523 FORM get_data . 524 CLEAR: itab[],itab. 525 CLEAR:itab1[],itab1. 526 * 定義了上面的這兩行,就可以實現多次打印! 527 528 LOOP AT wa_alv01 WHERE flag = 'X'. 529 530 *******************************檢驗是否能打印 531 IF wa_alv01-butxt is INITIAL. 532 DATA:ME01(10) TYPE C, 533 ME02(25) TYPE C. 534 ME01 = wa_alv01-BELNR. 535 CONCATENATE '憑證' ME01 '沒有行項目,無法打印' INTO ME02. 536 MESSAGE ME02 TYPE 'I'. 537 ENDIF. 538 539 *************************把需要的數據傳到與SF相連額橋梁表 540 LOOP AT wa_alv WHERE belnr = wa_alv01-belnr. 541 542 ******************* 時間格式轉換 543 PERFORM time_data. 544 545 MOVE-CORRESPONDING wa_alv TO itab1. 546 APPEND itab1. 547 SORT itab1 BY bktxt belnr wrbtr wrbtr01 . 548 549 ENDLOOP. 550 551 ENDLOOP. 552 553 DELETE ADJACENT DUPLICATES FROM itab1 COMPARING ALL FIELDS."刪除重復行。 554 555 LOOP AT itab1. 556 MOVE itab1-butxt TO itab-butxt. 557 * MOVE ITAB-AUGDT+0(4) TO ITAB1-YYYY. 558 * MOVE ITAB-AUGDT+4(2) TO ITAB1-MM. 559 * MOVE ITAB-AUGDT+6(2) TO ITAB1-DD. 560 MOVE itab1-belnr TO itab-belnr. 561 MOVE itab1-usnam TO itab-usnam. 562 APPEND itab. 563 DELETE ADJACENT DUPLICATES FROM itab COMPARING ALL FIELDS."* = COLLECT ITAB1. 564 MOVE itab1-belnr TO sum_itab-belnr. 565 sum_itab-count01 = itab1-wrbtr. 566 sum_itab-count02 = itab1-wrbtr01 . 567 COLLECT sum_itab. 568 CLEAR sum_itab. 569 570 ENDLOOP. 571 572 LOOP AT itab. 573 READ TABLE sum_itab WITH KEY belnr = itab-belnr. 574 IF sy-subrc = 0 . 575 itab-count01 = sum_itab-count01 . 576 itab-count02 = sum_itab-count02. 577 578 ENDIF. 579 LOOP AT itab1 WHERE belnr = itab1-belnr AND butxt = itab1-butxt AND usnam = itab1-usnam . 580 IF itab1-augdt01 <> ''. 581 MOVE itab1-augdt01 TO itab-augdt01. 582 ENDIF. 583 ENDLOOP. 584 MODIFY itab[] FROM itab. 585 ENDLOOP. 586 SORT itab1 BY wrbtr01. 587 588 589 590 591 ENDFORM. " GET_DATA 592 *&---------------------------------------------------------------------* 593 *& Form TIME_DATA 594 *&---------------------------------------------------------------------* 595 * text改為需求的日期 596 *----------------------------------------------------------------------* 597 * --> p1 text 598 * <-- p2 text 599 *----------------------------------------------------------------------* 600 FORM time_data . 601 IF wa_alv-budat NE 0. 602 MOVE wa_alv-budat+0(4) TO c4. 603 MOVE wa_alv-budat+4(2) TO c5. 604 MOVE wa_alv-budat+6(2) TO c6. 605 CONCATENATE c4 c1 c5 c2 c6 c3 INTO wa_alv-augdt01. 606 MODIFY wa_alv[] FROM wa_alv. 607 ENDIF. 608 ENDFORM. " TIME_DATA