Code20070130 - ooxxvv/MySAPnotes GitHub Wiki

Code20070130

  • 將structural 中的欄位動態 assign 到 field-symbo

Code

用名稱

FORM count_up_percentage TABLES ft_data STRUCTURE it_data.
  DATA: lw_data_total LIKE ft_data.
  DATA: l_subrc LIKE syst-subrc,
        l_index(2) TYPE n,
        l_field_name TYPE string,
        l_tabix LIKE syst-tabix.
  FIELD-SYMBOLS: <l_menge>     TYPE ANY,
                 <l_wewrt>     TYPE ANY,
                 <l_wewup>     TYPE ANY.

*-計算單價
  LOOP AT ft_data.
    l_tabix = sy-tabix.

    CLEAR: l_subrc, l_index.
    WHILE l_subrc EQ 0.
      l_index = sy-index.
      IF sy-index GE 100.
        EXIT.
      ENDIF.

*-----取得各月份欄位(數量)
      CONCATENATE 'FT_DATA-MENGE' l_index INTO l_field_name.
      ASSIGN (l_field_name) TO <l_menge>.

      IF sy-subrc NE 0.
        CONTINUE.
      ENDIF.

*-----取得各月份欄位(金額)
      CONCATENATE 'FT_DATA-WEWRT' l_index INTO l_field_name.
      ASSIGN (l_field_name) TO <l_wewrt>.

      IF sy-subrc NE 0.
        CONTINUE.
      ENDIF.

*-----計算單價
      IF <l_menge> EQ 0.
        <l_wewup> = 0.
      ELSE.
        <l_wewup> = <l_wewrt> / <l_menge>.
      ENDIF.
    ENDWHILE.

*---Put data
    MODIFY ft_data INDEX l_tabix.
  ENDLOOP.

ENDFORM.                    " COUNT_UP_PERCENTAGE

用順序

FORM write_it_output USING fw_output STRUCTURE it_output.
  DATA: l_subrc LIKE syst-subrc,
        l_index LIKE syst-index.
  FIELD-SYMBOLS: <fs_field> TYPE ANY.

  CLEAR: l_subrc, l_index.

  WHILE l_subrc EQ 0.
    l_index = sy-index.

*---Assign space field
    ASSIGN COMPONENT l_index OF STRUCTURE fw_output TO <fs_field>.

*---Check assign success or not
    l_subrc = sy-subrc.
    IF l_subrc NE 0.
      CONTINUE.
    ENDIF.

*---Write field content and space
    WRITE <fs_field>.
  ENDWHILE.

ENDFORM.                    " write_it_output
⚠️ **GitHub.com Fallback** ⚠️