Report List 报表开发
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 报表开发的更多相关文章
- Grid++Report 报表开发工具
Grid++Report 报表开发工具 版本 更新日期 大小 下载 说明 Grid++Repoert6.0.0.6 2015/08/08 16.0M [下载] 锐浪报表工具最新版本,新增功能说 ...
- C# WinForm开发系列 - Crystal Report水晶报表
转自:ttp://www.cnblogs.com/peterzb/archive/2009/07/11/1521325.html 水晶报表(Crystal Report)是业内最专业.功能最强的报表系 ...
- 利用JasperReport+iReport进行Web报表开发
用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...
- 使用JasperReport+iReport进行Web报表开发
使用JasperReport+iReport进行Web报表开发 前言 在实际工程中非常,报告是其中很重要的一部分,结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥有复杂表头的.多维 ...
- JasperReport报表开发(一)--原理介绍
1. JasperReport介绍 JasperReport 是一个开源的Java报表引擎,它不像其他的报表工具,例如Crystal报表是基于Java的,没有自己的表达式语法.Jasper Repor ...
- AMDP + XSLX Workbench 报表开发模式
本文介绍了我和同事通过使用AMDP + XSLX Workbench缩短报表开发周期.分离数据查询处理逻辑和前端展示工作的经验.欢迎讨论. 前言 最近接到了一套人力资源报表的开发需求,需要以EXCEL ...
- AMDP + XLSX Workbench 报表开发模式
本文介绍了我和同事通过使用AMDP + XLSX Workbench缩短报表开发周期.分离数据查询处理逻辑和前端展示工作的经验.欢迎讨论. 前言 最近接到了一套人力资源报表的开发需求,需要以EXCEL ...
- ActiveReport系列报表开发随笔收集
转自:博客园 http://www.cnblogs.com/dahuzizyd/archive/2007/04/11/ActiveReport_All.html 使用ActiveReport for ...
- ReportViewer,RDLC 报表开发之个性化样式
原文:ReportViewer,RDLC 报表开发之个性化样式 报表开发中,客户对样式提出了要求: 1.工具栏上显示每页条数 2.只导出Excel,不需要下拉菜单. 3.报表上显示的图表,分页时,每页 ...
随机推荐
- 并查集+启发式合并+LCA思想 || 冷战 || BZOJ 4668
题面:bzoj炸了,以后再补发 题解: 并查集,然后对于每个点记录它与父亲节点联通的时刻 tim ,答案显然是 u 到 v 的路径上最大的 tim 值.启发式合并,把 size 小的子树往大的上并,可 ...
- WebView net::ERR_CLEARTEXT_NOT_PERMITTED&&net::ERR_INTERNET_DISCONNECTED
参照博客:https://blog.csdn.net/qq_33721320/article/details/84400825 测试Android 中WebView功能时,发现了这个问题: 解决的方式 ...
- Liunx centos 系统 修改hostname
1 centos6下修改hostname [root@centos6 ~]$ hostname # 查看当前的hostnmae centos6.magedu.com [root@centos6 ~]$ ...
- 各种环境下搭建ruby on rails开发环境
win10上搭建raby on rails环境: 步骤如下 1.安装ruby (我选择的版本是ruby 2.2.3p173) 2.安装rails gem 在这之前建议先把gem的源换成淘宝的源,速度快 ...
- std::setw(size)与std::setfill(char)
头文件:#include <iostream>#include <iomanip>using namespace std; 功能: std::setw :需要填充多少个字符, ...
- yum安装nginx,配置资源访问出现403Forbidden问题
使用yum安装nginx后除了nginx自带页面其他配置页面都是403forbidden问题. 暂时的解决办法是,修该nginx配置文件中的user为root , 然后关闭seliunx或者添加ngi ...
- 窗体操作:ShowWindow(SW_HIDE)
BOOL ShowWindow( int nCmdShow ); Return Value 作用: 如果窗口原来可见,则返回非零值:如果CWnd原来是隐藏的,则返回0 参数: Parameters ...
- 51 Nod 最大子矩阵和
1051 最大子矩阵和 基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的 ...
- CF1213D Equalizing by Division
easy version hard version 问题分析 直接从hard version入手.不难发现从一个数\(x\)能得到的数个数是\(O(\log x)\)的.这样总共有\(O(n\log ...
- JS框架_(JQuery.js)点赞按钮动画
百度云盘 传送门 密码: 0ihy 点赞按钮动画效果: (点击一次随机生成一颗小爱心,作为点赞动画~) <!doctype html> <html lang="en&quo ...