简单的查询输出列表程序

整体流程:
1) 定义一个结构或表,定义一内表,HEADER LINE作为工作区.
2) 定义选择屏幕.
3) 定义页眉页脚.
4) START-OF-SELECTION.具体操作:将条件选择的数据读入内表(GET_DATA),从内表输出数据IN LIST(OUTPUT).

需要注意的地方:
1) 内表定义时字段顺序,与输出时控制级有关(AT NEW,AT END OF).
2) "SELECTION-SCREEN BEGIN OF LINE.& SELECTION-SCREEN END OF LINE." 将之间的元素显示在一行.
3) "SELECTION-SCREEN COMMENT 10(15) TEXT-004." 加上中文注释和注释位置长度.
4) "LINE-COUNT 80(2)" 一页80行,留2行作页脚.
5) 输出达到页脚行再NEW-PAGE,否则页脚不显示.
6) ULINE也是占一行的.

*&---------------------------------------------------------------------*
*& Report  ZPAB06_EXAM1                                                *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZPAB06_EXAM1 LINE-SIZE 180 LINE-COUNT 80(2) NO STANDARD PAGE HEADING.

TABLES: MARA,BKPF.
DATA: BEGIN OF i_type,
         ERSDA LIKE MARA-ERSDA,
         MTART LIKE MARA-MTART,
         MATNR LIKE MARA-MATNR,
         MATKL LIKE MARA-MATKL,
       END OF i_type.

DATA: itab LIKE STANDARD TABLE OF i_type WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK b1
                          with frame
                          title text-001.
SELECT-OPTIONS: WL1 FOR itab-MATNR,
                WL2 FOR itab-MTART DEFAULT 'FERT',
                WL3 FOR itab-ERSDA DEFAULT '20061017' TO
                                           '20061018'.
PARAMETERS RATE TYPE BKPF-KURSF.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2
                          with frame
                          title text-002.
  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT (15) TEXT-004.
      PARAMETERS PRM1 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN COMMENT (15) TEXT-005.
      PARAMETERS PRM2 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN COMMENT (15) TEXT-006.
      PARAMETERS PRM3 RADIOBUTTON GROUP G1 DEFAULT 'X'.
    SELECTION-SCREEN COMMENT (15) TEXT-007.
      PARAMETERS PRM4 RADIOBUTTON GROUP G1.
  SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3
                          with frame
                          title text-003.
  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT (20) TEXT-008.
      PARAMETERS T1 AS CHECKBOX.
  SELECTION-SCREEN END OF LINE.
  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT (20) TEXT-009.
      PARAMETERS T2 AS CHECKBOX.
  SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b3.

TOP-OF-PAGE.
  ULINE AT (180).
  WRITE: /1 SY-VLINE, 2 '物料类型', 42 SY-VLINE,
         47 SY-VLINE, 48 '创建时间', 88 SY-VLINE,
         93 SY-VLINE, 94 '物料号', 134 SY-VLINE,
         139 SY-VLINE, 140 '物料组', 180 SY-VLINE.

END-OF-PAGE.
  ULINE AT (180).
  WRITE: /30 'Page:', sy-pagno.

START-OF-SELECTION.

PERFORM get_data.
PERFORM output.


FORM get_data.
  SELECT MTART ERSDA MATNR MATKL
         INTO CORRESPONDING FIELDS OF TABLE itab FROM MARA
         WHERE MATNR IN WL1
         AND MTART IN WL2
         AND ERSDA IN WL3.

  IF SY-SUBRC <> 0.
    ULINE AT (180).
    WRITE: /2 'NO RECORD!'.
  ENDIF.
ENDFORM.


FORM output.
  SORT itab BY MTART ERSDA MATNR.

  LOOP AT itab.

    ULINE AT /(42).
    ULINE AT 47(42).
    ULINE AT 93(42).
    ULINE AT 139(42).
    WRITE: /1 SY-VLINE, 2 itab-MTART, 42 SY-VLINE,
           47 SY-VLINE, 48 itab-ERSDA, 88 SY-VLINE,
           93 SY-VLINE, 94 itab-MATNR, 134 SY-VLINE,
           139 SY-VLINE, 140 itab-MATKL, 180 SY-VLINE.

    AT END OF ERSDA.

      DO 80 TIMES.
        CHECK ( SY-LINNO < 77 ).
        ULINE AT /(42).
        ULINE AT 47(42).
        ULINE AT 93(42).
        ULINE AT 139(42).
        WRITE: /1 SY-VLINE, 42 SY-VLINE,
               47 SY-VLINE, 88 SY-VLINE,
               93 SY-VLINE, 134 SY-VLINE,
               139 SY-VLINE, 180 SY-VLINE.
      ENDDO.

      NEW-PAGE.
    ENDAT.

  ENDLOOP.
ENDFORM.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值