Abap/4制作报表(6)
来源:互联网 发布:浙江每日互动网络 编辑:程序博客网 时间:2024/05/18 19:20
*&---------------------------------------------------------------------*
*& Report Z_CPT6_6 *
*& *
*&---------------------------------------------------------------------*
*& 标准列表 *
*& *
*&---------------------------------------------------------------------*
REPORT Z_CPT6_6 .
INCLUDE <icon>.
TYPES:BEGIN OF linetype,
cityfrom LIKE spfli-cityfrom,
cityto LIKE spfli-cityto,
carrid LIKE spfli-carrid,
connid LIKE spfli-connid,
countryfr LIKE spfli-countryfr,
countryto LIKE spfli-countryto,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
currency LIKE sflight-currency,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
END OF linetype.
CONSTANTS:pos_cl TYPE i VALUE 6,
pos_c3 TYPE i VALUE 30,
pos_c4 TYPE i VALUE 58,
pos_c5 TYPE i VALUE 68,
line_size TYPE i VALUE 100.
CONSTANTS mark VALUE 'X'.
*定义内表
DATA:it_flights TYPE STANDARD TABLE OF linetype,
wa_flights TYPE linetype.
*定义选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK conn WITH FRAME TITLE text-tl1.
SELECT-OPTIONS:so_car FOR wa_flights-carrid,
so_con FOR wa_flights-connid.
SELECTION-SCREEN END OF BLOCK conn.
SELECTION-SCREEN BEGIN OF BLOCK flight WITH FRAME TITLE text-tl2.
* 如果加了关键字 NO-EXTENSION就会隐藏扩展项
SELECT-OPTIONS so_fdt FOR wa_flights-fldate NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK flight.
SELECTION-SCREEN BEGIN OF BLOCK param
WITH FRAME TITLE text-tl3.
SELECTION-SCREEN BEGIN OF BLOCK radio WITH FRAME.
PARAMETERS:all RADIOBUTTON GROUP rbg1,
national RADIOBUTTON GROUP rbg1,
internat RADIOBUTTON GROUP rbg1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK radio.
PARAMETERS country LIKE wa_flights-countryfr.
SELECTION-SCREEN END OF BLOCK param.
*处理页眉
TOP-OF-PAGE.
*Title
FORMAT COLOR COL_HEADING INTENSIFIED ON.
ULINE.
WRITE: / sy-vline,
'Flight data'(001),
AT line_size sy-vline.
ULINE.
*Column header
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: sy-vline,'Departure location'(004),AT line_size sy-vline.
WRITE: sy-vline,'Arrival location'(004),AT line_size sy-vline.
WRITE: sy-vline,AT pos_cl 'Flight'(002).
*Fix left scroll boundary
SET LEFT SCROLL-BOUNDARY.
WRITE:'Date'(003),
AT pos_c3 'Price'(006),
AT pos_c4 'Max.'(008),
AT pos_c5 'Occ.'(009),
AT line_size sy-vline.
ULINE.
*初始事件
INITIALIZATION.
MOVE:'AA' TO so_car-low,
'QF' TO so_car-high,
'BT' TO so_car-option,
'I' TO so_car-sign.
APPEND so_car.
CLEAR so_car.
MOVE: 'AZ' TO so_car-low,
'EQ' TO so_car-option,
'E' TO so_car-sign.
APPEND so_car.
CLEAR so_car.
*PAI事件,检查输入区域param是否有输入问题
AT SELECTION-SCREEN ON BLOCK param.
CHECK national = 'X' AND country = space.
MESSAGE e003(bc405).
*start-of-selection事件
START-OF-SELECTION.
CASE mark.
WHEN all.
SELECT * FROM spfli INNER JOIN sflight
ON spfli~carrid = sflight~carrid
AND spfli~connid = sflight~connid
INTO CORRESPONDING FIELDS OF TABLE it_flights
WHERE spfli~carrid IN so_car
AND spfli~connid IN so_con
AND sflight~fldate IN so_fdt
AND spfli~countryfr = spfli~countryto
AND spfli~countryfr = country.
WHEN internat.
SELECT * FROM spfli INNER JOIN sflight
ON spfli~carrid = sflight~carrid
AND spfli~connid = sflight~connid
INTO CORRESPONDING FIELDS OF TABLE it_flights
WHERE spfli~carrid IN so_car
AND spfli~connid IN so_con
AND sflight~fldate IN so_fdt
AND spfli~countryfr NE spfli~countryto.
ENDCASE.
*END-OF-SELECTION事件
END-OF-SELECTION.
SORT it_flights BY cityfrom cityto carrid connid.
PERFORM data_output.
*子程序
FORM data_output.
LOOP AT it_flights INTO wa_flights.
AT NEW cityfrom.
NEW-PAGE.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
WRITE: / sy-vline,wa_flights-cityfrom,
AT line_size sy-vline.
FORMAT RESET.
ENDAT.
AT NEW cityto.
FORMAT COLOR COL_GROUP INTENSIFIED OFF.
WRITE: / sy-vline,wa_flights-cityto,
AT line_size sy-vline.
FORMAT RESET.
ENDAT.
FORMAT COLOR COL_KEY INTENSIFIED ON.
IF wa_flights-countryfr EQ wa_flights-countryto.
WRITE: / sy-vline,icon_space AS ICON CENTERED.
ELSE.
WRITE: / sy-vline,icon_bw_gis AS ICON CENTERED.
ENDIF.
WRITE: wa_flights-carrid,
wa_flights-connid.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: wa_flights-fldate,
wa_flights-price CURRENCY wa_flights-currency,
wa_flights-currency,
wa_flights-seatsmax,
wa_flights-seatsocc,
AT line_size sy-vline.
FORMAT RESET.
AT END OF connid.
SUM.
FORMAT COLOR COL_TOTAL.
WRITE: / sy-vline,
'Total'(007),
wa_flights-seatsmax UNDER wa_flights-seatsmax,
wa_flights-seatsocc UNDER wa_flights-seatsocc,
AT line_size sy-vline.
FORMAT RESET.
ENDAT.
AT END OF cityfrom.
ULINE.
ENDAT.
ENDLOOP.
ENDFORM.
- Abap/4制作报表(6)
- Abap/4制作报表(4)
- Abap/4制作报表(1)
- Abap/4制作报表(2)
- Abap/4制作报表(3)
- Abap/4制作报表(5)
- Abap/4制作报表(7)
- Abap/4制作报表(8)
- Abap/4制作报表(9)
- Abap/4制作报表(10)
- Abap/4制作报表(11)
- Abap/4制作报表(12)
- Abap/4制作报表(13)
- ABAP/4 报表编程模板
- ABAP/4 报表编程模板
- 设计ABAP/4 Query报表
- 如何设计ABAP/4 Query报表
- 如何设计ABAP/4 Query报表
- jenkins(一) 简介
- 关于MFC技术的一点感悟
- Abap/4制作报表(5)
- hiberante面试题 --- hibernate缓存机制详解
- How browsers work–Behind the scenes of modern web browsers (前端必读)
- Abap/4制作报表(6)
- android 服务的应用,在Activity中实现背景音乐播放
- 关于托管与非托管
- 瀑布流
- MCS-51特殊功能寄存器(SPR)的C51定义 .
- 清空、重设input框
- Abap/4制作报表(7)
- Abap/4制作报表(8)
- C#实现Linux登录和文件传输(Routrek.granados和Renci.SshNet的ssh、scp封装)