第四章 将数据输出 到屏幕Word文档格式.docx
《第四章 将数据输出 到屏幕Word文档格式.docx》由会员分享,可在线阅读,更多相关《第四章 将数据输出 到屏幕Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
'
当启动该程序时,系统离开当前屏幕(这可能是“ABAP/4编辑器:
初始屏幕”),并如下所示转到输出屏幕:
输出屏幕与在程序属性中指定的程序标题有相同的名称(参见指定程序属性(页Error!
Notavalidlink.))。
屏幕上的第一行包含列表表头。
默认情况下,该列表表头与程序标题相同。
但是,可以由实际程序外的程序标题单独维护列表表头。
详细信息,参见(使用文本摘要(页Error!
当前页号
(1)出现在右边。
列表表头后紧跟着一条水平线,然后显示输出。
可以选择“搜索”,以搜索特定模式。
在屏幕上,输出通常是左对齐的。
如果使用几个WRITE语句,输出字段就一个接一个显示,输出之间由列分开(如一个空格)。
如果当前行没有足够空间,则开始新行。
PROGRAMSAPMTEST.
TABLESSPFLI.
.............
WRITE:
'
COMPANY:
SPFLI-CARRID.
注意冒号和逗号的用法(参见语法结构(页Error!
该示例中的程序段向屏幕输出两个字段:
文字“COMPANY:
”和表格工作区SPFLI的组件CARRID:
AA。
输出屏幕上的数据字段格式,依赖数据类型(参见预定义的基本数据类型(页Error!
予定义数据类型的输出格式
数据类型
输出长度
定位
C
字段长度
左对齐
D
8
左对齐
F
22
右对齐
I
11
N
字段长度
左对齐
P
2*字段长度(+1)
右对齐
T
6
左对齐
X
2*字段长度
数字数据类型F、I和P是右对齐的,左边用空格填充。
如果有足够的空间,也输出千位分隔符。
如果类型P字段包含小数位,则默认输出长度增加一位。
对数据类型D,日期的内部格式与输出格式不同。
当输出数据使用WRITE语句时,系统自动以用户主记录中指定的格式(例如,DD/MM/YYYY或MM/DD/YYYY),输出数据类型D。
DATANUMBERTYPEPVALUE'
-1234567.89'
DECIMALS2.
Number'
NUMBER,'
ispacked'
输出如下:
Number1,234,567.89-ispacked
字段NUMBER总长为13,即,9位数字(包括小数点)、前导负号和作为分隔符的两个逗号。
因为类型P字段的字段长度为8,所以NUMBER字段的输出长度为2*8+1=17。
剩余的位置用四个空格填充。
这意味着,在文字‘Number’和数字自身之间有五个空格。
3在屏幕上定位WRITE输出
如下所示,通过制定字段名称前面的格式规范,可以在屏幕上定位WRITE语句的输出:
WRITEAT[/][<
pos>
][(<
len>
)]<
此处
_斜线‘/’表示新的一行
_<
是最长为三位数字的数字或变量,表示在屏幕上的位置
是最长为三位数字的数字或变量,表示输出长度
如果格式规范只包含直接值(即,不是变量),可以忽略关键字AT。
Firstline.'
Stillfirstline.'
WRITE/'
Secondline.'
WRITE/13'
Thirdline.'
这在屏幕上生成如下输出:
FirstLine.Stillfirstline.
Secondline.
Thirdline.
如果指定某一个位置<
,则无论在该位置是否有可用的空间,或写有其它字段,总是在该位置输出字段。
DATA:
LENTYPEIVALUE10,
POSTYPEIVALUE11,
TEXT(10)VALUE'
1234567890'
Thetext------------appearsinthetext.'
WRITEATPOS(LEN)TEXT.
Thetext-1234567890-appearsinthetext.
如果输出长度<
太短,则显示几个字符。
左边截断数字字段,并用星号(*)作前缀。
右边截断所有其它字段,但是没有给出该字段较短的指示。
NUMBERTYPEIVALUE1234567890,
abcdefghij'
.
(5)NUMBER,/(5)TEXT.
*7890
abcde
5格式化选项
对WRITE语句,可以使用不同的格式化选项。
WRITE....<
<
选项>
所有数据类型的格式化选项
选项
用途
LEFT-JUSTIFIED
输出左对齐。
CENTERED
输出居中。
RIGHT-JUSTIFIED
输出右对齐。
UNDER<
g>
输出直接开始于字段<
下。
NO-GAP
忽略字段<
后的空格。
USINGEDITMASK<
m>
指定格式模板<
。
USINGNOEDITMASK
撤消对ABAP/4词典中指定的格式模板的激活。
NO-ZERO
如果字段仅包含零,则用空格代替它们。
对类型C和N字段,将自动代替前导零。
数字字段的格式化选项
NO-SIGN
不输出前导符号。
DECIMALS<
d>
<
定义小数点后的数字位数。
EXPONENT<
e>
在类型F字段中,在<
中定义幂数。
ROUND<
r>
用10**(-r)乘类型P字段,然后取整。
CURRENCY<
c>
按表格TCURX中的货币<
格式化。
UNIT<
u>
按表格T006中为类型P字段所指定的单位<
固定小数位数。
日期字段的格式化选项
DD/MM/YY
用户主记录中定义的分隔符
MM/DD/YY
DD/MM/YYYY
MM/DD/YYYY
DDMMYY
无分隔符。
MMDDYY
YYMMDD
关于格式选项和这些选项内例外原则的详细信息,参见WRITE语句的关键字文档。
以下是格式选项的一些示例。
要获得更多的示例,参见章节创建列表。
在用户主记录中,定义了数字字段的小数点字符和千位分隔符(分号或逗号)。
ABAP/4代码
屏幕输出
G(5)VALUE'
Hello'
F(5)VALUE'
Dolly'
G,F.
/10G,
/FUNDERG.
/GNO-GAP,F.
HelloDolly
Hello
Dolly
HelloDolly
DATATIMETYPETVALUE'
154633'
TIME,
/(8)TIMEUSINGEDITMASK'
__:
__'
154633
15:
46:
33
000123'
/'
NO-ZERO.
000123
123
DATAFLOATTYPEFVALUE'
123456789.0'
WRITEFLOATEXPONENT3.
123456.789E+03
DATAPACKTYPEPVALUE'
123.456'
DECIMALS3.
WRITEPACKDECIMALS2.
/PACKROUND-2,
/PACKROUND-1,
/PACKROUND1,
/PACKROUND2.
123.46
12,345.600
1,234.560
12.346
1.235
SY-DATUM,
/SY-DATUMYYMMDD.
06/27/1995
950627
除了上表中显示的格式化选项外,还可以用FORMAT语句的格式化选项。
这些选项允许指定输出的亮度和颜色。
详细信息,参见FORMAT语句。
7在屏幕上输出符号和图标
使用下列语法,可以在屏幕上输出符号和R/3图标:
symbol-name>
ASSYMBOL.
icon-name>
ASICON.
符号和图标的名称(<
符号名>
和<
图标名>
)是定义系统的常量,这些常量在包含程序<
SYMBOL>
ICON>
(尖括号是名称的一部分)中指定。
这些包含程序也包含符号和图标的简短说明。
输出符号和图标最简单的方法是使用语句结构(参见通过语句结构使用WRITE(页9)中的示例)。
要使符号和图标对程序可用,必须在程序中输入恰当的包含程序或更易理解的包含程序<
LIST>
关于输入包含程序的详细信息,参见使用包含程序。
INCLUDE<
PhoneSymbol:
SYM_PHONEASSYMBOL.
SKIP.
AlarmIcon:
ICON_ALARMASICON.
上面两个INCLUDE语句可以用单个INCLUDE语句替代
8输出屏幕上的线和空行
用下列语法,可以在输出屏幕上生成水平线:
ULINE[AT[/][<
)]].
它等同于
WRITE[AT[/][<
)]]SY-ULINE.
AT后的格式规范,与在在屏幕上定位WRITE输出(页3)中为WRITE语句说明的格式规范完全一样。
如果没有格式规范,系统则开始新的一行,并用水平线填充该行。
否则,只按指定输出水平线。
生成水平线的另一种方法,是在WRITE语句中键入恰当数量的连字符,如下所示:
)]]'
-----...'
垂直线
用下列语法,可以在输出屏幕上生成垂直线:
]]SY-VLINE.
或
]]'
|'
空行
用下列语法,可以在输出屏幕上生成空行:
SKIP[<
n>
].
该语句从当前行开始,在输出屏幕上生成<
个空行。
如果没有指定<
的值,就输出一个空行。
要将输出定位在屏幕的指定行上,请使用:
SKIPTOLINE<
该语句允许将输出位置向上或向下移动。
要获得更多的信息和示例,参见创建列表。
9将字段内容作为复选框输出
使用下列语法,可以将字段的第一个字符,作为复选框输出到输出屏幕上:
ASCHECKBOX.
如果字段<
的第一个字符是一个“X”,就显示复选框已填充。
如果字段<
的第一个字符是SPACE,就显示复选框为空。
该语句创建的复选框,默认状态是可输入的。
就是说,用户可以通过单击鼠标来填充它们或使其为空。
如何使输出字段能输入或撤消输入,将在使字段接受输入下加以说明。
能输入字段在允许用户对话的交互式列表中是很重要的(参见交互列表)。
FLAG1VALUE'
FLAG2VALUE'
X'
FLAG3(5)VALUE'
Xenon'
Flag1'
FLAG1ASCHECKBOX,
Flag2'
FLAG2ASCHECKBOX,
Flag3'
FLAG3ASCHECKBOX.
输出列表如下:
对FLAG2和FLAG3,因为这些字段的第一个字符是“X”,所以填充复选框。
通过单击鼠标,用户可以改变复选框的内容。
9通过语句结构使用WRITE
R/3系统包含试验WRITE语句的所有选项和输出格式及将它们插入到程序中的有用工具。
要做到这一点,在ABAP/4-编辑器中选择“编辑->
插入语句...”,然后在相关对话框中选择WRITE(参见插入已有关键字结构(页Error!
当用Enter确认选项后,看到如下屏幕:
在该屏幕上,可以
_通过在字段“字段”中输入内部字段的名称或文字,确定其输出格式。
然后通过选择“其它格式选项”,在该屏幕上或者在可访问的屏幕上选择格式选项。
_通过选择合适的字段,生成符号、图标、线段和复选框的WRITE语句。
_生成在ABAP/4-词典中定义的结构组件的WRITE语句。
这很有用,比如,在执行SELECT语句后(参见从数据库表读取数据)。
在屏幕“装配WRITE-语句”上,选择单选按钮“符号”和“显示”,随后将看到如下对话框:
在此,可以选择符号,例如SYM_FOLDER。
下一对话框在输出屏幕上显示相应的WRITE语句和结果输出。
同时显示注释,通知用户在程序中需要包含程序(参见在屏幕上输出符号和图标(页7))。
按下“继续”后,就会看到“装配WRITE语句”屏幕上的字段“符号”现在包含了一个值:
现在,如果选择“执行”,就会将下列文本插入到程序中:
WRITESYM_FOLDERASSYMBOL.
在“装配WRITE语句”屏幕上,选择单选按钮“结构”,并在恰当的输入字段中输入:
然后,选择“选择组件”。
在下一屏幕上,可以选择希望用WRITE语句输出的ABAP/4-词典结构SFLIGHT的组件,例如:
如果采用该选择,就会将下面的WRITE语句插入到程序中:
SFLIGHT-CARRID,
SFLIGHT-CONNID,
SFLIGHT-FLDATE,
SFLIGHT-PRICE,
SFLIGHT-PLANETYPE,
SFLIGHT-SEATSOCC.