Report List 报表开发

摘要:
水平线绘图语法:ULINEATPOS或WRITEPOSSY-ULINE.ULINEAT3.SKIP。WREAT3SY-ULINE“两个输出具有相同的效果。水平行.ULINET3.SETBLANKLINESON.WRIEAT1SY-ULINE。3.1.2垂直行输出固定为字符高度,ReportList中的字符大小固定。

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(1TYPE VALUE 'X'.

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

 Report List 报表开发第1张

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

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

 Report List 报表开发第2张

*   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,'开始'.

Report List 报表开发第3张

3.报表输出格式控制

3.1 報表的制作

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

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

ULINE AT 3(10).

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

Report List 报表开发第4张


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

Report List 报表开发第5张

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

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

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

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

Report List 报表开发第6张

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行创建一个空行.

Report List 报表开发第7张 

 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.'.

Report List 报表开发第8张

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

Report List 报表开发第9张

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!'.

Report List 报表开发第10张

 

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

Report List 报表开发第11张

选中LINE1,点击望眼镜

Report List 报表开发第12张

选中LINE2,点击望眼镜

 Report List 报表开发第13张

 选中LINE3,点击望眼镜

 Report List 报表开发第14张

 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 INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR COL_HEADING INTENSIFIED ON.
WRITE:'HELLO SANLLY ' COLOR INPUT INTENSIFIED ON.

 Report List 报表开发第15张


FORMAT COLOR 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'.

 Report List 报表开发第16张

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

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

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


REPORT  Y001_ARTYU NO STANDARD PAGE HEADING.
DATA:PAGE_LINE TYPE 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(1SY-VLINE,'ID' COLOR 1,
          7(1SY-VLINE ,'ICON' COLOR 1,
          15(1SY-VLINE,'NAME' COLOR 1,
          41(1SY-VLINE,'SHORTTEXT' COLOR 1,
          80(1SY-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(1SY-VLINE,SY-TABIX LEFT-JUSTIFIED,"LEFT-JUSTIFIED:左对齐
            7(1SY-VLINE,ICONTAB-ID AS ICON LEFT-JUSTIFIED,"RIGHT_JUSTIFIED:右对象,CENTERED:居中对齐。
            15(1SY-VLINE,ICONTAB-NAME,
            41(1SY-VLINE,ICONTAB-SHORTTEXT,
            80(1SY-VLINE.

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

 Report List 报表开发第17张

 Report List 报表开发第18张

免责声明:文章转载自《Report List 报表开发》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#打印(转)数字音频技术下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle手工生成AWR报告方法记录

AWR(Automatic Workload Repository)报告是我们进行日常数据库性能评定、问题SQL发现的重要手段。熟练掌握AWR报告,是做好开发、运维DBA工作的重要基本功。     AWR报告的原理是基于Oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中。...

jmeter在linux机器上的安装和操作:

一、jmeter在linux机器上的安装:1、首先确定jmeter和JDK跟主机的版本一致 2、然后把JDK和Jmeter放在一个目录下,最好新建一个目录,分别存放 上传到目录rz jdk-8u74-linux-x64.gz3、然后各自解压【tar -zxvf jdk-8u74-linux-x64.gz】 4、解压完之后pwd出路径,然后再去配置环境变量...

Vue项目的一些优化策略

Vue项目完成后就要从开发环境转成生产环境 一些第三方的包体积过大,导致生成js文件过于庞大,这是时候可以生成打包报告来查看项目中的问题 1.生成报告有两种方式,一种使用npm run build --report 2.另一种使用vue脚手架的ui可视化面板,在项目中输入vue ui  3.点击生产环境下的运行按钮,可以看到打包出来的js文件一共有2M之...

JMeter3.0(三十八)图形化HTML报告中文乱码问题处理(转载)

转载自 http://www.cnblogs.com/yangxia-test 由于个人在JMeter 3.0的实际应用中,脚本中的Test Plan/Sampler等元件命名都没有使用中文,所以在之前介绍Dashboard Report特性的博客(原文戳这里))成文时,没有提到关于中文的问题。之后有朋友反馈,Sampler名称为中文时,生成的报告中展示为...

用dockerfile创建jmeter的docker镜像

网上多是创建docker镜像是从jmeter官方下载jmeter的tgz包 今天我们用本地已经下载好的tgz包。 以下是dockerfile FROM java:8 ENV http_proxy "" ENV https_proxy "" RUN mkdir /jmeter RUN cd /jmeter ENV JMETER_VERSION=5.1....

pytest使用allure生成测试报告的2种命令

pytest中使用allure生成测试报告有两种命令方式: 1.第一种(推荐): 第一步:输入下面的命令,执行pytest生成allure的json结果文件: pytest test_cals.py --alluredir ./report 第二步:输入下面的命令生成html文件并启动一个服务,通过访问链接浏览html报告: allure serve ....