SAP ScriptForms 教程系列四

来源:互联网 发布:java 重载 返回值不同 编辑:程序博客网 时间:2024/06/11 15:30
 SAP ScriptForms 教程系列四 Formatting Options

打印symbols值的时候,通常是打印其完整的长度,尽管移去了尾部的空格,例外情况是对于这样一些类型的program symbols:URR, DEC, QUAN, INT1 INT2, INT4, PREC, 以及FLTP。这些类型的program symbols是右对齐的,其输出长度在SAP Dictionary中定义。

可以通过使用Formatting Options,按照你自己的要求来改变标准的格式。在定义symbols同时提供Formatting Options参数,这些选项很多就是一个单个的大写字母,在单个symbol中可以定义多个Formatting Options。

SAPscript中定义了大约20个Formatting Options,我们对其中比较重要的加以介绍,其余的请参考sap online help

4.1Offset(偏移量)

语法:

&symbol+offset&

作用:为symbol指定偏移量,在显示时,不显示从symbol第一个字符到offset位置的字符,如果offset的值大于symbol的最大长度,则没有显示;请看下面的例子:

 

 

If < symbol> has the value 123456789, the following will be displayed:

 

&symbol& -> 123456789

&symbol+3& -> 456789

&symbol+7& -> 89

&symbol+12& ->

&symbol+0& -> 123456789

 

4.2Output Length

如果在输出时,只需要symbol的一部分,我们可以使用Output Length选项。

语法:

&symbol(length)&

示例:

If < symbol> has the value 123456789.

&symbol(3)& -> 123

&symbol(7)& -> 1234567

当然,也可以将offset选项和Output Length结合起来使用,比如:

&symbol+4(3)& -> 567

¨         如果指定的值大于symbol的长度,则在symbol后追加空格。

¨         可以用字符“*”来指定program symbol的长度,这样的话,在打印的时候,按照ABAP Dictionary中定义的长度来打印输出。

语法:

&symbol(*)&

4.3 Omitting the Leading Sign

数值型program symbols可以有符号,通常,符号显示在数值的右边。可以使用S选项略去符号位。

语法:

&symbol(S)&

示例:

The ITCDP-TDULPOS field contains the value -100.00. The ABAP Dictionary definition for this field includes a leading sign.

 

&ITCDP-TDULPOS& -> 100.00-

&ITCDP-TDULPOS(S)& -> 100.00

 

类似的选项有:

①&symbol(<)& à Leading Sign to the Left 

例如:

&ITCDP-TDULPOS& -> 100.00-

&ITCDP-TDULPOS(<)& -> -100.00

 

②&symbol(>)& àLeading Sign to the Right 

例如:

&ITCDP-TDULPOS& -> 100.00-

&ITCDP-TDULPOS(<)& -> -100.00

&ITCDP-TDULPOS(>)& -> 100.00-

4.3 Omitting Leading Zeros

某些symbol values在输出时带有0,比如01,如果想禁止这个特性,使用Omitting Leading Zeros选项。

语法:

&symbol(Z)&

示例:

Assuming the current date is 1.1.1994,

&DAY& -> 01

&DAY(Z)& -> 1

4.4 Space Compression

如果symbol value是一列单词,每一个单词之间既可以用单个字符作为分隔,也可以用一串空字符来分隔,Space Compression选项的作用就是将每一个空字符串用单个的空格字符来代替,如果symbol value最前面是空格,则会被删除,Space Compression的作用和ABAP的CONDENSE命令相同。

语法:

&symbol(C)&

示例:

Assuming '  Albert Einstein  ' is the symbol value,

则,

&symbol& ->  Albert Einstein  

&symbol(C)& ->Albert Einstein

4.5 Number of Decimal Places

如果program symbol是DEC, QUAN和FLTP数据类型之一,则它们可以包含小数位。用Number of Decimal Places格式选项,可以覆盖在SAP Dictionary中默认定义的这些数据类型的小数位置。

语法:

&symbol(.N)&

示例:

The EKPO-MENGE field contains the value 1234.56. The Dictionary definition specifies 3 decimal places and an output length of 17.

&EKPO-MENGE& -> 1,234.560

&EKPO-MENGE(.1) -> 1,234.6

&EKPO-MENGE&(.4) -> 1,234.5600

&EKPO-MENGE&(.0) -> 1,235

4.6 Omitting the Separator for ‘Thousands’

DEC, CURR, INT和QUAN类型的Symbols的整数位通常用千位分隔符进行格式化,Omitting the Separator for ‘Thousands’选项可以忽略位分隔符。

语法:

&symbol(T)&

示例:

The EKPO-MENGE field contains the value 1234.56. The Dictionary definition specifies 3 decimal places and an output length of 17.

&EKPO-MENGE& -> 1,234.560

&EKPO-MENGE(T)& -> 1234.560

4.7 Specifying an Exponent for Floating Point Numbers

这个选项为浮点数指定指数。

语法:

&symbol(EN)&

注意:如果指定N = 0,则不显示指数,这时,&symbol(E0)&和&symbol(E)&作用相同。

示例:

In this example, the PLMK-SOLLWERT field is assumed to have the value 123456.78 and to be of data type FLTP.

&PLMK-SOLLWERT& -> +1.23456780000000E+05

&PLMK-SOLLWERT(E3)& -> +123.456780000000E+03

&PLMK-SOLLWERT(E6)& -> +0.12345678000000E+06

&PLMK-SOLLWERT(E0)& -> +123456.780000000

&PLMK-SOLLWERT(E)& -> +123456.780000000

4.8 Right-Justified Output

Symbol values与其它数值型不一样,通常是左对齐,如果要指定右对齐方式,需要使用这个Formatting Optios。

注意:在使用这个选项的时候,必须指定输出长度。

语法:

&symbol(R)&

示例:

If symbol has the value 1234.

&symbol& -> 1234

&symbol(8R) -> 1234

注意:对program symbols来说,可能会使用定义在SAP Dictionary中的长度,而不是象这里显示指定。

4.9 Fill Characters

对于symbols value的起始空格,可以用你指定的字符来代替,在这个选项后面紧接着给出要替换成的字符。

语法:

&symbol(F f )&

这里f = 要替换成的字符。

示例:

The figure for customer sales in the KNA1-UMSAT field is $700. The Dictionary description of the field specifies an output length 8.

&KNA1-UMSAT& -> 700.00

&KNA1-UMSAT(F*)& -> **700.00

&KNA1-UMSAT(F0)& -> 00700.00

4.10 Suppressing Output of Initial Values

如果symbols仍然包含初始值,用这个选项可以禁止输出symbols的初始值。

语法:

&symbol(I)&

示例:

Assuming KNA1-UMSAT contains the value 0 and the currency is DEM.

&KNA1-UMSAT& -> 0,00

&KNA1-UMSAT(I)& ->

 

If the field contains an amount other than 0, this value is printed in the normal way.

&KNA1-UMSAT& -> 700,00

&KNA1-UMSAT(I)& -> 700,00

4.11Local Dates(Currently Only for Japan)

可以将日期字段转化为本地日期,使用的编辑mask为JPDA,代表使用日本语设置,因而仅仅在日语版R/3中使用。

语法:

&symbol(L)&

4.12Changing the Value of a Counter

对于SAPSCRIPT-COUNTER_x(x = 0 … 9),在打印当前值之前,可以以1位单位递增或者递减SAPSCRIPT-COUNTER_x的值。

语法:

①&SAPSCRIPT-COUNTER_x(+)& Increases by 1 the contents

of the counter variable x

(x=0.. 9)

 

②&SAPSCRIPT-COUNTER_x(-)& Decreases by 1 the contents

of the counter variable x

(x=0.. 9)

注意:1)如果仅仅只是想改变SAPSCRIPT-COUNTER_x的值,并不实际打印改变后的值,可以结合输出长度Formatting Options(参见下面的例子)

2)如果想指定某一个具体的值,使用DEFINE命令

示例:

Assume that &SAPSCRIPT-COUNTER_1& initially has the value 2.

&SAPSCRIPT-COUNTER_1& -> 2

&SAPSCRIPT-COUNTER_1(+)& -> 3

&SAPSCRIPT-COUNTER_1(-)& -> 2

&SAPSCRIPT-COUNTER_1(-)& -> 1

&SAPSCRIPT-COUNTER_1(+0)& ->

&SAPSCRIPT-COUNTER_1(+)& -> 3

4.13Preceding and Subsequent Texts(Pre-Text/Post-Text)

除了使用symbols的初始值外,在symbols的初始值发生改变后,也可以在输出symbols的同时,指定与symbols一同输出的文本;这样的文本既可以在symbols之前(Pre-Text),也可以在symbols之后(Post-Text),注意,如果symbols包含初始值,这些文本就被禁止。

语法:

&'pre-text'symbol'post-text'&

    注意:所有这些必须写在一行中(在文本编辑器中),如果太长,需要使用“=”或者“/=”段落属性。

示例:

The KNA1-PFACH field contains a customer P.O. Box number. Since the text "P.O. Box" is not stored in the field along with the value, you would normally write the following for the P.O. Box line of an address:

 

P.O. Box &KNA1-PFACH&

 

However, if no P.O. Box has been specified, the text "P.O. Box" would still appear on its own in the address. To prevent this, use pre-text or post-text (in this case, pre-text).

 

P.O. Box &KNA1-PFACH& -> P.O. Box

&'P.O. Box 'KNA1-PFACH& ->

 

If a P.O. Box has been specified, then this will be displayed together with the appropriate text in the normal way.

 

&'P.O. Box 'KNA1-PFACH& -> P.O. Box 123456

原创粉丝点击