数据库读取、操作

REPORT  YTEST002.
*data: begin of man,
*      name(20) type c,
*      high     type p decimals 2,
*      weight   type p decimals 2,
*      end of man.
*data: man1 like hashed table of man with unique key name.
*     man-name =  '张参'.
*     man-high =  '1.68'.
*     man-weight = 120.
*     insert man  into table man1.
*     man-name =  '刘志'.
*     man-high =  '1.78'.
*     man-weight = 160.
*     insert man  into table man1.
*     man-name =  '宋强'.
*     man-high =  '1.72'.
*     man-weight = 130.
*     insert man  into table man1.
*loop at man1 into man.
*     write:/ man-name,man-high,man-weight.
*     endloop.
** SORT MAN1 DESCENDING  BY WEIGHT ASCENDING.
** SORT MAN1 DESCENDING  BY WEIGHT ASCENDING.
*  SORT MAN1 DESCENDING  BY WEIGHT DESCENDING.
** -----SKIP和ULINE 分别代表跳行和下划线.
* SKIP .
* ULINE.
* LOOP AT MAN1 INTO MAN.
* WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
* ENDLOOP.
*--------------直接读取内表-----------------------
*DATA: A_SPFLI TYPE SPFLI.
*DATA: TA_SPFLI TYPE TABLE  OF SPFLI WITH HEADER LINE.
*ULINE.
*WRITE / '使用工作区'.
*ULINE.
*SELECT * INTO CORRESPONDING FIELDS OF A_SPFLI FROM SPFLI UP TO 5 ROWS.
*WRITE: / A_SPFLI-CONNID , A_SPFLI-CARRID,A_SPFLI-CITYFROM,
*         A_SPFLI-CITYTO.
*ENDSELECT.
*ULINE.
*WRITE / '使用内表'.
*ULINE.
*SELECT * INTO CORRESPONDING FIELDS OF TA_SPFLI FROM SPFLI .
*LOOP AT TA_SPFLI.
*WRITE: / TA_SPFLI-CONNID .
*ENDLOOP.
*ENDSELECT.
*ULINE.
*WRITE / '将内表数据移至工作区'.
*ULINE.
*LOOP AT TA_SPFLI INTO A_SPFLI.
*WRITE: / TA_SPFLI-CONNID .
*ENDLOOP.
*---------------使用PACKAGE SIZE读取数据----------------------
*DATA: WA_SPFLI TYPE  TABLE OF SPFLI WITH HEADER LINE.
*SELECT * INTO TABLE WA_SPFLI FROM SPFLI PACKAGE SIZE 5.
*LOOP AT WA_SPFLI.
*WRITE: / WA_SPFLI-CONNID , WA_SPFLI-CARRID,WA_SPFLI-CITYFROM,
*         WA_SPFLI-CITYTO.
*ENDLOOP.
*ENDSELECT.
*---------------内连接和外连接----------------------

*DATA:BEGIN OF ARCD,
*     ID        TYPE YTCITY1-YCT_ID,
*     NAME      TYPE YTCITY1-YCT_NAME,
*     COUNTRY   TYPE YTCITY1-YCT_COUNTRY,
*     CTID      TYPE YTSCHOOL-YCT_ID,
*     SHID      TYPE YTSCHOOL-YSH_ID,
*     SHNAME    TYPE YTSCHOOL-YSH_NAME,
*     END OF ARCD.
*DATA: ARCD1 LIKE ARCD.
*SELECT YTCITY1~YCT_ID YTCITY1~YCT_NAME YTSCHOOL~YSH_NAME  YTSCHOOL~YSH_ID  INTO ARCD1 FROM YTCITY1  INNER JOIN YTSCHOOL ON YTCITY1~YCT_ID = YTSCHOOL~YCT_ID .
*WRITE: / ARCD1-ID,ARCD1-NAME,ARCD1-SHNAME,ARCD1-SHID.
*ENDSELECT.
*----------------标准列表输出----------------------
*TABLES SPFLI .
*SKIP.
*ULINE AT  /(91) .
*FORMAT COLOR COL_HEADING.
*WRITE : / SY-VLINE,(15)'航线承运人',SY-VLINE,(15)'航班连接',
*          SY-VLINE,(15)'国家代码',SY-VLINE,(15)'起飞城市',
*          SY-VLINE,(15)'起飞机场',sy-vline.
*ULINE AT  /(91) .
*SELECT * FROM SPFLI.
*IF SPFLI-CARRID = 'LH'.
*FORMAT COLOR COL_TOTAL.
*ELSE.
*FORMAT COLOR OFF .
*ENDIF.
*WRITE : / SY-VLINE,(15) SPFLI-CARRID,SY-VLINE,(15) SPFLI-CONNID,
*          SY-VLINE,(15) SPFLI-COUNTRYTO,SY-VLINE,(15) SPFLI-CITYFROM,
*          SY-VLINE,(15) SPFLI-AIRPFROM,SY-VLINE.
*ULINE AT /(91).
*ENDSELECT.
*---------------报表常用函数----------------------
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)'函数代号',SY-VLINE ,(6)'含义', SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前页号', SY-VLINE,SY-PAGNO, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前日期', SY-VLINE,SY-DATUM, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前报表长度', SY-VLINE,SY-LINSZ, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前报表宽度', SY-VLINE,SY-LINCT, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 执行状态', SY-VLINE,SY-SUBRC, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 用户名', SY-VLINE,SY-UNAME, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前时间', SY-VLINE,SY-UZEIT, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前T-CODE', SY-VLINE,SY-TCODE, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 列表索引页', SY-VLINE,SY-LSIND, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 列表索引', SY-VLINE,SY-LISTI, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 绝对列表选中的行号', SY-VLINE,SY-LILLI, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 屏幕上的行', SY-VLINE,SY-CUROW, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 光标列', SY-VLINE,SY-CUCOL, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 列表的当前页', SY-VLINE,SY-CPAGE, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 真实行号', SY-VLINE,SY-STARO, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 选择行的内容', SY-VLINE,SY-LISEL, SY-VLINE .
*ULINE AT /(28).
*WRITE: / SY-VLINE, (15)' 当前行', SY-VLINE,SY-LINNO, SY-VLINE .
*ULINE AT /(28).
*------------------输出无条件换页-------------
*WRITE: / NEW-PAGE LINE-COUNT20.
*WRITE: / NEW-PAGE LINE-COUNT 20 .
*------------------列表颜色-------------------
*FORMAT COLOR COL_TOTAL.
*WRITE  'HELLO WORLD'.
*WRITE  'WELCOME!'.
*FORMAT COLOR COL_TOTAL INVERSE ON .
*WRITE /  'HELLO WORLD'.
*WRITE  'WELCOME!'.
*------------------输出热点-------------------
*START-OF-SELECTION.
*WRITE '请按'.
*WRITE '热点'.
*AT LINE-SELECTION.
*WRITE 'WELCOME'.
*------------------交互列表-------------------
*START-OF-SELECTION.
*WRITE: '初始列表,SY-LSIND ', SY-LSIND.
*AT LINE-SELECTION.
*IF SY-LSIND = 1.
*   WRITE : '第二列,SY-LSIND',SY-LSIND.
*ENDIF.
*------------------为列表定义工具条与菜单------
*START-OF-SELECTION.
*SET PF-STATUS 'STA1'.
*WRITE '测试工具条按钮'.
*AT USER-COMMAND.
*CASE SY-UCOMM.
*WHEN 'OWNSEL'.
*IF SY-LSIND = 1.
*SET PF-STATUS 'STA6'.
*WINDOW STARTING AT 15 10
*       ENDING   AT 15 10.
*ENDIF.
*WRITE '已选择'.
*WHEN 'LEAVE'.
*LEAVE PROGRAM.
*ENDCASE.
*-----------------隐藏字段技术--------------
*TABLES: SPFLI , SFLIGHT.
*START-OF-SELECTION.
*SKIP.
*ULINE AT  /(91) .
**FORMAT COLOR COL_HEADING.
*WRITE : / SY-VLINE,(15) '航线承运人',SY-VLINE,(15) '航班连接',
*          SY-VLINE,(15) '国家代码',SY-VLINE,(15) '起飞城市',
*          SY-VLINE,(15) '起飞机场',sy-vline.
*ULINE AT  /(91) .
*SELECT * FROM SPFLI.
**IF SPFLI-CARRID = 'LH'.
**FORMAT COLOR COL_TOTAL.
**ELSE.
**FORMAT COLOR OFF .
**ENDIF.
*WRITE : / SY-VLINE,(15) SPFLI-CARRID,
*          SY-VLINE,(15) SPFLI-CONNID,
*          SY-VLINE,(15) SPFLI-COUNTRYTO,
*          SY-VLINE,(15) SPFLI-CITYFROM,
*          SY-VLINE,(15) SPFLI-AIRPFROM,SY-VLINE.
**隐藏字段是指列表中存在数据但不输出,可以读到该字段。
*HIDE:SPFLI-CARRID,SPFLI-CONNID.
*ULINE AT /(91).
*ENDSELECT.
*AT LINE-SELECTION .
*IF SY-LSIND = 1.
*SELECT * FROM SFLIGHT WHERE  CARRID = SPFLI-CARRID AND CONNID = SPFLI-CONNID.
*WRITE: / SFLIGHT-CARRID , SFLIGHT-CONNID,SFLIGHT-FLDATE,SFLIGHT-PRICE.
*ENDSELECT.
*ENDIF.
*-----------------使用HIDE技术从从列表中读取行--------------
*TABLES: SPFLI , SFLIGHT.
*DATA: SELA(1) TYPE C,
*      NUM1    TYPE I.
*START-OF-SELECTION.
*SKIP.
*ULINE AT  /(95) .
*WRITE : / SY-VLINE, ' ' ,
*          SY-VLINE,(15) '航线承运人',
*          SY-VLINE,(15) '航班连接',
*          SY-VLINE,(15) '国家代码',
*          SY-VLINE,(15) '起飞城市',
*          SY-VLINE,(15) '起飞机场',sy-vline.
*ULINE AT  /(95) .
*SELECT * FROM SPFLI.
*WRITE : / SY-VLINE, SELA AS  CHECKBOX ,
*          SY-VLINE,(15) SPFLI-CARRID,
*          SY-VLINE,(15) SPFLI-CONNID,
*          SY-VLINE,(15) SPFLI-COUNTRYTO,
*          SY-VLINE,(15) SPFLI-CITYFROM,
*          SY-VLINE,(15) SPFLI-AIRPFROM,SY-VLINE.
**隐藏字段是指列表中存在数据但不输出,可以读到该字段。
*  HIDE:SPFLI-CARRID,SPFLI-CONNID,SPFLI-COUNTRYTO,SPFLI-CITYFROM,SPFLI-AIRPFROM.
*  ULINE AT /(95).
*  HIDE SELA.
*ENDSELECT.
*
*END-OF-SELECTION.
*NUM1 = SY-LSIND - 1.
*
*AT LINE-SELECTION .
*IF SY-LSIND = 1.
*  DO NUM1 TIMES.
*  READ LINE SY-INDEX  FIELD VALUE SELA.
*    IF SELA = 'X' .
*       WRITE: / SPFLI-CARRID,SPFLI-CONNID,SPFLI-COUNTRYTO,SPFLI-CITYFROM,SPFLI-AIRPFROM.
*    ENDIF.
*  ENDDO.
*ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值