我已經創建了內部表,我想通過從另一個表計算來更新一個內部表中員工的年齡,我已經進行了算術計算來獲得年齡,但現在如何通過任何替代方式而不是更新它MODIFY?
WRITE : / 'FirstName','LastName', ' Age'.
LOOP AT gt_items1 INTO gwa_items1.
READ TABLE gt_header INTO gwa_header WITH KEY empid = gwa_items1-empid.
gwa_items1-age = gv_date 0(4) - gwa_header-bdate 0(4).
MODIFY gt_items1 from gwa_items1 TRANSPORTING age WHERE empid = gwa_items1-empid.
WRITE : / gwa_items1-fname , gwa_items1-lname , gwa_items1-age .
ENDLOOP.
uj5u.com熱心網友回復:
通過在內部表上回圈使用欄位符號(而不是作業區):
WRITE : / 'FirstName','LastName', ' Age'.
LOOP AT gt_items1
ASSIGNING FIELD-SYMBOL(<ls_item1>).
READ TABLE gt_header
ASSIGNING FIELD-SYMBOL(<ls_header>)
WITH KEY empid = <ls_item1>-empid.
IF sy-subrc EQ 0.
<ls_item1>-age = gv_date 0(4) - <ls_header>-bdate 0(4).
WRITE : / <ls_item1>-fname , <ls_item1>-lname , <ls_item1>-age .
ENDIF.
ENDLOOP.
欄位符號有兩個優點:
他們直接修改內表,不需要單獨的MODIFY。
它們比作業區要快一些。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336434.html
下一篇:減去給定的數字?
