abap 调用form,传入内表参数和其它参数输出


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.
posted @ 2026-07-30 11:03  虚拟过客之IT老男人  阅读(2)  评论(0)    收藏  举报