二维码

[report] 用write输出带有表头的格式化数据报表

Twilight发表于 2014-02-22 18:59Twilight 最后回复于 2014-02-22 18:59 [复制链接] 5678 0

作业1 建立程序ZBC2_<YN>_HM1.
1 进入ABAP数据字典,查看表sflight的表结构
2 建立内表it_sflight和工作区wa_sflight,数据类型与sflight相同
3 建立选择屏幕,其中carrid字段,要求用户选择一项,connid和fldate字段,用户可以选定一定范围的数据
4 根据用户的选择,输出数据,
要求输出的字段:carrid connid fldate price currency planetype seatsmax seatsocc
注意,对于金额类型的字段,输出时一般还要输出它的币种。
此外,不同币种输出的格式还不尽相同,在用WRITE语句输出金额字段时需要相应的调整语句。具体语法通过系统帮助查看。
5 将输出的数据格式化,要求有表头,每个单元格有横线和竖线区分。表头的颜色与数据的颜色不一样,每行数据的主键字段与普通字段颜色不一样。

选择屏幕:
选择屏幕.jpg
执行效果:
输出格式化数据.jpg

主程序代码:
  1. REPORT  ZLXG_HM1 LINE-SIZE 107.
  2. DATA:WA_SFLIGHT TYPE SFLIGHT.
  3. DATA:IT_SFLIGHT TYPE STANDARD TABLE OF SFLIGHT.

  4. PARAMETERS:PA_CARR TYPE SFLIGHT-CARRID.
  5. SELECT-OPTIONS:SO_CONN FOR WA_SFLIGHT-CONNID,
  6.                SO_FLDA FOR WA_SFLIGHT-FLDATE.

  7. SELECT *
  8.   FROM SFLIGHT
  9.   INTO CORRESPONDING FIELDS OF TABLE IT_SFLIGHT
  10.   WHERE CARRID = PA_CARR
  11.   AND CONNID IN SO_CONN
  12.   AND FLDATE IN SO_FLDA.

  13. FORMAT COLOR COL_HEADING. "头部显示COL_HEADING颜色
  14. ULINE.
  15. WRITE:/ SY-VLINE, AT 2(10) 'carrid'(001) ,"SY-VLINE:竖线  2(10):在第2个位置 输出长度为10的字符串
  16.         SY-VLINE, AT 14(10)'connid'(002),
  17.         SY-VLINE, AT 26(20)'fldate'(003),
  18.         SY-VLINE, AT 48(10)'price'(004),
  19.         SY-VLINE, AT 60(10)'currency'(005),
  20.         SY-VLINE, AT 72(10)'planetype'(006),
  21.         SY-VLINE, AT 84(10)'seatsmax'(007),
  22.         SY-VLINE, AT 96(10)'seatsocc'(008),
  23.         SY-VLINE.
  24. ULINE.
  25. FORMAT RESET."颜色重置结束

  26. LOOP AT IT_SFLIGHT INTO WA_SFLIGHT.
  27. WRITE:/ SY-VLINE, AT 2(10)  WA_SFLIGHT-carrid COLOR COL_KEY,
  28.         SY-VLINE, AT 14(10) WA_SFLIGHT-connid COLOR COL_KEY,
  29.         SY-VLINE, AT 26(20) WA_SFLIGHT-fldate COLOR COL_KEY,
  30.         SY-VLINE, AT 48(10) WA_SFLIGHT-price CURRENCY WA_SFLIGHT-currency,
  31.         SY-VLINE, AT 60(10) WA_SFLIGHT-currency,
  32.         SY-VLINE, AT 72(10) WA_SFLIGHT-planetype,
  33.         SY-VLINE, AT 84(10) WA_SFLIGHT-seatsmax,
  34.         SY-VLINE, AT 96(10) WA_SFLIGHT-seatsocc,
  35.         SY-VLINE.
  36.         ULINE.
  37. ENDLOOP.
复制代码
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表