SAP ScriptForms 教程系列三

来源:互联网 发布:java 重载 返回值不同 编辑:程序博客网 时间:2024/05/29 01:53
SAP ScriptForms 教程系列三      SAPScript Symbols

SAPscript识别四种类型的symbols:

l         System symbols

l         Standard symbols

l         Program symbols

l         Text symbols

这四种类型之间的主要区别在于值的来源。

l         System symbols值由SAPscript提供;

l         Standard symbols值在系统表TTDTG中定义;

l         Program symbols值由运行时刻的程序提供;

l         Text symbols值既可以从文本中的控制命令获取,也可以由Text Editor的Include函数动态提供。

SAPscript自动识别symbols的类型;

首先,检查symbols是否为System symbols;如果不是,然后检查symbols是否定义在调用程序的数据域中,如果是,就是Program symbols;如果不是,SAPscript就从TTDTG表中读取,如果在TTDTG表中发现symbols,则为Standard symbol;如果上面都不是,就是Text symbols。

3.1Syntax of Symbols

定义一个symbol有下面的要求:

¨         在一个symbol两边需要使用“&”;

¨         在symbol名字内不能使用空白字符,而且也不能用'+()这些符号,因为这些符号是用来定义格式选项的;

¨         在SAPscript Editor中不能将symbol分开在多行编写,如果一定要这么做,需要使用long line来避免(long line段落格式为= or /=);

¨         封装在“&”符号之间的格式选项必须用“()”,而且表示格式的字母要用大写。

注意:如果定义了一个不能满足上面所有条件的symbol,则系统不会将它当成symbol来处理,而是作为一个文本直接输出。

下面是一些有效的symbol的例子:

&symbol&

&MY_symbol&

&KNA1-NAME1&

&DATE&

&KNA1-UMSAT(I)&

 

下面是一些无效的symbol的例子:

&mysymbol

&my symbol&

&mysymbol)&

&symbol(Z&

&KNA1-UMSAT(i)&

请大家思考一下为什么?

 

注意:symbol名字不区分大小写,比如下面三个symbol在SAPscript中会作为一个symbol处理;

&mysymbol&

&Mysymbol&

&MYSYMBOL&

3.2System Symbols

SAPscript提供了可以在各种文本中使用的system symbols,而且这些symbols的定义是固定的,其值由SAPscript提供。

这些system symbols可以参见下表,具体用法请参见sap online help

名字

定义

描述

Current Date

&DATE&

显示当前时间

Current Day Number

&DAY&

显示当前的天数

Current Month Number

&MONTH&

显示当前的月数

Current Year Number

&YEAR&

显示当前年号,四位数字

Local Date

&LDATE&

将当前日期转换为本地日期(仅对COUNTRY = JAPAN)

Current Day Name

&NAME_OF_DAY&

当前天数的名字,比如Monday等等。

Current Month Name

&NAME_OF_MONTH&

当前月的名字,比如1月等等。

Current Time

&TIME&

显示当前时间

Hours Component of Current Time

&HOURS&

显示小时

Minutes Component of Current Time

&MINUTES&

显示分钟

Seconds Component of Current Time

&SECONDS&

显示秒

Current Page Number

&PAGE&

显示当前页数

Page Number of the Next Page

&NEXTPAGE&

显示当前页的下一页

Selected Device Type

&DEVICE&

用来指定外部打印设备类型

Spaces

&SAPCE&

用来生成空格字符串

Underline

&ULINE&

用来在输出文本中插入一个带下划线的字符

Vertical Line

&VLINE&

用来在输出文本中插入一个垂直方向的字符

3.3Program Symbols

如果symblos从数据区域获得值,这种symbols就称为program symbols。program symbols最大为255个字符,当使用TABLES声明语句的时候,program symbols的名字由表名和字段名中间加短横线组成,例如:

&KNA1-NAME1&, &KNA1-ORT01&, &KNA1-PFACH&等等。

否则,program symbols按照打印程序中定义的方式使用(比如&MYCOUNTRY&)。

注意:symbol在form中出现的顺序是很重要的,它决定symbol当前的值,例如:

Form/text中有如下定义:

....

/: DEFINE &mysymbol& = ‘abc’ ①

* &mysymbol&                ②

....

 

打印程序中定义为:

....

Data: mysymbol(5) value ‘xyz’.

....

 

在这个例子中,最终输出为:abc

 

但是如果将Form/text中①、②的位置交换一下,如下所示:

....

* &mysymbol&                ②

/: DEFINE &mysymbol& = ‘abc’ ①

....

 

打印程序中定义为:

....

Data: mysymbol(5) value ‘xyz’.

....

 

在这个例子中,最终输出为:xyz

如果在后面再加上* &mysymbol&,则输出为:xyz、abc

关于program symbols的更为详细的描述请参见sap online help

 

3.4Standard Symbols

Standard symbols在系统表TTDTG中定义,这个表包含每一个Standard symbols的名字和值,而且和语言相关,可以由60个字符组成,SAP提供了修改这个表的表准入口,从而可以让用户自己定义自定义的Standard symbols。可以在各种文本中使用Standard symbols。

3.5Text Symbols

除了上述的三中Symbols外,其余的Symbols都叫做Text Symbols,有两种方式来定义Text Symbols:

¨         在文本编辑器中,选择Include ® Symbols ® Text,然后按照提示来做;

¨         在文本中,使用DEFINE控制命令。

例如:

/: DEFINE &mysymbol& = 'xxx xxx xxxxx xxxx'

&mysymbol&

/: DEFINE &mysymbol& = 'yyyyy yyy yyyy'

/ &mysymbol&

 

输出为:

xxx xxx xxxxx xxxx

yyyyy yyy yyyy

 

注意:

Text Symbols使用“' '”符号。