SAP ScriptForms 教程系列二

本文档详细介绍了SAP ScriptForms中的控制命令,包括NEW-PAGE、PROTECT/ENDPROTECT、NEW-WINDOW、DEFINE、SET DATE MASK、SET TIME MASK、SET COUNTRY、SET SIGN、RESET、INCLUDE、STYLE、ADDRESS、TOP/ENDTOP、BOTTOM/ENDBOTTOM、IF、CASE、PERFORM等,用于格式化、分页、变量赋值、条件文本、调用ABAP子程序等操作。
摘要由CSDN通过智能技术生成
  SAP ScriptForms 教程系列二 SAPscript Control Commands

2.1 Control Commands语法

SAPscript Control Commands和通常文本行一样,在文本编辑器中输入和编辑,然而,和文本行相比,有下面一些区别:

l         在格式列输入段落格式“/:”表示一个控制命令;

l         在文本行中输入命令;

l         Control Commands连同其参数,最多占用一行文本行;

l         每一行只能有一个Control Commands;

l         编辑器行的格式对Control Commands没有影响。

如果Control Commands没有定义或者有语法错误,则Control Commands所在的行被作为注释处理。

2.2 Control Commands 种类

2.2.1 显示分页:NEW-PAGE

当main window显示不下时,SAPscript就会自动分页。可以利用NEW-PAGE命令强制分页(只要你想)。分页命令后面的文本显示在新页上,分页命令总是会执行(如果使用了)。

NEW-PAGE结束当前页。如果分页命令NEW-PAGE不带参数,在当前form中定义的page就作为next page使用;如果form中包括多个pages,可以将其中的任何pages作为next page使用。

语法:

/: NEW-PAGE [page_name]

示例:

/: NEW-PAGE

当前页结束,接下来的文本将显示在form中指定的page上

/: NEW-PAGE S1

和上面一个例子一样,除了S1被指定为next page外

2.2.2 限制分页:PROTECT

在打印文档的时候,有时候不想将一段段落打印在不同的页上,这时候就需要设置限制分页命令。为了做到这一点,SAPscript提供了PROTECT和ENDPROTECT命令对。如果当前页面上的余留空白能够用来打印一段完整的文本,则这一段文本就在当前也上打印,就好像没有PROTECT命令一样。然而,如果余留空白不能够用来打印整个文本,则PROTECT命令和NEW-PAGE具有同样的作用,这一段完整的文本将会在新的page中打印出来。

因而,PROTECT/ENDPROTECT也可以被看成是有条件的NEW-PAGE命令,条件就是当前main window中的余留空白是否能够满足PROTECT/ENDPROTECT中指定的文本。

语法:

/: PROTECT
:
:
/: ENDPROTECT

被保护的文本行封装在这两个命令之间。

 

注意:

l         没有PROTECT命令的ENDPROTECT命令是没有任何作用的;

l         如果漏掉了ENDPROTECT命令,SAPscript默认受保护的文档直到文本结束;

l         PROTECT/ENDPROTECT不能嵌套,如果在第一个ENDPROTECT结束前,定义了第二个PROTECT,则第二个    PROTECT/ENDPROTECT被忽略;

l         如果在PROTECT/ENDPROTECT命令对中封装的文本对于单个page来说太长的话,则在这段文本之前立即执行换页命令,文本按照通常的方式打印。在文本中某一个位置换页是不可避免的。

2.2.3 下一个main window命令:NEW-WINDOW

理论上,每一page能够由99个main windows组成。每一个main window被分配一个从0到98的识别号,windows也按照这个顺序来加载。这个特征使得SAPscript可以打印labels和输出多列文本。当一个main window填满后,如果有下一个main window的话,就是用下一个main window,在这两者之间会插入一个分页。

可以使用命令NEW-WINDOW来显示的调用下一个main window,即使当前的main window没有填满。

语法:

/: NEW-WINDOW

2.2.4 给文本symbol分配值:DEFINE

语法:

/: DEFINE &symbol_name& = 'value'

通过这种定义获得的值在事务结束后就失去了。如果想再次打印这个文本块,必须再次给这个文本symbol赋值。DEFINE命令的一个目的就是提供将值持久赋给文本的一种方式,以便当文本模块再次调用时,值可以重复使用。

示例:

       /: DEFINE &subject& = 'Your letter of 7/3/95'

       分配给symbol的值最大可以有60个字符。也可以包含其他的symbol变量。

请注意下面两个例子:

第一个例子:

/: DEFINE &symbol1& = 'mail'
/: DEFINE &symbol2& = 'SAP&symbol1&'
/: DEFINE &symbol1& = 'script'
&symbol2& -> SAPscript

 

第二个例子:

/: DEFINE &symbol1& = 'mail'
/: DEFINE &symbol2& := 'SAP&symbol1&'
/: DEFINE &symbol1& = 'script'
&symbol2& -> SAPmail

请注意观察这两个例子中的&symbol2&以及后面的赋值symbol,可以看出,可以将一个symbol变量连同其他字符赋给另一个symbol变量,但是如果用“=” 赋值symbol,则当“=”右边的symbol变量值发生变化时,“=”左边的值相应发生变化;另外一个方面,如果用“=” 赋值symbol,则当“:=”右边的symbol变量值发生变化时,“:=”左边的值并不发生变化。

2.2.5 格式化日期字段:SET DATE

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值