ABAP开发-10、Smart Forms表单开发_1

系列文章目录


前言


一、SMF表单介绍

1、概念:Smart Forms是在SAPScript的基础上产生的一种新的表单制作方式,完全兼容SAPScript,但Smart Forms更独立,并且使用起来更方便,可以在创建FORM的同时,生成该表单对应的功能块,从而为Form和ABAP程序提供参数接口。
更通俗的来讲,表单就是我们想打印出来的单子。
2、表单里包含的内容:页面Page、窗体Window、图形Graphic、地址Address、模板Template、表Table、是非判断Alternative、程序代码Program Lines、循环Loop、文本Text、命令Command、文件夹Folder

二、SMF表单开发步骤

1、创建FORM
2、创建STYLE样式
3、创建二维码
4、创建图片组件
5、文本的格式控制
6、程序调用SMARTFORMS

三、SMF表单开发实战

TCODE:SE11 在数据类型里既可以定义一个结构体,也可以定义一个表类型

1、创建结构体ZYT36_S_KQ_SF1_36130,存表头信息
TCODE:SE11
在这里插入图片描述
选择结构
在这里插入图片描述
填入各组件信息
在这里插入图片描述

然后点击激活
2、创建表类型ZYT36_T_KQ_SF1_36130,根据结构体创建表类型
TCODE:SE11
在这里插入图片描述
选择表类型
在这里插入图片描述
输入短文本,行项目填刚创建的结构体,点击激活
在这里插入图片描述
这里选“本地对象”或选择一个包然后保存
在这里插入图片描述
3、SMARTFORMS打开并创建一个表单 ZYT36_SF_KQ1_36130
TCODE:SMARTFORMS
输入要创建的表单的名字ZYT36_SF_KQ1_36130,点击创建
在这里插入图片描述
页格式:要打印出来的格式,DINA4就是A4;
样式:定义了一组格式
表格接口:和外界进行交互的渠道
在这里插入图片描述
4、添加表单的结构:一个结构体、一个表
在表格接口中的“导入”中定义一个参数IM_W_KQ(W代表work area)
在这里插入图片描述

在“表”中定义一个表,参数名为IT_KQ,类型分配为TYPE,关联类型为上面创建的表ZYT36_T_KQ_SF1_36130
在这里插入图片描述
然后点击激活,并保存
5、创建表单样式:根据用户提供的样本,把所有字体都创建出来
退回到smartforms初始界面,点击样式,输入样式名称,点击创建
在这里插入图片描述
填写描述信息
在这里插入图片描述
右键点击段落格式-》创建节点
样式根据用户需求来确定大致需要几类,需要哪些字体,之后做FORM的时候,就可以按样式选对应的段落格式P1、P2、P3…
在这里插入图片描述
在这里插入图片描述
根据需要的样式填写描述信息和对齐方式,这里我需要黑体18居中,并且对齐方式为CENTER定中心(居中)
在这里插入图片描述
在“字体”视图中,字体族选“CNHEI”,字体大小选“18”,字体样式选“粗体”
在这里插入图片描述
然后点击激活,保存
同样的,创建P2:黑体14居左,P3:黑体14居右,P4:黑体14居中
点击保存
在这里插入图片描述
6、修改表单里面使用到的标准样式
退出样式,选择表单,再点更改
在这里插入图片描述
点击表格属性,选择"输出选项",将样式栏改为自己创建的样式ZYT36_ST_KQ1_36130
在这里插入图片描述
然后点击“激活”
7、创建窗口(默认有一个窗口),定义窗口的位置和大小,需要注意单位
页和窗口包含了要显示的东西,一个PAGE有多个窗口,有表单中要显示的有几块内容就可以有几个窗口,但对于一个PAGE只有一个主窗口,主窗口决定是否要换页;
该实战要求中,把我们要显示的表单分为三块,则看作有三个窗口,主窗口中规定第一个窗口的位置和大小,如下:
在这里插入图片描述
8、创建一个模板,选择详细信息
MAIN主窗口右键-》创建-》模板,这个模板规定当前这个窗口里写的文本以什么样的形式存在,如下:
在这里插入图片描述
给模板命名T11,填写描述信息,选择样式ZYT36_ST_KQ1_36130
在这里插入图片描述
点击"模板",点击”详细信息“
在这里插入图片描述
9、定义每一行,每一行有几列,每一列宽度和高度
详细信息中规定有几行,每一行高度是多少,每一行又有几列;
填写每行信息,如下:
%C1,第1行,高度为12mm,宽度为180mm
%C2,第2到5行,每一行的高度为12mm,每一列的宽度为60mm
%C3,第6行,高度为12mm,宽度为180mm
在这里插入图片描述
然后点击”激活“
再点击“表绘制器”,就可以看到我们在详细信息里通过填数绘制出来的具体的表单宽高,如下:
在这里插入图片描述
在这里插入图片描述
10、在模板下,创建文本,定义文本的输出结构,第几行第几列
右键T11表头-》创建-》文本
在这里插入图片描述
进来后,填写“文本”和“描述”,例如:文本:T11(表示第一行第一列)
在这里插入图片描述
点击“输出选项”视图,填写要输出结构的行和列,表示输出的信息在第几行第几列
在这里插入图片描述
11、编辑文本,执行测试
再点“常规属性”视图,点击文本编辑器,如下:
在这里插入图片描述
进来后,点击转到-》修改编辑器
在这里插入图片描述
点击格式的搜索帮助,选择一个我们创建的格式,这里我们选P1黑体18居中
在这里插入图片描述
选择格式,输入行文本,然后点返回,返回后再点保存
在这里插入图片描述
点激活-》直接处理
在这里插入图片描述
再点执行
在这里插入图片描述
点执行
在这里插入图片描述
选打印预览
在这里插入图片描述
就可以看到如下表单
在这里插入图片描述
12、在模板里面,可以用表格绘制器修改边框
但不完整缺少我们想要的边框,可以返回去再加边框,一直返回到如下界面,点击小笔,再点击C1行选中(变黑),最后再点击“外部框架”
在这里插入图片描述
然后保存激活,一路执行到如下界面,可以看到我们添加的边框
在这里插入图片描述
若想调整这个框的位置,可以去SMARTFORMS-》样式-》段落格式-》P1-》间距中调整,再返回执行表单看效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同样的,再创建其他需要的文本—咸鱼机构,文本、描述,输出选项-》输出机构,常规属性-》文本编辑器-》转到-》修改编辑器-》输入格式和行文本-》返回-》激活保存-》执行
在这里插入图片描述
在这里插入图片描述
同样的,若想为“咸鱼机构”添加边框,可以在模板中为该行该列添加模板
在这里插入图片描述
在这里插入图片描述
13、上传图片
TCODE:SE78
先下载或保存好要显示的图片【注意:图片必须为BMP格式,且图片的位深度为16或24位,可以用Windows自带画图软件改变图片的位深度】
点击“导入”-》选择图片路径并上传-》填写名称和描述-》选择彩色位图图像-》点击执行
在这里插入图片描述
上传图片后,回到SMARTFORMS,创建图形
在这里插入图片描述
填写描述信息,常规属性视图中:填写名称、选择对象和ID,选择彩色位图图像,输出选项视图中:填写输出结构:行和列
然后保存激活执行,就可以看到上传的图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同理,创建其他文本,并在样式中修改文本显示样式
在这里插入图片描述
在这里插入图片描述
14、打印二维码
TCODE:SE73
在这里插入图片描述
创建系统条形码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
回到SMARTFORMS表单,双击样式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
填写描述信息以及二维码名称,激活保存
在这里插入图片描述
再在表头创建文本
在这里插入图片描述
在这里插入图片描述
&IM_W_KQ_ID&,< BC>代表要用BC这个字符格式来显示&IM_W_KQ_ID&这串数据,BC在样式里定义成在SE73里创建的二维码显示,&IM_W_KQ_ID&是学生的ID,因为之前我们已经在表格接口中定义了传入的参数IM_W_KQ_ID(把学生的信息传到了结构体里)
在这里插入图片描述
为二维码创建一个新的段落格式,首先双击样式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

年龄:
在这里插入图片描述

在这里插入图片描述
执行,功能模块中有定义的传入参数和表,点击圆圈,给定学号、姓名、年龄
在这里插入图片描述
在这里插入图片描述
编辑完后,点击返回,这时候就可以看到已经保存了刚输入的学生信息
在这里插入图片描述
再执行,就可以看到表单中显示的年龄
在这里插入图片描述

15、再创建新窗口,显示表格,并维护新表格的边距、宽度、高度
在这里插入图片描述
16、新窗口右键创建表
在这里插入图片描述
%LTYPE1,每一行有几列,如下图,让表格每一行有3列
在这里插入图片描述
全局定义一个变量GW_KQ,处理每一行的数据,定义一个全局的structure,关联的类型是之前定义的结构体
在这里插入图片描述
在这里插入图片描述
右键表头-》创建-》表行
在这里插入图片描述
在这里插入图片描述
修改每一列的描述信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再对每一列创建文本,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
同样的,为该行加边框
在这里插入图片描述
在这里插入图片描述
在“主要区域“填充表格信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为每个数据创建文本使其能填充信息
在这里插入图片描述
可以在TCODE :SU01中看缺省值,以此来填日期
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选中第一行,点击复制行,就有了多条数据,然后再根据自己的需要一条条改变数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后再创建一个窗口,同上面创建第二个窗口方法一样
在这里插入图片描述
在这里插入图片描述
在窗口右键创建模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击下一页,可到第二页
在这里插入图片描述
完整的,补充了姓名、性别、出生日期,显示如下
在这里插入图片描述


总结

  • 全局设置—定义表单接口
    • 传入参数–准备工作:定义结构体
    • 表–准备工作:SE11定义了一个表类型
  • 页和窗口–定义表单样式
    • 一个页有多个窗口,但是只有一个主窗口
    • 定义普通窗口
      • 定义窗口大小、位置(左边距、上边距)
      • 给窗口增加模板:在详细信息中操作规定一共有几行,每一行有多少列
      • 给模板添加文本:指定文本显示的行和列,指定文本的内容(字符串、根据传入参数进行显示&IM_W_KQ-NAME&)
      • 上传图片 TCODE:SE78
      • 定二维码 TCODE:SE73
    • 定义窗口显示表
      • 定义窗口大小
      • 给窗口增加表:表–在详细信息里定义每一行有几列;数据–把接口中的表,loop赋值到一个全局变量中
      • 表头–增加一个表行:选择行类型;给每一列增加文本元素
      • 主要区域–增加一个表行:选择行类型;给每一列增加文本元素–&GW_KQ-DATE…&
    • SMARTFORM中的系统变量
      • SFSY-FORMPAGES
      • SFSY-PAGE
      • SFSY-DATE
      • SFSY-TIME
  • 测试-执行-执行FUNCTION-给接口赋值-打印预览
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值