Code20071113 - ooxxvv/MySAPnotes GitHub Wiki

Code20071113

  • 計算 Report 的總頁數,並將其輸出在每一頁的表頭。

Code

FORM write_total_page USING f_line_no     "總頁數欄位是放在那一行
                            f_replace_str "要被 Replace 掉的字串
                            f_list_index. "第幾層的 List
  DATA: l_linct LIKE sy-linct.
  DATA: l_tpagno LIKE sy-pagno,
     l_line LIKE sy-lisel,
     l_pagno(4) TYPE c.

*-把目前的頁數 (也就是總頁數) 存入變數中
  MOVE sy-pagno TO l_pagno.
  l_pagno = l_pagno.

*-整理總頁數的格式
  CONDENSE l_pagno NO-GAPS.
  CONCATENATE '/' l_pagno INTO l_pagno SEPARATED BY space.

*-從第一頁開始,將每頁所指定的行數中所指定的字串替換成總頁數
  l_tpagno = sy-pagno.

  DO l_tpagno TIMES.
    READ LINE f_line_no OF PAGE sy-index INDEX f_list_index
                               LINE VALUE INTO l_line.

    CHECK sy-subrc EQ 0.

    REPLACE SUBSTRING f_replace_str IN l_line WITH l_pagno.

    MODIFY LINE f_line_no OF PAGE sy-index INDEX f_list_index
                                 LINE VALUE FROM l_line.
  ENDDO.

ENDFORM.                    " write_total_page