1、 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1 SAPscript Forms .31.1 SAPscript 的 组成 .31.2 Forms: 组件和技术 .31.2.1 概念 31.2.1.1 修改 SAP Forms 31.2.1.2 Forms:概念 41.2.1.3 Client 和语言版本:概念 .41.2.2 组件 41.2.2.1 Header Data41.2.2.2 Paragraph Formats and Attributes61.2.2.3 Character Formats and Attributes 81.2.2.4 Windows.81.
2、2.2.5 Pages(页面) 101.2.2.6 Pages window(页面窗口 )111.2.2.7 Text Elements (文本元素) .121.2.3 技术 151.2.3.1 在 Form 中包含图形 .151.2.3.2 在 FORM 中包含公司 logo 171.2.3.3 在 form 中打印条形码 241.2.3.4 Using Boxes, Lines, and Shading.272.SAPscript Control Commands.302.1 Control Commands 语法 .302.2 Control Commands 种类 302.2.1 显示
3、分页:NEW-PAGE .302.2.2 限制分页:PROTECT 312.2.3 下一个 main window 命令: NEW-WINDOW312.2.4 给文本 symbol 分配值:DEFINE 312.2.5 格式化日期字段:SET DATE MASK.322.2.6 格式化 Time 字段:SET TIME MASK .332.2.7 设置与国家相关的格式:SET COUNTRY 332.2.8 设置 symbol 位:SET SIGN342.2.9 Initializing Numbered Paragraphs:RESET .342.2.10 包含其他文本:INCLUDE 35
4、2.2.11 改变样式:STYLE .352.2.12 格式化地址:ADDRESS 352.2.13 在 main window 中设置 Header Text:TOP .372.2.14 在 main window 中设置 Footer Text:BOTTOM 372.2.15 条件文本:IF 372.2.16 条件文本:CASE .382.2.17 调用 ABAP 子程序:PERFORM .382.2.18 合计:SUMMING 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理3.SAPscript Symbols403.1Syntax of Symbols 403.2Sy
5、stem Symbols 413.3Program Symbols 423.4Standard Symbols433.5Text Symbols.434.Formatting Options434.1Offset(偏移量) 434.2Output Length .444.3 Omitting the Leading Sign .444.3 Omitting Leading Zeros .454.4 Space Compression 454.5 Number of Decimal Places.454.6 Omitting the Separator for Thousands.464.7 S
6、pecifying an Exponent for Floating Point Numbers 464.8 Right-Justified Output 464.9 Fill Characters 474.10 Suppressing Output of Initial Values .474.11Local Dates(Currently Only for Japan).474.12Changing the Value of a Counter474.13Preceding and Subsequent Texts(Pre-Text/Post-Text) .485.SAPscript Fu
7、nction Modules 495.1OPEN_FORM .515.2CLOSE_FORM.525.3WRITE_FORM.526 一个完整的例子 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1 SAPscript Forms1.1 SAPscript 的组成SAPscript 由下面五个部分组成:1)编辑器用来编辑一行文本。如果用户决定维护与应用程序相关的文本,应用程序事务会自动调用这个文本编辑器,2)styles 和 forms,用来打印 layout。3)中央输出模块设计器。它的任务是根据相应的格式信息为某种外部设备准备文本,这些格式信息来自于分配了文本的 styl
8、e 和 forms。4)程序接口,通过将 SAPscript 组件包括在程序中来控制 form 的输出。5)用来存储文本、styles、forms 的数据库表格。可以用下图来表示:1.2 Forms: 组件和技术1.2.1 概念1.2.1.1 修改 SAP Forms如果需要修改 SAP Forms,可以象下面这样设置开发环境: 确信客户端没有标准的 SAP Forms 拷贝你需要的标准 SAP Forms 到你的开发环境中 重新命名,最好以 Y 或者 Z 开头 为了使更改生效,需要修改相关的 SAP 打印程序使用经过你修改后的 Forms,可以使用 SAP IMG 来进行。 培训管理资料大全
9、 商务智库整理 培训管理资料大全 商务智库整理1.2.1.2 Forms:概念Forms 用来控制文档中的页面 layout 和文本格式。在将某一文档输出到打印机或者屏幕的时候,必须将一个Form 分配给该文档。如果没有指定,就使用系统默认的 Form。在 SAP 应用中,通常利用 Forms 来定制诸如发票、支票之类的特殊文档的 layout。这些 Forms 用来描述文档页面中的信息结构,比如地址抬头、item 行、页脚等等。有两种方法来格式化 Forms 中的的文本: 在标准的 SAPscript 文本处理器中( Tools Word processing Standard text),
10、可以为一个文档选择一Form。然后在 Form 的 Main 窗口中输入文本并格式化。例如,我们为信件选择一个 Form,然后在 Main 窗口中输入信件内容,当打印该信件时,信件内容随同其他信息一并打印出来(比如抬头、页脚等等) 。 通过 SAP 应用中的打印程序生成文档。该打印程序使用一个 Form,并提示用户输入相关文本信息。1.2.1.3 Client 和语言版本:概念Forms 和 Styles 是与客户端相关的,也就是说,在哪一个客户端创建的 Form 和 Styles 只能在这个客户端使用。同样的,Forms 和 Styles 也是语言相关的,在 Forms 和 Styles 中
11、的定义的文本只能用一种语言来进行定义。可以用 SAP 翻译工具来翻译这些 Forms 和 StylesClient 000 缺省:SAPscript 给在 client000 中的 Forms 和 Styles 赋予一种特殊状态。如果在打印一个文档的时候,文档中定义的 Forms 和 Styles 在当前客户端不可用,则 SAPscript 就在client000 中检查所定义的 Forms 和 Styles,如果找到,就利用 client000 中的来进行打印。SAP 标准 Forms 和Styles 总是存储在 client000 中。可以通过拷贝这些标准 Forms 和 Styles 到
12、当前客户端并重新以 YXXX 或者 ZXXX命名加以使用。Language rules: SAPscript uses the following rules to manage versions of forms and styles in different languages: The language in which a form or style is created is its “original language.“ You can translate a form or style into other languages using SAPs translation to
13、ols. If a form or style is needed only in its original language and need not be translated, then you can indicate this in the language attributes in the header data. The form or style then does not appear in work lists in the translation tools. In versions other than the original language version, c
14、hanges to a form or style are limited only to translation of texts. No changes to definitions and attributes are permitted. 1.2.2 组件1.2.2.1 Header DataHeader Data 由全局数据,比如 page 格式、page 方向、初始字体等组成。在 Header Data 的Basic settings 标签中可以对这些数据进行维护。Header Data 还包括 form 的名字、描述、类以及状态。 培训管理资料大全 商务智库整理 培训管理资料大全
15、 商务智库整理Header Data 的操作画面如下:一个例子:下图是简单的发票的例子,是利用 SAPscript Form 创建的。每一个 form 由一个 start page和任意数量的 subsequent pages 组成,这依赖于字符文本的长度。在这个例子中,start page由地址栏窗口、包含参考消息的信息窗口、包含公司相关数据的窗口以及包含真正业务数据的窗口(业务数据也显示在 subsequent page 中)和包含页码的窗口组成。包含业务数据的窗口不同于其他窗口。无论什么时候,只要一页数据显示不下时,会自动显示在 subsequent 中。因而,这个窗口控制换页,而且这种
16、窗口只能有一个,在 SAPscript form 中称这种窗口为 main window.如下图所示: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1.2.2.2 Paragraph Formats and Attributes在 SAPscript 中,Paragraph(段落)就是使用某种格式和相应属性的一种格式设置。通过应用不同的段落属性组来简化文本处理,这些属性组包括: 标准属性 字体 Tabs Outline对一个段落标志命名有下面的约定束成: 段落名由一到两个字符组成; 第一个字符必须是字母,第二个字符可以是字母、数字或者空格;特殊字符无效; 段落格式在 Desc
17、ription 域中必须进行标识。段落格式设置画面如下: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理下面分别对前面的属性组加以说明:1) 标准属性在标准属性组中,可以设置在段落格式中需要用到的通用属性,包括:描述信息(Description)左边右边距(Left margin, Right margin)第一行的缩进(indent 1st line)前后空格(Space before, Space after)对齐方式(Alignment)行间距(Line spacing)是否空行(No blank lines)是否页面保护(Page protection)同一页上是否有下
18、一个段落(Next paragraph same page)2) Font 属性可以为段落格式指定字体属性,用来控制文本中的字体。字体属性包括字体、大小、黑体/粗体/ 斜体、下划线等等。 、3) Tabs in Paragraph Formats可以根据需要为每个段落格式定义 tabs 的位置,在 pc editor 中两个”,”symbol 代表段落中的一个 tabs。可以使用下面的度量单位来定义 tabs 的位置: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理CH (字符)CM (厘米 )MM(毫米)PT(点阵)TW(1/20 点)4) Outline用来指定文档中的层次
19、和目录结构。具体请参见 sap online help1.2.2.3 Character Formats and AttributesCharacter formats and Attributes 可以用来格式段落中的一段文字。命名方式与段落一样。字符属性组可以是: Standard FontStandard 属性包括 marker(标记或者超连接 )、Barcode、Protected、Hidden、Superscript 等。Font 属性与段落中的 Font 属性一样使用。1.2.2.4 WindowsWindows 在 Form 维护中定义。代表页面中的一个区域(Page Windo
20、w) ,每一个 Form 中至少定一个 window,否则,SAPscript 不能格式化文本。可以为 window 定义类型和名字,注意在每一个 Form 中只能有一个 Main window。在定义一个 Form Window 的时候,必须选择一个窗口类型。下面是可以使用的窗口类型: Main Window每一个 Form 必须有一个 MAIN 类型的窗口,这样的窗口叫做 Main Window。在 SAPscript 中主窗口具有下面的意义:1) 控制换页;2) 包含可以跨越多个 pages 的内容;3) 可以在 page window 中固定文本元素,比如列标题。一旦 main win
21、dow 内容填满后,就会自动换页,在下一页的 main window 中继续输出余下的内容。而且格式保持不变。注意:如果 page 中没有 main window,系统会隐含处理 page 中的其他 window 以及 subsequent page,在这种情况下, SAPscript 会在处理完(最多)三个 subsequent pages 后终止处理。为了输出 header line 或者 totals,需要指定 main window 中的输出区域(output area)。为了在页面(page)中的 main window 中进行文本输出,可以选择三种类型的区域之一。 Main win
22、dow 中的顶层区域叫 TOP Area;下层区域叫 BOTTOM Area;它们之间的区域叫做 BODY Area。TOP Area 和BOTTOM Area 的大小依赖于各自的文本内容, BODY Area 的大小相应的发生变化。如下图所示: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理在 Form 输出时,可以对这三个区域的内容进行动态修改。 SAPscript 在包含 main windwo 的 Form 的每一页上自动输出这些区域。当在调用函数模块 WRITE_FORM 或者 WRITE_FORM_LINES 时,TYPE 参数决定在哪一个区域输出文本,如果在调用时
23、,没有指定 TYPE 参数,系统默认输出 BODY 区域的内容。比如下面的图示以及代码: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理 VAR Window(可变窗口)可变窗口的内容在每一个 page 中都要处理一次。系统输出仅仅适合窗口尺寸,超出窗口的文本被自动截掉;可变窗口也不会触发换页处理。不象 CONST Window,page window 如果声明为 VAR Window,意味着在不同的 Form pages 中可以有不同的尺寸。注意:在窗口内容处理方面,系统并不区分 CONST Window 和 VAR Window,唯一的区别就是在全部Form 中具有同样尺寸
24、。 CONST window(常量窗口)从版本 4.0 开始,在系统内部处理中,并不区分 CONST Window 和 VAR Window,所以,如果创建一个新的 window,总是使用 VAR 类型的。1.2.2.5 Pages(页面)对每一个 Form 必须定义至少一个 page,而且必须在 Form 的 header 属性标签中指定“first” page。否则,不能进行文本格式化。另外,应该指定当到达第一页的末尾的时候,接下来的一页是哪页。如果没有指定的话,输出就在当前页的末尾终止。为了定义一个 page,需要为它指定名字和属性: 下一页的名字 page 的计数模式 page 数的数
25、字类型 资源名字 打印模式文档的单个 pages 通常有不同的 layouts:发票的第一页与接下来的页不一样,在这些页上不需要重复通用信息,比如地址或者客户数据,象窗口中的文本元素一样,page 也有名字,在有需要换页的情况下,需要通过这些名字来指定下一页,如果想文档的样式变化越多,就需要在 SAPscript 中定义越多的 page。下图说明如何利用事务代码 SE71 维护一个 page。在 WIN32 操作系统中可以利用 Form Painter。 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1.2.2.6 Pages window(页面窗口)Pages window
26、就是定义在页面中的窗口,这里的页面和窗口都是已经预先定义好的,定义 pages window 的主要任务就是将窗口和页面关联起来,一个页面中可以有多个窗口。在定义 pages windows 时,窗口的名字与 page 的名字关联起来。必须指定分配给 page 的窗口的位置和大小。通过指定左边和上边距来定义窗口的位置,指定其高度和宽度来定义窗口的大小。注意:1)在所有 pages 中的 main window 的宽度必须相同。其他的窗口类型在不同的 pages 中可以有不同的尺寸和位置。2)为了打印多列,需要在一个 page 中定义多个 main window。因为文本条目是连续的,一旦第一个
27、main window 被写满之后,输出可以在第二个窗口继续。当定义 windows 和 pages 的时候,可以不必指定位置和输出的文本间隔。为了指定这些值,可以直接创建一个 page window。 当定义 page window 时,需要指定: 显示在 page 上的 window window 的尺寸(包括大小、宽度、高度) 页面中各个 window 的位置如下图所示: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1.2.2.7 Text Elements (文本元素)SAPscript 将 form 中的单个文本组件称之为 Text Elements(文本元素),为
28、了获得较好的结构和可读性,可以为 form 中的每一个 Text Elements 分配一个固定的名字,打印程序通过这些定义的名字来访问 Text Elements。Text Elements 与 window 相关,就是说,打印程序仅仅能够调用定义在窗口中的文本元素。下图显示了定义在 main window 中的 HEADING 和 FLIGHTIST 两个 Text Elements。 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理可以将这里定义的 Text Elements 和 ABAP 程序中(比如 TEXT-001)定义的文本相比较来学习,但是,Text Elemen
29、ts 比 ABAP 程序中(比如 TEXT-001)定义的文本更灵活,主要表现在: Text Elements 的长度没有限制; Text Elements 可以包含变量符; 在一个 Text Elements 中可以使用几个不同的格式选项; 在 Text Elements 中可以使用 SAPscript 控制语句。在 window 中,可以使用两种不同的 Text Elements,一种叫做有名 Text Elements;另外一种叫做无名Text Elements。1) 有名 Text Elements通过段落格式“/E”来识别有名 Text Elements,在行编辑器中,看起来象这样:
30、字符串代表 Text Elements 的名字,名字可以有 30 个长度,而且可以包含字母、数字、特殊字符。名字后面接下来就是这个 Text Elements 的文本行。一个 Text Elements 在下一个 Text Elements开始处结束。注意: Text Elements 的名字仅仅在本地有效( LOCAL) ,即不同的窗口可以包含相同的 Text Elements 的名字。 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理为了输出有名 Text Elements,必须在程序中(ABAP)使用函数模块 WRITE_FORM。下图说明了发票中的列头 Text Elem
31、ents。2) 无名 Text Elements无名 Text Elements 或者叫做缺省文本元素是这样的一些文本行和控制语句, 它们显示在相应 window contents 的起始处,没有“/E”段落格式。包括所有的行直到出现“/E” 段落格式,或者直到末尾,如果中间没有其他“/E”标志出现,因此,在一个 window 中只能包括一个无名 Text Elements。这两种 Text Elements 之间的区别在于: 对于有 Text Elements 来说,只有当系统显示调用函数模块 WRITE_FORM 时,才被输出;而对名Text Elements,系统会自动处理。 Main
32、window 中的 Text Elements 仅仅出现一次,它不会出现在包含 main window 的 form 的subsequent page 中。 其它 window 类型(除 main window 外)的无名 Text Elements 每次都会出现。下面的例说明了在 form 中的 ADDRESS window 的无名 Text Elements,这个 Text Elements 输出客户地址,ADRS_SENDER 标准文本仅仅在第一页显示(通过 IF AND CASE 语句可以控制) 。 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理3) 激活 Text E
33、lements当函数模块 WRITE_FORM 的时候,可以通过设置 FUNCTION 参数的值在打印程序中激活窗口中的 Text Elements,FUNCTION 可以是下面的值: SET用当前的值代替所有 window 中激活的文本元素 APPEND将当前的 Text Elements 追加到激活的 Text Elements DELETE从激活的 Text Elements 列表中删除当前的 Text Elements注:激活 Text Elements 是指当当前 page 调用时,系统准备输出的 window Text Elements。在 main window BODY 域中,
34、APPEND 和 SET 具有相同的效果, DELETE 对其没有影响,在 TOP和 BOTTOM 域中,与上面描述的相同。1.2.3 技术1.2.3.1 在 Form 中包含图形这一节主要介绍在 form 中包括图形的技术,主要介绍如何在 form 中打印公司 logo 和如何打印条形码。1) 在 form 中打印公司 logo为了能够打印公司 logo,不管是在 form 中,还是在 PCL-5 打印机预定的宏中,下面的规则有助于选择合适的方法: 如果不能够以 TIF6.0 的格式提供 logo,则公司 logo 应该在 PCL-5 打印机预定的宏中进行打印; 培训管理资料大全 商务智库整
35、理 培训管理资料大全 商务智库整理 如果没有 PCL-5 打印机,则需要将公司 logo 包含在 form 中; 在其他任何情况下,将公司 logo 包含在 form 中。如果在打印公司 logo 的时候,正确的参照了这里的说明,但还是没有能够正确打印出公司的 logo,可能是因为你提供的 logo 的图形格式不是基于 TIF6.0 的,如果文件格式不正确,SAP 并不给出任何错误信息。下面介绍在 form 中包含公司 logo 的步骤: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1.2.3.2 在 FORM 中包含公司 logoStep-by-Step GuideTask
36、 1 Convert your company logo into a SAPscript standard text. 1. Create your company logo with a graphic program and save it in the Baseline TIFF 6.0 format.In this guide, the filename is LOGO.TIF.2. From the SAP main menu, choose Tools ABAP Workbench.3. On the ABAP Workbench screen, choose ABAP Edit
37、or.4. In the Program field, enter RSTXLDMC.5. Choose Execute. 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理6. Determine the location of LOGO.TIF.7. In the File name field, enter the file name with its location.Note: UNIX file names are case sensitive. 8. In the Type field, enter the appropriate type for the rast
38、er image. BMON stands for a black and white raster image.Use BMON for monochrome printers because these printers normally do not perform a gray-level conversion. BCOL stands for a color raster image with up to 256 colors.For this example, use BMON.9. In the Text name field, enter ZHEX-MACRO-LOGO.10.
39、 Choose Execute.The upload may take a while. The result should be a protocol as shown.11. At the end of the protocol, a Standard text ZHEX-MACRO-LOGO ID ST Language EN saved successfully message indicates that the standard text was created.12. Choose Back four times to return to the SAP main 培训管理资料
40、大全 商务智库整理 培训管理资料大全 商务智库整理You can easily display the created standard text.1. Choose Tools Word processing Standard text.2. In the Text name field, enter ZHEX-MACRO-LOGO.3. Choose Display.For additional information about report RSTXLDMC, access the report documentation:1. Choose Tools ABAP Workbench.
41、2. Choose ABAP Editor.3. In the Program field, enter RSTXLDMC.4. Select Documentation.5. Choose Display.Step-by-Step GuideTask 2 Include the standard text ZHEX-MACRO_LOGO in the sales order confirmation form Z_9H_RVORDER01. 1. From the SAP main menu, choose Tools Word processing Form.2. In the Form
42、field, enter Z_9H_RVORDER01, and in the Language field, enter EN.3. In the Sub-objects section, select Page layout. 4. Choose Change.The synchronized screens of the Form Painter appear. 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理5. In the Design window, create a new window by choosing Create window form the fo
43、rm layout manipulation menu.The new window is automatically named Window1.6. Activate Window1 and choose Rename window from the form layout manipulation menu.7. Rename Window1 as LOGO.8. Choose E 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理9. Define the position of the window LOGO using the graphical Form Painte
44、r.With graphics or macros the system considers only the window position but not the size. The Left margin must be specified in CH (characters) and the Upper margin must be specified in LN (line). 10. Activate the LOGO window and choose Edit window text from the form layout manipulation window. The P
45、C Editor for the LOGO window 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理11. In the PC Editor choose the Insert command button.The Insert Additional Information screen appears.12. Select Command.13. Enter INCLUDE ZHEX-MACRO-LOGO OBJECT TEXT ID ST in the command line.14. Choose Continue.1112 培训管理资料大全 商务智库整理 培训管
46、理资料大全 商务智库整理The new command line (gray highlighted) appears in the PC Editor.15. Choose Back.The window text is automatically saved by the system. 16. Confirm the information.17. Activate the changed form.Your company logo appears on the first page of form Z_9H_RVORDER01 using the standard text ZHEX-MACRO-LOGO and the window LOGO for the print output. If the company logo should be displayed on the subsequent pages, you must copy the window LOGO to page NEXT. You have to repeat the following procedure for all defined pages: 培训管理资料大全 商务智库整理 培训管理资料大全 商务智库整理1.