REPORT ZTEST_T001_FORM.
* 定义内表和工作区(带表头行)
DATA: BEGIN OF GT_T001 OCCURS 0,
MANDT TYPE T001-MANDT,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ORT01 TYPE T001-ORT01,
LAND1 TYPE T001-LAND1,
WAERS TYPE T001-WAERS,
END OF GT_T001.
DATA icount TYPE i.
icount = 900.
START-OF-SELECTION.
WRITE:/ sy-uline.
WRITE:/ icount.
" 从 T001 表中读取前 20 条记录
SELECT MANDT BUKRS BUTXT ORT01 LAND1 WAERS
UP TO 20 ROWS
FROM T001
INTO TABLE GT_T001.
IF SY-SUBRC = 0.
" 调用子例程,传入内表
PERFORM DISPLAY_TABLE TABLES GT_T001 USING 'Nothing in the world' 2 CHANGING icount.
ELSE.
WRITE: / '未查询到数据'.
ENDIF.
WRITE:/ sy-uline.
WRITE:/ icount.
*&---------------------------------------------------------------------*
*& Form DISPLAY_TABLE
*&---------------------------------------------------------------------*
* 循环输出内表数据
*----------------------------------------------------------------------*
FORM DISPLAY_TABLE TABLES P_T001 STRUCTURE GT_T001 USING a b CHANGING iout.
DATA: LS_T001 LIKE LINE OF P_T001.
iout = 1800.
WRITE:/ a, b, iout.
WRITE:/ sy-uline.
WRITE: / '序号', '公司代码', '公司名称', '城市', '国家', '货币'.
WRITE: / '----------------------------------------'.
LOOP AT P_T001 INTO LS_T001.
WRITE: / SY-TABIX, LS_T001-BUKRS, LS_T001-BUTXT,
LS_T001-ORT01, LS_T001-LAND1, LS_T001-WAERS.
ENDLOOP.
ENDFORM.