1. Report List的输出定义

* ...NO STANDARD PAGE HEADING: 输出的报表不包含表头;

* ...LINE-SIZE col : 输出的报表不包含表头;

* ...LINE-COUNT (m) :设置每页行数及每页间空行数,如LINE-COUNT 18(2)表示每页18行,每页之前空两行;

* ...MESSAGE-ID mid:在程序中应用标准的Message类;

* ...DEFINING DATABASE idb:定义程序中所使用逻辑数据库。

2.图标符合的输出

*  WRITE ... AS  CHECKBOX :输出一个CHECKBOX .

DATA:MARKFIELD(1) TYPE C VALUE 'X'.

WRITE MARKFIELD AS CHECKBOX."默认选中 WRITE MARKFIELD AS CHECKBOX INPUT OFF."默认无法选择 MARKFIELD = SPACE."重置为空
WRITE MARKFIELD AS CHECKBOX."默认未选 WRITE MARKFIELD AS CHECKBOX INPUT OFF."默认无法选择

 WRITE ...AS SYMBOL: 输出符号,需定义包含程序INCLUDE <SYMBOL>,或 INCLUDE <LIST>.

INCLUDE <SYMBOL>. WRITE:/ SYM_RIGHT_HAND AS SYMBOL,'Hello Sanlly',SYM_LEFT_HAND AS SYMBOL.

*   WRITE ... AS ICON :输出图标,需定义包含程序,具体图标可通过T/C:ICON查看,但是程序中需要定义INCLUDE<ICON>. 或INCLUDE<LIST>.

INCLUDE <ICON>. WRITE:/ ICON_CHECKED AS ICON,'已检查OK'. WRITE:/ ICON_INCOMPLETE AS ICON,'未完成'. WRITE:/ ICON_GREEN_LIGHT AS ICON,'开始'.

3.报表输出格式控制

3.1 報表的制作

3.1.1 线条包括横线及竖线,横线的绘制语法可以指定具体位置及长度,默认当前屏幕宽度。

横线绘制语法:ULINE AT POS 或WRITE POS SY-ULINE.

ULINE AT 3(10).

SKIP.
WRITE AT 3(10) SY-ULINE."两者输出的效果是一样的,都是横线.

ULINE AT 3(10).
SET BLANK LINES ON.
WRITE AT 1(20) SY-ULINE.

3.1.2 竖线的输出固定为一个字符高度,Report List中字符大小是固定的。

竖线绘制语法:WRITE POS SY-ULINE.

REPORT  Y001_ARTYU NO STANDARD PAGE HEADING."不显示标题

DO 3 TIMES.
  ULINE AT 1(60).
  WRITE: /1 SY-VLINE,60 SY-VLINE.  "位置1和位置60绘制竖线
  ULINE AT /1(60).
ENDDO."绘制一个一列三行的报表

3.2 控制输出格式

3.2.1

SKIP :用于输出空行.

SKIP n. :从上行开始创建N个空行.

SKIP TO LINE n. : 在第n行创建一个空行.

WRITE 'LINE 1'.
SKIP 5."从上行开始创建5个空行.
WRITE 'LINE 5'.
SKIP TO LINE 8."在第8行创建一个空行.

3.2.2

NEW-LINE : 用于在Report List输出中产生换行,但不会产生空行。

3.2.3

...NO-SCROLING : 锁定其下一行所输出值,不会随屏幕左右移动,

该定义只对语法的下一行有效,主要应用于报表输出中一些关键栏位的冻结功能.

3.2.4

* ...SCROLLING :其下一行所输出值会随屏幕左右移动.

NEW-PAGE LINE-SIZE 255.
WRITE:/ 'This line will be moved.'.
NEW-LINE NO-SCROLLING.
WRITE:/ 'This line will not be moved.'."该行输出值锁定,不会随屏幕左右移动
WRITE:/ 'This line will be moved.'.

移动鼠标时,中间一行被锁定,不会移动。

3.2.5

* ...NEW-PAGE : 对输出报表时进行分页.

* ...NO-TITLE : 新的分页中不会有标题、日期、页码。

* ...NO-HEADING : 在该报表中继承首页的标题、日期、页码。

* ...NO-HEADING : 在该报表的新分页中不产生表头。

* ...WITH-HEADING : 输出的新页中继承首页的Column heading.

* ...LINE-COUNT lin : 设置新页的行数。

* ...LINE-SIZE col : 设置新页的宽度。

3.2.6

* TOP-OF-PAGE :该语法用于定 义动态页脚,要触发该事件,

需要在Report语句中的LINE-COUNT附加项中为其预留输出行数。

页脚事件块中的输出始终出现在页面下方.

REPORT  Y001 LINE-SIZE 30
             LINE-COUNT 10(5)"定义每页行数
             NO STANDARD PAGE HEADING."不显示表头

START-OF-SELECTION.
  WRITE:/ 'Name:',10 'TOM'.
  WRITE:/ 'Age:',30.
  WRITE:/ 'Address:','Fu Jian'.

NEW-PAGE NO-HEADING NO-TITLE.
  WRITE:/ 'Name:',10 'MARY'.
  WRITE:/ 'Age:',28.
  WRITE:/ 'Address:','Shen Zhen'.

SET BLANK LINES ON.

TOP-OF-PAGE.
  WRITE:/ 'Curr Page:',SYST-PAGNO.
  ULINE.

END-OF-PAGE.
  ULINE.
  WRITE:/ 'This the end!'.

 

4. 获取输出屏幕中的数据

当双击Report List 所输出的某行数据时,触发AT LINE-SELECTION事件,而HIDE定义使输出的内容和当前选择行相关联,会自动获取该行内容。

REPORT  Y001.
DATA TEXT(20).

START-OF-SELECTION.
  PERFORM WRITE_AND_HIDE.

AT LINE-SELECTION.
  CASE TEXT.
    WHEN 'LINE1'.
      WRITE:'You had select the LINE1'.
    WHEN 'LINE2'.
      WRITE:'You had select the LINE2'.
    WHEN OTHERS.
      WRITE:'The other line'.
  ENDCASE.
  CLEAR TEXT.

*&---------------------------------------------------------------------*
*&      Form  WRITE_AND_HIDE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM WRITE_AND_HIDE.
  TEXT = 'LINE1'.
  WRITE / TEXT.
  HIDE TEXT.

TEXT = 'LINE2'.
  WRITE / TEXT.
  HIDE TEXT.

TEXT = 'LINE3'.
  WRITE / TEXT.
  HIDE TEXT.
ENDFORM.                    "WRITE_AND_HIDE

选中LINE1,点击望眼镜

选中LINE2,点击望眼镜

选中LINE3,点击望眼镜

 5. 列表程序中的系统参数

在列表输出过程中,系统将填充下列相关系统字段,可以在程序中直接调用。

* SY-LINCT : REPORT 语句中设定的LINE-COUNT.

* SY-LINSZ : REPORT 语句中设定的LINE-SIZE.

* SY-SROWS: 当前窗口中的列表行数.

* SY-SCOLS: 当前窗口中的列表栏目数.

* SY-PAGNO: 当前页的页码.

* SY-LINNO: 当前输出页面中的选定行序号.

* SY-COLNO: 当前输出页面中的选定列序号.

6.输出列表颜色的设定

使用FORMAT语句可以实现其他一些屏幕格式化功能,例如调整输出颜色等。

FORMAT <option1> [ON|OFF]  <option2> [ON|OFF]........

一旦设定,FORMAT语句中设置的格式将适用于所有后续输出语句,直到再资使用OFF选项关闭,其具体选项列表如下:

* COLOR n [ON|OFF] :设定列表行的背景色。

* INTENSIFIED [ON|OFF] :设定是否将字段强化输出。

* INVERSE [ON|OFF] :设定是否将背景即文字颜色反转输出。

* HOTSPOT [ON|OFF] :将光标以手型显示,单击触发行选择事件。

* INPUT [ON|OFF] :设定输入字段,允许用户输入。

* RESET:恢复上述的所有 设定默认值。

COLOR类型及描述
 No.  COLOR  DESC
 0  COL_BACKGROUND  Background(GUI-specific)
 1  COL_HEADING  Headers(grayish   blue)
 2  COL_NORMAL  List   body(bright gray)
 3  COL_TOTAL  Totals(yellow)
 4  COL_KEY  Key   columns(bluish green)
 5  COL_POSITIVE  Positive   threshold value(green)
 6  COL_NEGATIVE  Negative   threshold value(red)
 7  COL_GROUP  Control   levels(violet)

FORMAT 语句中的全部选项都可用做WRITE语句的格式化选项,如下面的两条语句,输出效果一样

WRITE:/ 'HELLO SANLLY ' COLOR 1 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 2 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 3 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 4 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 5 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 6 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 7 INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR COL_HEADING INTENSIFIED ON.
WRITE:/ 'HELLO SANLLY ' COLOR 1 INPUT INTENSIFIED ON.

FORMAT COLOR 1 INPUT INTENSIFIED ON.
WRITE 'COLOR LINE 1'.
WRITE: / 'COLOR LINE 2'.
WRITE: / 'COLOR LINE 3'.
*FORMAT COLOR 1 OFF.
FORMAT RESET.
WRITE: / 'COLOR LINE 4'.

7.实现Report的格式化分页输出

例如下面例子:创建一ICON数据查询程序,将ICON的名称及相关图标从系统抓出。

控制报表每页显示数量最多不超过10行.

REPORT  Y001_ARTYU NO STANDARD PAGE HEADING.
DATA:PAGE_LINE TYPE I VALUE 10, "每頁行數
     ICONTAB LIKE STANDARD TABLE OF V_ICON WITH HEADER LINE,"參照VIEW建內表
     NUM TYPE I.

*每次分页时绘制表头
TOP-OF-PAGE.
  WRITE: /2 'Pages:',SYST-PAGNO RIGHT-JUSTIFIED.
  ULINE AT /1(80).
  WRITE: /1(1) SY-VLINE,'ID' COLOR 1,
          7(1) SY-VLINE ,'ICON' COLOR 1,
          15(1) SY-VLINE,'NAME' COLOR 1,
          41(1) SY-VLINE,'SHORTTEXT' COLOR 1,
          80(1) SY-VLINE.
  ULINE AT /1(80).

START-OF-SELECTION. "屏幕开始时查询数据...
  SELECT * FROM ICON INNER JOIN ICONT ON ICON~ID = ICONT~ID INTO
 CORRESPONDING FIELDS OF TABLE ICONTAB WHERE ICONT~LANGU = SY-LANGU.

LOOP AT ICONTAB.
    WRITE: /1(1) SY-VLINE,SY-TABIX LEFT-JUSTIFIED,"LEFT-JUSTIFIED:左对齐
            7(1) SY-VLINE,ICONTAB-ID AS ICON LEFT-JUSTIFIED,"RIGHT_JUSTIFIED:右对象,CENTERED:居中对齐。
            15(1) SY-VLINE,ICONTAB-NAME,
            41(1) SY-VLINE,ICONTAB-SHORTTEXT,
            80(1) SY-VLINE.

ULINE /1(80).
    NUM = SY-TABIX MOD PAGE_LINE.
    IF NUM = 0.
      NEW-PAGE.  "新的一页
    ENDIF.
  ENDLOOP.  

Report List 报表开发的更多相关文章

  1. Grid++Report 报表开发工具

      Grid++Report 报表开发工具   版本 更新日期 大小 下载 说明 Grid++Repoert6.0.0.6 2015/08/08 16.0M [下载] 锐浪报表工具最新版本,新增功能说 ...

  2. C# WinForm开发系列 - Crystal Report水晶报表

    转自:ttp://www.cnblogs.com/peterzb/archive/2009/07/11/1521325.html 水晶报表(Crystal Report)是业内最专业.功能最强的报表系 ...

  3. 利用JasperReport+iReport进行Web报表开发

    用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...

  4. 使用JasperReport+iReport进行Web报表开发

    使用JasperReport+iReport进行Web报表开发 前言 在实际工程中非常,报告是其中很重要的一部分,结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥有复杂表头的.多维 ...

  5. JasperReport报表开发(一)--原理介绍

    1. JasperReport介绍 JasperReport 是一个开源的Java报表引擎,它不像其他的报表工具,例如Crystal报表是基于Java的,没有自己的表达式语法.Jasper Repor ...

  6. AMDP + XSLX Workbench 报表开发模式

    本文介绍了我和同事通过使用AMDP + XSLX Workbench缩短报表开发周期.分离数据查询处理逻辑和前端展示工作的经验.欢迎讨论. 前言 最近接到了一套人力资源报表的开发需求,需要以EXCEL ...

  7. AMDP + XLSX Workbench 报表开发模式

    本文介绍了我和同事通过使用AMDP + XLSX Workbench缩短报表开发周期.分离数据查询处理逻辑和前端展示工作的经验.欢迎讨论. 前言 最近接到了一套人力资源报表的开发需求,需要以EXCEL ...

  8. ActiveReport系列报表开发随笔收集

    转自:博客园 http://www.cnblogs.com/dahuzizyd/archive/2007/04/11/ActiveReport_All.html 使用ActiveReport for ...

  9. ReportViewer,RDLC 报表开发之个性化样式

    原文:ReportViewer,RDLC 报表开发之个性化样式 报表开发中,客户对样式提出了要求: 1.工具栏上显示每页条数 2.只导出Excel,不需要下拉菜单. 3.报表上显示的图表,分页时,每页 ...

随机推荐

  1. 架构师成长之路5.1-Saltstack安装及入门

    点击架构师成长之路 架构师成长之路5.1-Saltstack安装及入门 (安装.配置.启动) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需 ...

  2. 小程序UI设计(3)-符合视觉规范-列表视觉规范

    上一篇我们介绍了字体规范,此贴介绍一下在列表中如何组合使用.下图是微信官方的要求   在工具中通过拖拽组件可以制作出一样的效果拖拽一个WViewRow.这个组件是小程序的view,flex-direc ...

  3. Python time、datetime、os、random、sys、hashlib、json、shutil、logging、paramiko、subprocess、ConfigParser、xml、shelve模块的使用

    文章目录: 1. time & datetime模块 2. os模块 3. random模块 4. sys模块 5. hashlib模块 6. json模块 7. shutil模块 8. lo ...

  4. MyEclipse开发秘籍——使用DevStyle Icon Designer(一)

    [MyEclipse CI 2019.4.0安装包下载] DevStyle主题包括一个Icon Designer,允许您自定义图标.Icon Designer包含在DevStyle主题中,可作为Ecl ...

  5. 初识linux(简单命令)

    之前一直搞不懂,为什么全是命令行的linux系统这么多公司都在用,当你看不懂那一行行命令时你一定会和我一样觉得头大.但当你学习了命令再结合桌面版觉得linux还是挺不错的

  6. JAVA笔记2-面向对象与内存解析

    1.java中的变量先声明.再赋值.再使用.(局部变量必须初始化,成员变量默认初始化) 2.基本类型之外的所有类型都是引用类型.基本类型占一块内存,引用类型占两块(所有new出来的东西装在堆内存,因为 ...

  7. Python3数据结构汇总

    字符 列表 元组 集合 字典 能否被索引或切片 能 能 能 否 否 元素能否被编辑 否 能 否 能 能 增 1.list.append(x):把一个元素添加到列表的结尾: 2.list.insert( ...

  8. Linux命令-文本编辑(二)

    Linux命令-文本编辑(二) Linux mtype命令 mtype为mtools工具指令,模拟MS-DOS的type指令,可显示MS-DOS文件的内容. 语法: mtype [-st][文件] 参 ...

  9. CodeForces451E Devu and Flowers

    题目链接 问题分析 没有想到母函数的做法-- 其实直接看题思路挺简单的.发现如果每种花都有无限多的话,问题变得十分简单,答案就是\(s+n-1\choose n - 1\).然后发现\(n\)只有\( ...

  10. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)

    题目链接 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1920 (luogu) https://www.luogu.org/prob ...