SmartForms最全开发手册---最全

合集下载

smartform简易手册

smartform简易手册

SMARTFORM简易手册一个简单的SMARTFORM的程序逻辑无外是取数和打印两部分,看下面的示例注意:上面的内表声明是直接参照了SE11里面能看到的表,也可以参照自己定义的结构,这个内表里面的值是最终需要传输到SMARTFORM里面的内表。

下面看一下SMARTFORMS里面的具体的情况。

首先我们需要定义一些基本的变量。

然后我们就要来进行布局的一些操作,大的布局确定好了后,我们就需要对里面添加数据了在各个窗口下,我们都可以使用逻辑语言,也可以适当加上一些自己的代码SMARTFORM中最终输出的值,都是要以文本的形式显示出来的以上只是阐述了基本的数值输出与大的定位,下面说一下文本上面的字体怎么来调整。

在SMARTFORM的里面上看到第二个选项样式。

下面,就是我们应用格式的时候了,看到先前看到的这个图片最后,激活,按F8,系统就会自动生成一个FUNCTION,现在,一个简单的SMARTFORMS就写好了。

教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。

文件――页面设置――版式――页眉和页脚――首页不同。

2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。

简言之,分节符使得它们独立了。

这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来。

3. 问:如何合并两个WORD 文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同与前不同等选项。

4. 问:WORD 编辑页眉设置,如何实现奇偶页不同比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同。

SAPSmartform编程指南

SAPSmartform编程指南

SAPSmartform编程指南SAP Smartform编程指南智能表格开发目录1 样式 (3)2文本模块 (5)3 Smartforms概述 (6)3.1 Smartform的创建 (7)3.2 Smartform的修改和删除 (7)3.3 Smartform的翻译 (8)4 Smartform数据接口 (10)4.1 标准参数 (10)4.2 自定义参数 (11)5 Smartform全局定义 (11)5.1 全局数据 (11)5.2 类型 (12)5.3 字段符号 (12)5.4 初始化 (12)5.5 格式化程序 (13)5.6 货币/数量字段 (13)6 Smartform页与窗口 (14)6.1 页 (14)6.2 窗口 (15)7 窗口中的节点 (17)7.1 图形 (18)7.2 地址 (19)7.3 文本 (20)7.3.1 文本元素 (20)7.3.2文本模块 (20)7.3.3 包含文本 (21)7.3.4 动态文本 (21)7.4 表 (22)7.5 模板 (24)7.6 流逻辑 (25)7.6.1 可选的 (25)7.6.2 循环 (25)7.6.3 程序行 (26)7.6.4 命令 (26)7.7 文件夹 (27)8 Smartform的调用 (28)8.1 单个调用 (28)8.2 批量调用 (28)9 附录 (30)9.1 附录1:SAP图形操作 (30)9.2 附录2:SAP中字体的维护 (31)9.3 附录3:SAP中长文本操作 (32)9.3.1 长文本的创建、修改和删除 (32)9.3.2 长文本的写入和读取 (33)9.4 附录4:Smartform中的系统变量 (33)9.5 附录5:文本元素中的格式控制 (33)9.6 附录6:文本元素编辑器的切换 (34)9.7 附录7:打印机相关配置 (34)9.7.1 自定义纸张类型 (34)9.7.2 创建格式类型 (36)9.7.3 自定义设备类型 (37)9.7.4 添加格式类型到设备类型 (39)9.7.5 添加打印机 (41)9.7.6 打印说明 (43)1 样式样式(Style)用来控制Smartform中的格式,包括段落格式和字符格式。

SmartForms最全开发手册---最全

SmartForms最全开发手册---最全

引言目的及范围本文档主要介绍Smarform使用方法。

可适用于ABAP开发人员,分析人员使用。

--最全参考资料《SAP程序设计》文档结构文档的各章节介绍的内容如下:∙概述整个form的属性及用法∙完整案例∙附注Smartform应用及概述Smarform主要是SAP针对商业处理中固定格外文件批量打印的一种工具。

主要分为Form、Style、Textmodule三个组成部分,此三个组成部分都可以被单独创建和重复利用(T-CODE:SMARTFORMS),下面将分别讲解三种工具的使用方法。

上传背景图片输入TCODE:SE78:选择FormGraphicsStoredonDocumentServer GraphicsGeneralGraphicsBMAPBitmapImages点击按钮导入图片图片属性,导入成功FORM创建创建界面输入T-CODE:SMARTFORMS,进入以下界面,输入Form名称:ZHZP_SM_TEST,点击Create进入编辑窗口:此窗口分为三个区域:左边区域:包括全部变量,和树形结构的节点导航。

当点击相应的节点时,中间区域将会显示该节点的属性,中间区域:维护各个节点的属性等右边区域:图形化窗口绘制,可以手动调节节点分布位置,实现节点在页面的布局点击保存并选择PACKAGE和CR节点全局设置包含表格属性,表格接口,全局定义Field按钮控制Form中参数和系统变量的显示节点介绍Form是由不同类型的节点组成。

一个Form包含了一个或者多个Page,第一个Page是Form 执行的的开始(当创建Form时,系统默认创建这个Page),下面将讲解每个节点的功能及其包含的子节点,输入区域此两种节点创建FORM时,系统默认创建一个PAGE,和一个Mainwindow不包含下级节点的节点列表输出逻辑空控制节点其他节点所有节点共同的选项创建模板:T emplate节点用于创建文档中的静态表格,即在打印前已经确认了行数。

sap smartforms采购订单单据步骤

sap smartforms采购订单单据步骤

单据要求:实现步骤:(1)在创建smartforms的form之前建立段落样式,字体样式等:(2)创建smartforms的form表格(3)在表格接口———》表中建立两个表接口(),类型为like,后面的参考打印为se11中建立的表结构,可以自行设定。

(4)定义全局变量在初始化中DESCRIBE TABLE GTD_ITEM LINES G_TOTALLINES.//获取整个table中数据列表中总的行数TABLES:EKKO,EKPO,EKET,MAKT.//用于金额和数量的显示,因为他有些参考表,不能直接显示,不用这种方法可以在货币数量字段中新定义一些货币数量字段。

(5)在%page新页面上建立如图所示的结构:三个文件夹分别表示:单据名称,table的头部信息,还有单据头部信息,可以分别加上各自的样式(6)在mian中建立如图的结构1、%LOOP1表头循环设置:数据-〉loop循环-〉操作数:GTD_HEADER into GTH_HEADER作用:循环表头内表中的数据,每次打印一个凭证的行项目数据。

由于内表在这里不能有工作区,因此将每个表头数据放置到另外的工作区。

如图:2、%LOOP2循环明细数据,统计单张凭证行数设置:作用:由于在打印每张凭证及行项目之前,需要知道该凭证的总页数,因此需要首先计算gtd_ITEMS内表中有多少条当前凭证的行记录数。

3.统计总页数:4.%loop3循环明细数据,记录单张凭证数和积累行数:5.明细模板根据纸张要求设置它的宽度和显示高度还有根据要显示的数据列出表格数量和每格宽度高度。

在文本中写入变量:如图:6.计算当前页:7.记录空行:8.空数据条目循环:where条件为空作用:循环内表GTD_BLANKS,次数为内表中的记录数,即空行数,打印输出空行。

空数据条目循环模板设置要与前面的明细模板一只主窗口的高度必须等于你需要的高度,不要多,也不要少,在本例中,高度为10行x 11mm = 110mm,不一致分页效果将出现两页数据在一页而分页正常,导致错误。

ABAP-SMARTFORMS创建报表表格

ABAP-SMARTFORMS创建报表表格

Smartform报表实例目的:根据用户需求自定义打印报表。

说明:Smartform的创建需要指定页格式、样式,如果报表中存在条码,则需要指定条码格式。

涉及内容:页格式(SPAD)、条码格式(SE73)、样式(SMARTFORMS)、报表(SMARTFORMS)。

1.4 SMARTFORMS创建报表表格1.4.1 创建报表表格1、T-CODE:SMARTFORMS,输入表格名称,点击”创建“按钮,如图1.4.1-1:图1.4.1-12、输入表格的描述,然后保存,如图1.4.1-2:图1.4.1-21.4.2 全局设置-表格属性1、在表格属性的“输出选项”页签中指定页格式和样式,可以是系统标准的也可以是前面创建的,本练习选择前面自定义的页格式和样式,如图1.4.2-1:图1.4.2-11.4.3 全局设置-表格接口1、在表格接口的“导入”页签中配置Import参数(要同程序中调用该Smartform的程序的参数相同),本练习配置了5个导入参数,如图1.4.3-1:图1.4.3-1说明:a、可选和值传递选项处可以根据实际情况而定,如果勾选了可选的选项,则在程序调用时可不对该参数进行传递值,否则为必须传递的参数,如果没有对必须传递的参数传值就会报错;b、自定义上面的9个参数为系统生成,在“导出”页签中也有3个系统生成的参数,本练习不会使用到,所以不做详细介绍;c、“表”和“例外”页签中也可以进行参数配置,但是本练习都没使用到,所以也不做详细介绍;d、导入参数也可以是导入内表,这样可以在“页和窗口”的主窗口中进行循环打印。

1.4.4 全局设置-全局定义1、在全局定义的“全局数据”页签中配置Smartform中的参数,如图1.4.4-1:图1.4.4-1说明:a、全局数据中的参数通常是为了将表格接口中导入的参数进行处理并赋值。

2、在全局定义的“初始化”页签中将导入Smartform的参数进行处理后赋值给输出参数,如图1.4.4-2:图1.4.4-2说明:a、输入参数为值需要处理的参数;b、输出参数为输入参数处理后的数值返回,可以和输入参数同名,也可以再“全局数据”页签中进行自定义,本练习使用的是自定义的参数;c、本练习的值处理代码如下:MATNR = MATNR1 .MAKTX = MAKTX1 .BISMT = BISMT1 .LGORT = LGORT1 .CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'EXPORTINGINPUT = MEINS1LANGUAGE = SY-LANGUIMPORTING* LONG_TEXT =OUTPUT = MEINS* SHORT_TEXT =* EXCEPTIONS* UNIT_NOT_FOUND = 1* OTHERS = 2.IF SY-SUBRC <> 0.* Implement suitable error handling hereENDIF.*MEINS = MEINS1 .CONDENSE MATNR .CONDENSE MAKTX .CONDENSE MEINS .CONDENSE BISMT .CONDENSE LGORT .1.4.5 页和窗口-新页面经过1.4.1-1.4.4就完成了数据的处理。

SmartForms——基础知识

SmartForms——基础知识

SmartForms——基础知识转载:Smart FormsSmart Forms是在SAPScript的基础上产⽣的⼀种新的表单制作⽅式,它完全兼容SAPScript。

但Smart Forms 更独⽴,且使⽤起来更加⽅便,可以创建FORM的同时,⽣成该表单对应的功能块(Function Module),从⽽为FORM和ABAP程序的交互提供参数接⼝在中⽂环境下创建的Form,⼀般只在中⽂环境下打开来编辑,在英⽂环境中中⽂⽂本节点可能显⽰不出事务码:SMARTFORMSForm:表单版式Style:⽂本样式Text Module:⽂本模块⼀个FORM往往是由页⾯(PAGES)、输出区域(OUTPUT AREAS即WINDOWS)、地址栏(ADRESS)、图形(GRAPHICS,⽐如公司LOGO)、数据(DATA)、以及⽂本内容(TEXT)组成⽂本模块Text Module:⽂本模块,主要⽤于设置⼀段固定的⽂本信息,如报表头名称,或者是报表附加条款说明等信息。

像下⾯这此使⽤:节点元素FORM中元素的输出顺序由Pages and Windows中的后继节点结构和顺序来决定,导航树中的第⼀个页节点是FORM处理的起始页,该节点在FORM创建过程中被⾃动创建。

节点类型决定了节点可能的处理过程,如打印节点内容(⽂本、地址、图⽚等)、执⾏节点中的语句或根据规则执⾏当前节点的后继循环节点。

导航树中的所有节点,按照从上到下的顺序依次进⾏处理(包括“Pages and Windows”节点之间)除开“Pages and Windows”外,其它所有节点都是可以加上执⾏条件属性设置的,也就是说,只要满⾜设置条件时,该节点及⼦节点才被处理Page节点每⼀个Form⾄少包含⼀个页(Page)节点Page节点为“Pages and Windows”的⼦节点,如果某个Page内容超出⼀页,则会将其他内容输出到Pages节点的Next Page属性所指定页⾯,即多出⼀页的内容会产⽣分页,⼀般Next Page分页默认为⾃⼰,因为⼀般报表的主体内容会使⽤分页,并且这些分页排版相同,所以此种Page的Next Page不会设置成其他Page。

Smartforms

Smartforms

Smartforms 2009.07.14一.Smartforms简单了解SmartForms是ABAP设计单据打印的工具,设计过程由两部分组成:1、在SmartForms设计单据的样式、输入输出数据接口;2、编程调用设计单据、输出数据,实现打印输出。

Smartforms背景图片在制造公司内部的各类单据时需要公司的LOGO,这就需要上传图片。

输入TCODE:SE78Smartforms 中打印设备与打印字体的设置设备类型格式类型页格式 TCODE: SPAD字体系统条形码 TCODE: SE73Smartforms 样式文本模块设计TCODE: SMARTFORMSSmartForms 帮助程序中内表数据传递到smartforms里的几种方法:1、接口内表,优点简单直观。

缺点,要在SE11建立两个type,一个是structrure type,一个是table type。

2、用memory id或簇数据库。

优点,不用SE11,可分别运行取数和打印过程,缺点两边都要定义相同的内表。

在程序中调用 Smartforms二.背景图片上传TCODE: SE78选择 Form Graphics→Stored on Document Server→Graphics General Graphics→BMAP Bitmap Images点击按钮导入图片图片属性如下:图片上传成功三.打印设备与打印字体(1)系统条形码TCODE: SE73 选择‘系统条形码’ Change点击图标创建选择‘NEW’确认后如下:选择BARCODE 类型选择‘NORMAL’确认输入BARCODE 宽度与高度确认保存‘YES’创建一个请求号确认后ZCODTEST 条码创建成功四.SMARTFORMS设计TCODE: SMARTFORMS(1)先建Domain、Data element 根据打印需求创建StructureTCODE: SE11创建完毕后输入TCODE:smartforms 创建表格点击‘创建’进入输入描述、页格式、字符每英寸、行每英寸等数据双击‘表格接口’输入相关的导出、导入、表格、例外等参数,类似于 FUNCTION, 如下图:在全局定义中可以设置全局数据、类型等参数和程序双击‘%PAGE1新页面’选择背景图片选择上传的图片‘ZPICTURE1’然后输入分辨率及输出模式以及位置,在表格绘制器中显示图片,如下图:点击‘%PAGE1新页面’右键创建页眉页脚窗口,如下图所示:在表格绘制器中设计页眉、页脚窗口位置.在‘页眉’下创建 '模板',在‘模板’下新建‘文本1’, 在‘文本1’中输入文本.为‘文本1’创建样式,TCODE: smartforms 如下图:创建后如图:先创建字符格式:右键‘字符格式’->创建节点输入‘S1’, 在字体中设置如下属性在‘段落格式’创建节点‘K1’在表头数据设置如下参数:然后检查并激活样式 ZSMT_YS1 ,样式创建完毕.返回 smartforms表格在‘文本1’输出选项中添加样式:双击'主窗口'后,右键创建->表点击‘细节’设计表设置表宽度、对齐方式、高度以及行类型.LINE 分成 4列:4cm ,4cm , 4cm, 4cm.4列的宽度和必须与表宽度一致。

ABAP培训(SmartForms工具)

ABAP培训(SmartForms工具)
6 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
7
为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
在设置Form时就可以选择上传图片了。
设置显示小数的位数 禁止数字前导0的显示 禁止显示空值 右对齐(只有在定义了输出长度时 才有效) 用指定的字符替换左边的空格. 该设置效果和ABAP的CONDENSE语句 相同,删除字符字段中多余空格 表1-4
12 为客户创造价值 为员工创造价值 为社会创造价值
谢谢
ABAP培训(报表部分) ABAP培训(报表部分) 培训
林森
ABAP培训(报表部分)
内容简介
1 2
2
为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
Smart Forms 表格设计器包含一个极易操作的图形用户界面,用户可以 不需要ABAP语言的基础就能方便地进行版面设计和逻辑设计。
4 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
4).编号和框架 (3).字符格式 1).标准设置:设置字体的上下标和条形码等属性 2).字体:设置字体类型、大小、风格和颜色等属性 .Text Module 文本制作 设计Form时选择Text属性为Text Module时就可以选择所定义的文本。 (1).参考Form:ZSF0002,更改页脚中的“说明”字段内容,使用系统标准 的文本模块 RE_CA_TEXT_EXAMPLE_1; (2).登录QAS800系统; (3).使用变式,公司代码I750,会计年度 2011,物料凭证号 5003620871。 .图片的上传 在制作公司内部的各类单据时需要公司的LOGO,这时就需要上传图片。 (1).参考Form:ZSF0002,更改标题中的LOGO 。 (2).上传图片的步骤 输入TCODE:SE78 使用“图片上传测试.bmp”

abap学习笔记---Smartforms

abap学习笔记---Smartforms

Smartformssmartforms在ESB接口下的函数模块中,新建**_DATA、**_XML和**_SEND三个文件(其中,DATA用来读取数据,XML将传进来的数据写成接口输出的标准格式,SEND将DATA读取的数据传到XML中,完成输出)DATA文件IMPORT中,定义输入的参数EXPORT中,定义输出的参数(如表头A等结构,若没有,要在se11中新建建)“表”中,定义所有输入和输出的表B(关联类型也是结构,若没有,在se11中新建;还要定义url,et_url like zstr_interface_url)在source code中写代码,读取值并存储到表头A和表B中(表头A填值)SELECT single * from 数据表into CORRESPONDING FIELDS OF 表头Awhere *** = 输入参数.If sy-subrc = 0.完成一些在表头A中,但不存在数据表中的字段的逻辑计算。

比如结构中有姓名,但数据表中只有学号,就需要通过学号来寻找姓名并放在表头A中姓名中。

(表B填值)data: lt_item type TABLE OF 数据表,ls_item type 数据表.data ls_xx_i type 表B的关联结构.clear lt_item[].SELECT * from 数据表into table lt_itemwhere ** = 输入参数.loop at lt_item into ls_item.move-corresponding ls_item to ls_xx_i.完成一些在表B中,但不存在数据表中的字段的逻辑计算。

比如结构中有姓名,但数据表中只有学号,就需要通过学号来寻找姓名并放在表B中姓名中。

append ls_xx_i to 表B.endloop.(url填值)select ZURL as url ZFILENAME as filename from ZTCX_ATTACHinto CORRESPONDING FIELDS OF TABLE 输出URL(此处为ET_url)where DOCID = ES_PREAPPROVE_H-PRESOURCENO(条件1)and DOCTYPE = 'B'(条件二).Endif.XML文件IMPORT中,定义输入的参数(及DATA文件的表头A输出)“表”中,定义所有输入和输出的表(包括DATA文件的输出表B和url)EXPORT中,定义输出的参数(ev_xml type string)ev_xml即为最后的输出,大字符串在source code中写代码,将传进来的值写成接口标准格式data: ls_**_i type 表B结构,ls_url type ZSTR_INTERFACE_URL.* >>>>>>>>>CLASS cl_ixml DEFINITION LOAD .g_ixml = cl_ixml=>create( ) .CALL METHOD g_ixml->create_documentRECEIVINGrval = g_root.CALL METHOD g_ixml->create_encoding EXPORTINGbyte_order = 0character_set = 'gb2312'RECEIVINGrval = g_encoding.CALL METHOD g_root->set_encodingEXPORTINGencoding = g_encoding.*.........CALL METHOD g_root->create_simple_element EXPORTINGname = 'document'parent = g_rootRECEIVINGrval = g_document.CALL METHOD g_root->create_simple_elementEXPORTINGname = 'header'parent = g_documentRECEIVINGrval = g_header.if 表B[] is not INITIAL.CALL METHOD g_root->create_simple_elementEXPORTINGname = 'items'parent = g_documentRECEIVINGrval = g_items.endif.if 输出URL(此处为ET_url)[] is not INITIAL.CALL METHOD g_root->create_simple_elementEXPORTINGname = 'attachments'parent = g_documentRECEIVINGrval = g_attachments.endif.*写header* >>>>> header_add_header_field:'字段名字' 表头A-PRESOURCENO,……………………………………………..'字段名字' 表头A -PROJNAME.*写行项目* >>>>> itemsloop at 表B into ls_**_i.CALL METHOD g_root->create_simple_elementEXPORTINGname = 'item'parent = g_itemsRECEIVINGrval = g_item._add_item_field:'字段名字' ls_**_i–字段,……………………………………………..'字段名字' ls_**_i–字段.ENDLOOP.*写url* >>>>> attachmentsloop at 输出URL(此处为ET_url)into ls_url.CALL METHOD g_root->create_simple_element EXPORTINGname = 'file'parent = g_attachmentsRECEIVINGrval = g_file._add_file_field:'filename' ls_url-FILENAME,'url' ls_url-URL.ENDLOOP.*将所有的东西都写到最后的输出中,即ev_xml中clear EV_XML.CREATE OBJECT go_cl_doc .CALL METHOD go_cl_doc->create_with_domEXPORTINGdocument = g_rootRECEIVINGretcode = gv_ret.CALL METHOD go_cl_doc->render_2_stringEXPORTINGpretty_print = 'X'IMPORTINGretcode = gv_retstream = EV_XMLsize = g_xml_size.SEND文件IMPORT中,定义输入的参数(理论上和DATA的import一样)Export和“表”都没有Source code中data: ls_**_h type 表头A结构,lt_**_i type table of 表B结构,lt_url type TABLE OF ZSTR_INTERFACE_URL,ls_url type ZSTR_INTERFACE_URL,lv_xml type string.*保持和DATA文件source code中最上面的输入输出格式一致CALL FUNCTION 'ZF_ESB_WF_PREFP_APPROVE_DATA'EXPORTING输入= 输入参数IMPORTING输出表头= ls_**_hTABLES输出表= lt_**_i输出url(此处为ET_URL)= lt_url.clear lv_xml.*保持和XML文件source code中最上面的输入输出格式一致(此时的输入,是DATA的输出)CALL FUNCTION 'ZF_ESB_WF_PREFP_APPROVE_XML'EXPORTING输入(表头)= ls_**_hIMPORTINGEV_XML = lv_xmlTABLES输入表= lt_**_i输入url(此处为ET_URL)= lt_url。

SMARTFORMS

SMARTFORMS

关于SMARTFORMS的教程——表格绘制1、格式绘制器的操作一、绘制格式2 代码的编写二、关于代码一、绘制格式1 输入事务码SMARTFORMS 进入开发环境,创建一个SMARTFORMS程序2 就可以创建你所要做的SMARTFORMS 在表格中创建你要创建的SMARTFORMS的名称3 点击回车进入SMARTFORMS编辑模式4 右击PAGE选择创建窗口,创建一个TOP窗口用来显示标题及图片,就出现以下画面5 右击TOP 窗口选择创建-----图形,在TOP窗口上添加一个图形,接着创建一个FOOT窗口,用来显示页数6 在默认的MAIN窗口中,右击选择创建文本7 在MAIN窗口中创建一个工资表,如:8 点击细节进入下一个画面,用来显示表格的详细信息(如:单元格的宽度,表的宽度)9 双击TABLE1 返回上一个画面,对表的操作10 表创建好了以后,就接着创建一个表行,右击创建表行姓名性别职位工资入职日期12 以上均为绘制表格。

下边是往里面填充数据,首先是定义一个表格接口13 表格接口定义好以后,要定义一个全局变量,主要用于循环内表,读数据14 双击TABLE1选择数据字段15 为了把数据写入表,必须用参数传递,所以要定义一些变量,选择TABLE-----主要区域右击创建表行16 行类型创建好以后,就传递参数,首先为表行的各个列创建一个文本(方法雷同)17 文本创建好以后,就进行赋值,选择(一般属性)其发法如下以上五个字段的赋值方法相同。

18 为了让表的字段都显示在中间,选择输出选项进行样式的设置效果如下:所有的列的字段取值的方法都一样19 对SALARY 这个字段进行汇总,首先在全局字段中,设置一个全局变量,选择计算这个字段)出现以下画面21 计算结束,取值,其方法同上面各个列的方法一样,其不同之处就是,要在表TABLE1的脚标创建一个文本22 设置页数,选择窗口FOOT,右击选择创建文本,在一般属性里面设置参数.以上步骤就是SMARTFORMS的制作,点击保存,激活即可,然后按F8进入下个画面继续F8,直到可以打印预览,完成后的效果如下二、关于代码1.输入 SE38 ,进入 ABAP/4 编辑器2.输入程序名称,点击创建,显示输入信息框,输入相应的信息。

ABAP CaseShare之 Smartforms篇

ABAP CaseShare之 Smartforms篇

SAP ABAP專業訓練教材 2). 建立文件夾保護
Case Share
Created by :Happy Show Time :9/9/2016 1:21 PM
17-38
編程二部-ABAP
SAP ABAP專業訓練教材
Case Share
5. Smartform中單詞截斷的原因
這是同一個form在不同的語言環境中的表現, 可見此問題與語言環境相關。
2-38
Created by :Happy Show Time :9/9/2016 1:21 PM
編程二部-ABAP
SAP ABAP專業訓練教材
Case Share
1. Smartform 的簡單換頁
使用重複調Form方式作form分頁,可以實現比較複雜的Form 形式: 如:總表頭只在每個單號的第一頁顯示 總表尾只在每個單號的最後一頁顯示 根據多個表頭換頁(如:根據公司代碼 和發票單號兩個 表頭,用此法就會比在form里寫代碼要容易的多) 另:單號的總頁碼和當前頁可以用系統變 量,避免複雜的 計算過程
2. 下載多個smartform到一張PDF
1).原理: 在同一個打印序列號碼下,重複調用同一個form或者 調用多個form。在關閉序列號時將此次的打印序列的相 關信息全部傳出,并導成PDF
Created by :Happy Show Time :9/9/2016 1:21 PM
9-38
編程二部-ABAP
Created by :Happy Show Time :9/9/2016 1:21 PM
18-38
編程二部-ABAP
SAP ABAP專業訓練教材
Case Share
6. Smartform 拖放欄位到輸出位置

ABAP-SMARTFORMS创建报表样式

ABAP-SMARTFORMS创建报表样式

ABAP-SMARTFORMS创建报表样式目的:根据用户需求自定义打印报表。

说明:Smartform的创建需要指定页格式、样式,如果报表中存在条码,则需要指定条码格式。

涉及内容:页格式(SPAD)、条码格式(SE73)、样式(SMARTFORMS)、报表(SMARTFORMS)。

1.3 SMARTFORMS创建报表样式1.3.1 创建报表样式1、T-CODE:SMARTFORMS,输入样式名称,点击”创建“按钮,如图1.3.1-1:图1.3.1-12、根据需要输入相应的参数,其中”标准段落“处先放空,因为还没有创建段落格式,如图1.3.1-2:图1.3.1-2具体参数的数值选择根据实际需要设定,如果不确定数值大小的效果,可以通过假设值输进去后激活样式,然后在创建好的报表表格中进行引用做测试,有差异后续再做调整。

输完后保存报表样式。

1.3.2 创建段落格式1、右击”段落格式“目录,然后点击”创建节点“,如图1.3.2-1:图1.3.2-12、输入节点名称,然后打钩,如图1.3.2-2:图1.3.2-23、对节点“LE”的“缩进和空格”和“字体”页签进行参数设置,如图1.3.2-3:图1.3.2-3同理,如果不确定参数具体的效果,可在激活后进行测试。

4、参照1-3步骤,创建节点“P0“,如图1.3.2-4:图1.3.2-45、参照1-3步骤,创建节点“P1“,如图1.3.2-5:图1.3.2-56、参照1-3步骤,创建节点“P2“,如图1.3.2-6:图1.3.2-6图中”对齐“参数选择”BLOCK“是为条码段落而设置的。

7、参照1-3步骤,创建节点“Z2“,如图1.3.2-7:图1.3.2-7具体各节点的参数在不确定实际效果时都可根据假设值进行配置,激活后在被引用时进行测试,调整。

8、前面已经创建了需要用到的节点,接下来就为“表头数据”指定对应的“标准段落”(根据实际需要设定),如图1.3.2-8:图1.3.2-81.3.3 创建字符格式1、右击”字符格式“目录,然后点击”创建节点“,如图1.3.3-1:图1.3.3-12、输入字符格式名,然后打钩,如图1.3.3-2:图1.3.3-23、生成字符格式”F1“后,对其”标准设置“和”字体“进行参数设置,如图1.3.3-3:图1.3.3-3说明:1、“标准设置”中的“作用”可以将字符的格式设置为上标或者下标;2、“标准设置”中的“条形码”可以选择系统标准的或者前面自定义的条码样式;3、如果节点为条码样式,参照图中设置即可;4、如果节点为字符样式,则在“字体”页签中对具体的参数进行设置。

ABAP Smartforms 学习操作手册

ABAP Smartforms 学习操作手册

smartforms基本操作文档编写人:胡兆平 编1:smartforms介绍:SMARTFORM是在SAPScript的基础之上产生的一种新的FORM制作方式,它完全兼容SAPScript。

SMARTFORMS和SAPSCRIPT FORM都是SAP中设计打印报表的工具,但是SAPScript需要手工一条一条的根据GUI来直接画界面,因此,总的来说,使用SmartForms来设计报表打印要简单很多。

而且SAPSrcipt在不为:SCC1,对应程序名为 RSTXSCRP。

其实smartforms就是用来对我们所需要的数据进行一些出来生成报2:smartforms实战:首先输入TCODE:smartforms进入创建smartforms的界面。

如图:创建样式我们可以看到它有三个可以选的列表,其中样式是用来创建给smartforms中文本,段落等应用的样式的输入要创建的smartforms的名称,点击就可以进入smartforms的设计界面了。

可以看出上面的界面分为三个部分,他们用处我也标了下。

现在我们来一一熟悉下左边个节点的用处:我们点击表格属性的输出选项:Navigating in theSAP Form Builder它主要用来显示一个SMARTFORM 的层次结构显示左边节点的一些属性的设置可以控制右边的form pa注意这里务必选用文环境开发,不然出现乱码问题点击表格接口:可以看这里和FM很类似,对了,其实这里就是用于外部程序调用此smartforms时的接口,我们可以设定我做的这个smartforms并没有在这设置参数,因为我在smartforms里就写了程序把数据取出来了,点击进入全局定义:Global Definition这里定义的是在form中共用的全局变量,还可以定义subroutine。

是form初始化的时候调用的一个routine,可以在这里做一些data初始化的工作。

用来设置货币或者数量的单位关联用的。

Smartforms入门

Smartforms入门

SMARTFORM知识一、SMARTFORM的特征SMARTFORM是在SAPScript的基础之上产生的一种新的FORM制作方式,它完全兼容SAPScript。

在做SMARTFORM的过程中基本上不需要多少编程知识,它有一个图形界面来帮助我们完成工作。

这个图形界面由三个部分组成,它们分别是:Form Painter、PC Editer、Table Painter。

启动SMARTFORM设计的事务代码:SMARTFORMS,进入的界面如下:输入你要创建的SMARTFORM的名称,然后点击“创建”,进入下面的FormBuilder界面:注:上面另外两个选项Style、Text module分别是用来定义FORM的样式和文本模块的。

上面的屏幕分为三个部分:Form Painter:主要用来设计SMARTFORM输出页面的格式,可以在页面上包含窗口和图(最右边)形,还可以指定它们在页面上的位置以及它们的大小等。

在图片左上角的工具栏有一个按钮可以用来显示和隐藏这个窗口。

PC Editer:主要用来初始化文本(TEXT)和域(FIELD),它包含的功能主要有以下几个方(中间)面,1)输入、删除、选择、Navigating in the SAP Form Builder:它主要用来显示一个SMARTFORM的层次结构。

(最左边)当你在层次结构中选择了一个NODE(结点)后,在上面截屏的中间部分会显示这个NODE的MAINTENANCE屏幕。

二、在做FORM前要了解的几个概念1、FORM的结构:一个FORM往往是由页面(PAGES)、输出区域(OUTPUT AREAS即WINDOWS)、地址栏(ADRESS)、图形(GRAPHICS,比如公司LOGO)、数据(DATA)、以及文本内容(TEXT)组成。

2、主窗体和子窗体:(MAIN WINDOWSAND SUBWINDOWS)这是页面上两个不同的输出区域,用来输出数据,文本等内容。

Smartforms培训

Smartforms培训

Wa_head :work area for itab_head
C 將需要输出的值抓取完毕后存放在3个內表中 D 调用函数
a 调用smart form,产生function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
说明:1.ZFFI_MSE_0007_02 为smart form的名称 2.l_fun 为产生的function module的程式 名称
Q&A
ENDIF.
b 调用2.4.1产生的function module,將程式中定义的3个內表 值传送給smart form.
CALL FUNCTION l_fun EXPORTING
*
* *
ARCHIVE_INDEX
ARCHIVE_INDEX_TAB ARCHIVE_PARAMETERS control_parameters
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING FORMNAME * VARIANT = 'ZFFI_MSE_0007_02' = ' '
*
DIRECT_CALL
= ' '
IMPORTING FM_NAME * EXCEPTIONS = l_fun
* EXCEPTIONS * * * * * FORMATTING_ERROR INTERNAL_ERROR SEND_ERROR USER_CANCELED OTHERS . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * ENDIF. WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. = 1 = 2 = 3 = 4 = 5

SAP_Smartforms

SAP_Smartforms

窗口节点



图形节点 地址节点 文本节点 表节点 模板节点 流逻辑 循环节点 程序行 命令节点 文件夹
Smartform说明

窗口节点---图形节点


建立图形节点可以显示一幅图形。可以在一个页面显示 多个图形。 设置图形节点的一般属性,即可指定要显示的图形。
Smartform说明
Smartform说明

在程序中调用Smartform。

指定Smartform (4)。


调用Smartforms的Function Module打印
CALL FUNCTION L_FM_NAME EXPORTING CONTROL_PARAMETERS = SSFCTRLOP类型变量 OUTPUT_OPTIONS = SSFCOMPOP类型变量 USER_SETTINGS = 'X' Smartform中定义参数… = 自定义变量 TABLES Smartform中定义Table = 自定义Internal table .


表头,即显示列标题。 主要区域,即Loop循环显示区。 脚标,即Footer区。
Smartform说明

窗口节点---模板


模板用于按一定格式输出一组文本。
可自定义模板的显示格式、列宽、列数量。

模板通常在次窗口中输出文本。 可设置模板的执行条件。 可根据模板的列数,增加相同数量的文本节点。

可针对某一个字符修改其字符格式,在文本节点中使用。 格式: <字符格式>文本
Smartform 文本模块

Smartform文本模块

smartforms 参数千分位显示

smartforms 参数千分位显示

smartforms 参数千分位显示
&symbol&(括号中,小写字母为变量)
&symbol&屏蔽从第一位开始的N位
&symbol(n)&只显示前N位
&symbol(S)&忽略正负号
&symbol(<)&符号在左边
&symbol(>)&符号在右边
&symbol(Z)&不输出前导零
&symbol(C)& 空格压缩
&symbol(.n)&显示n位的小数位
&symbol(T)&忽略千位分隔符
&symbol(En)&浮点数的幂指数为n
&symbol(n R)& n位显示,居右
&symbol(Ff)& fill character,用f 填充字段至完整位数显示&symbol(I)& 如果该字段是INITIAL,不输出
&symbol(K)&禁止系统类型转换
&'pre-text' symbol 'post-text'&在字段输出前后加入文本内容SET DATE MASK='date _ mask'设置日期显示模版
SET TIME MASK='time _ mask'设置时间显示模版。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 引言1.1 目的及范围本文档主要介绍Smarform使用方法。

可适用于ABAP开发人员,分析人员使用。

--最全1.2 参考资料•《SAP程序设计》•/saphelp_nw70/helpdata/en/a5/de6838abce021ae10000009b38f842/fram eset.htm1.3文档结构文档的各章节介绍的内容如下:•概述整个form的属性及用法•完整案例•附注2 Smartform应用及概述Smarform主要是SAP针对商业处理中固定格外文件批量打印的一种工具。

主要分为Form、Style、Text module三个组成部分,此三个组成部分都可以被单独创建和重复利用(T-CODE:SMARTFORMS),下面将分别讲解三种工具的使用方法。

3 上传背景图片输入TCODE:SE78: 选择 Form Graphics→Stored on Document Server→Graphics General Graphics→BMAP Bitmap Images点击按钮导入图片图片属性,导入成功4 FORM创建4.1 创建界面输入T-CODE:SMARTFORMS,进入以下界面,输入Form名称:ZHZP_SM_TEST,点击Create进入编辑窗口:此窗口分为三个区域:左边区域:包括全部变量,和树形结构的节点导航。

当点击相应的节点时,中间区域将会显示该节点的属性,中间区域:维护各个节点的属性等右边区域:图形化窗口绘制,可以手动调节节点分布位置,实现节点在页面的布局点击保存并选择PACKAGE和CR节点全局设置包含表格属性, 表格接口, 全局定义Field按钮控制Form中参数和系统变量的显示4.2 节点介绍Form是由不同类型的节点组成。

一个Form包含了一个或者多个Page,第一个Page是Form执行的的开始(当创建Form时,系统默认创建这个Page),下面将讲解每个节点的功能及其包含的子节点,4.2.1 输入区域此两种节点创建FORM时,系统默认创建一个PAGE,和一个Main window4.2.2 不包含下级节点的节点4.2.3 列表输出4.2.4 逻辑空控制节点4.2.5 其他节点所有节点共同的选项4.3 创建模板:T emplate节点用于创建文档中的静态表格,即在打印前已经确认了行数。

如果打印的行数不确定,需要用Table节点或者Loop循环Template输出,以下为创建过程:鼠标右键->创建->模板点击创建后出现模板的属性设置界面,有三个页签:这里最重要的是行类型的设置,它代表了表格中一行数据的样式(比如多少个单元格,每个单元格长度宽度,边框等),可以设置设置不同的行类型。

点击修改笔可以直接在白色编辑区域直接画,也可以点击细节直接输入数据。

点击细节画面.注意字段“参考“是引用另一行样式设置,则不需要再重新设置样式:系统提供了很多打印样式,可以选择,也可以自己设置样式,具体设置详见下一章节介绍。

条件页签:此节点执行条件:只有满足了设置了条件,才能执行此节点及它包含下一节点的内容额外属性:设置的事件将会执行4.4 创建文件夹鼠标右键->创建->文件夹有两个页签,功能同创建模板的一样4.5 创建文本Text输出文本,有四种类型,一般情况下选择E或者M类型即可鼠标右键->创建->文本有四个页签,其中“输出选项"和”条件“同以上两种节点。

针对文本节点,在输出选项需要特殊处理:设置行与列的位置,可参考在模板中设置的行类型。

详见下图设置文本类型类型为文本元素;可以直接输入要显示/打印的内容,如Airline,也可以动态数据输出,则需要点击“添加“按钮注意:字段前后需要增加符号“&“4.6 执行SMARTFORMSForm创建成功并激活后,系统自动生成一个FM.执行FM可以预览结果并打印。

手动执行此FM或者程序调用这个FM实现执行Form的功能。

程序调用将在案例中讲解,此处讲解执行执行FM.F8或者点击执行按钮生成的FM:执行FM,可以选择打印机,并提供打印预览和直接打印的功能4.7 创建smartforms 样式Smartforms的样式主要就是定义一些字体, 颜色,字体大小一些对齐方式什么的,然后段落的格式, 首先输入TCODE:smartforms进入创建smartforms的界面。

如图:点击创建之后进入样式创建界面样式中分三部分,表头,段落,字符,我们可以针对自己想要的样式来定义一些,然后用与smartforms中, 三部分的解释如下:4.7.1 创建表头数据创建Style时系统默认显示配置表头数据然后创建段落的格式有左对齐,右对齐,居中的完后需要回到表头数据中把标准段落填上,不然无法激活点击保存,激活,这样样式就是初步完成,后面根据samrtforms中的应用情况做想应得调整.5 文本模块创建文本模块作为Form中节点文本一个类型,维护了它,则可以多个Form共同使用,提供Form创建的效率。

两个页签组成:同创建文本一样,可以动态和静态类型6 案例6.1 案例描述以下是客户预订航班清单,要求只有第一页有表头。

我们将依次案例创建Form。

输入Tcode:SMARTFORMS,创建Form: zhzp_sm_test系统默认生成Page和Window进入维护界面:6.2 设置背景图片在PAGE1中可以设置背景图片6.3 创建接口参数I_CARRID,I_CONNID,I_FLDATE,I_FLAG为查询条件:航空公司,航班,日期,输出方式标识如果有要输出的数据可以在EXPORT中定义,如输出或输入有表格则可以通过Tables定义,这里我们只定义四个个查询输入参数,取数逻辑由于简单就放到smartforms中来实现了。

6.4 创建全局变量全局变量GT_SBOOK用于保存预订的航班清单,GW_SBOOK用于循环处理时工作区。

GV_TABIX用于流程控制,后面将讲到。

6.5 创建节点程序行:此处写代码获取要打印的航班清单。

当然,要打印的数据可通过接口传,这里只是为了演示节点的创建过程。

输入参数,输出参数,代码段6.6 创建节点可选条件这里创建这个节点是用于碰到打印输出是以表格还是模板6.7 TURE节点下创建节点循环循环处理航班清单6.8 循环下创建节点程序行:用于实现第一页有表头的条件判断。

6.9 创建节点模板(Template)此节点需要创建在Loop下。

并设置每行的样式,可以设置很多不同的,这里我们简单设置一种6.10 模板下创建可选择节点条件设置:只有第一行才执行打印表头6.11 创建文本在可选的节点的True节点中创建,此处将创建表头False中创建内容另外还有一点比较重要就是行列的设置6.12 最终的节点分布6.13 创建表格(table)节点这类型的创建,我们讲解的时候再创建.6.14 程序调用FormFM: SSF_FUNCTION_MODULE_NAME获取Form生成的FM,动态调用此FM 代码如下:REPORT zhzp_call_sm_sbook.DATA:lv_fm_name TYPE rs38l_fnam.DATA: control_parameters TYPE ssfctrlop.DATA: output_options TYPE ssfcompop.PARAMETERS:p_carrid TYPE s_carr_id,p_connid TYPE s_conn_id,p_fldate TYPE s_date,p_flag TYPE flag DEFAULT 'X'.control_parameters-no_dialog = 'X'.control_parameters-preview = 'X'.output_options-tddest = 'LONP'.*获取Form生成的FMCALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname = 'ZHZP_SM_TEST' "Form的名称IMPORTINGfm_name = lv_fm_nameEXCEPTIONSno_form = 1no_function_module = 2OTHERS = 3.IF sy-subrc <> 0.MESSAGE 'The Form is not exit' TYPE 'E'.ENDIF.*执行Form生成的FM进行打印CALL FUNCTION lv_fm_nameEXPORTINGcontrol_parameters = control_parametersoutput_options = output_optionsuser_settings = spacei_carrid = p_carridi_connid = p_connidi_fldate = p_fldatei_flag = p_flagEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3user_canceled = 4my_exception = 5OTHERS = 6.IF sy-subrc <> 0.MESSAGE 'Print fail' TYPE 'E'.ENDIF.7附注7.1 合并单元格对于在实际的报表开发中经常回需要合并单元格的情况,合并单元格的情况可以用两种方式实现,一种是通过多个窗口拼接来实现,一种是用模板无边框,下面就简单的讲解这两种方法:7.1.1 多窗口拼接先创建相应的窗口:然后在窗口下创建相应的模板这样就很简单的实现了单元格的合并如果有循环则可以在每个模板前加循环就行了7.1.2 无边框实现先建一个窗口,然后在窗口下建一个模板设置完后如图。

相关文档
最新文档