SAP SMARTFORMS技术之我见--总结

SAP smartforms的使用前面的也写了一些。但是都是比较笼统的理解,讲解的也不够详细深入。这里再做一些补充,说一下详细制作form的方法。

  1.首先,对于要创建smartform实现数据打印的程序来说,第一就是对打印格式的梳理。需要用到哪些段落格式,左对齐、右对齐还是居中,还需要用到哪些字体。这是准备工作。

  输入事务码smartforms,进行打印格式的创建界面。首先完成格式的创建。选择第二项,样式,输入要创建的样式的名字,点击创建。此处以样式ztest举例。如图所示:

图1.

  为格式输入描述。点击段落格式,创建段落格式A1,A2,A3,格式A1为“定中心”,即“居中”,字体为“粗体”,打印中标题使用;段落格式A2为“左对齐”;段落格式A3为“右对齐”。

段落格式创建完成后创建字符格式。点击字符格式,创建字符格式B1,B2,B3,字体族全部设置为CNKAI,字体大小分别为20pt,15pt,11pt.字体颜色为黑色。B1为标题字体大小,B2为表头,B3为表体字体大小如图2.最好在边距上定为1MM,否则可能字与表格贴在一起。

图2.

至此,创建form所用到的段落格式和字体格式已经创建完了。整体结构如下图所示。

图3

下面开始创建表格。

2.接下来我们在创建好样式的基础上创建表格。

  同样是事务码smartforms,选择第一项,输入要创建的表格的名字点创建进行表格创建界面。这里是关键。需要对打印表格的整体结构进行设计。

1).点击表格绘制器。右边出现表格设计窗口。这里是进行表格整体结构的设计。比较设计标题,表头,表尾等工作都是在这里完成。我们可以只使用一个MAIN窗口,也可以对表头、表尾用单独的窗口。这取决于打印需求。如果需要打印的表格要求标题和表尾在每一页都要打印,就可以创建两个窗口作为表头了表尾窗口;如果需要打印的表格要求标题只在第一页,表尾只在最后一页打印,那么只需要一个MAIN窗口就可以了。我们这里只用MAIN窗口,将标题、页头和表头都放在MAIN窗口中,另外再建立一个窗口作为打印页码的显示窗口。如图所示:

图4.

2).整体表结构设计完成后我们开始设计表的其它部分。页头设计,包括标题,说明等等。在MAIN窗口上点击右键->创建->模板, 创建页头模板PAGE_HEAD。

双击模板,点击右边的“细节”按钮。为模板设计行列数及行高列宽。我们这里将页头分为四行,第一行为标题行内容为“测试表格”,第二行为客户内容为“测试客户”,第三行为备注内容为测试表格,第四行为期间内容为2010年2月1日到2010年2月28日。表宽度设置为17CM。将模板的输出选项卡中的样式填为步骤1创建的样式ZTEST。将模板的条件选项卡中的以及附加事件“仅在第一页显示”前面的复选框选中,如图所示:

图5.

接下来在模板上创建四个文本,点击右键->创建->文本。文本分别为上面要求的文本。为文本选择段落格式和字符格式。标题为段落格式A1,居中,字符格式为B1;输出选项卡中的格式仍然选择ZTEST。依次为每个文本选择格式。页头创建完毕。然后在每个文本对应的“输出选项”选项卡中最下方的输出结构中填入要将文本显示在模板的哪一行哪一列。这里页头每行只有一列,所以每个文本的这里应该填1 1,2 1 ,3 1 ,4 1.

接着要创建打印表的表头。同样是创建一个模板,名称为table_head,同时创建5个文本为每列显示的内容的中文说明,第一列为序号,第二列为交货单号等等。然后在每个文本对应的“输出选项”选项卡中最下方的输出结构中填入要将文本显示在模板的哪一行哪一列。这里页头每行只有一列,所以每个文本的这里应该填1 1,1 2 ,1 3 ,1 4,1 5,1 6.这个模板要在每一个新页开始的时候打开出来。

3)创建loop循环。在MAIN窗口上点击右键,选择创建->流逻辑->循环。然后再在loop循环上面点击右键,创建要打印的数据明细模板。类型与表头模板相同。在LOOP循环的数据选项卡中填入要打印的内表如图所示:

4)控制打印换页。在每一页都输出表头。在LOOP循环上创建可选项,在可选项的TRUE项下创建命令,选中转到新页,NEWPAGE。在控制打印换页之前需要先判断已经输出了多少行,这是在LOOP循环下创建程序行进行行数统计的变量完成的工作,假如每页要输出40行,那么只要变量与40求余为0,就说明需要换页了。我们在命令的条件中输入条件,即变量 = 0,刚执行换页操作。

5)下面的表尾,页尾和页码窗口就不再一一讲述了,方法与上面的大致相同,只要摸索着做就可以了。另外对于要打印的数据表否需要建立数据库表或者是把表EXPORT到ABAP内在中,然后在SMARTFORM中IMPORT,前面介绍的比较清楚,这里就不做介绍了。我觉得把取到的数据表export到内在中比建立数据库表要省时省力,推荐用这种方法。各人根据各人的爱好不同选择不同的方法。下面是表格的整体结构。

3.在程序中调用FORM

DATA fm_name TYPE tdsfname.定义函数名称

*调用函数生成函数名称

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname           = 'ZTFORM' "这里为已创建的FOMR名

variant            = ' '

direct_call        = ' '

IMPORTING

fm_name            = fm_name

EXCEPTIONS

no_form            = 1

no_function_module = 2

OTHERS             = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

*调用FORM函数

CALL FUNCTION fm_name

EXPORTING

im_zfidz         = text-mid

user_id          = p_kunnr

user_name        = name1

date             = date

date_begin       = budat-low

date_end         = budat-high

dmbtr_f          = dmbtr_f

EXCEPTIONS

formatting_error = 1

internal_error   = 2

send_error       = 3

user_canceled    = 4

OTHERS           = 5.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

【转载】详细制作form的方法相关推荐

  1. (转载)连连看游戏外挂详细制作过程

    标 题: [原创]新人入手第一个游戏外挂,附上详细制作过程 作 者: caigui 时 间: 2013-01-09,00:56:16 链 接: http://bbs.pediy.com/showthr ...

  2. 个人电脑详细的安全设置方法之一

    个人电脑详细的安全设置方法之一 由于现在家用电脑所使用的操作系统多数为Winxp 和Win2000pro,建议还在使用98的朋友换换系统,连都放弃了的系统你还用它干嘛?)所以后面我将主要讲一下基于这两 ...

  3. 用python制作音乐_Python3使用PySynth制作音乐的方法

    本人虽然五音不全,但是听歌还是很喜欢的.希望能利用机器自动制作音乐,本我发现了一个比较适合入门的有趣的开源音乐生成模块 PySynth ,文我们主要讲解下如何Python3使用PySynth制作音乐. ...

  4. 个人电脑详细的安全设置方法

    个人电脑详细的安全设置方法由于现在家用电脑所使用的操作系统多数为Win XP 和Win2000 pro(建议还在使用98的朋友换换系统,连微软都放弃了的系统你还用它干嘛?)所以后面我将主要讲一下基于这 ...

  5. linux弹珠游戏实现,弹珠游戏台玩具的详细制作图解

    图片:20180207_171332_3125.jpg 图片:20180207_171332_3127.jpg 图片:20180207_171332_3128.jpg 图片:20180207_1713 ...

  6. 如何在电脑上制作请假条表格_如何使用电脑制作请假条?电脑制作请假条方法介绍...

    请假条是公司里常用的表格,今天小编要讲的便是如何使用电脑制作请假条,今天小编就为大家详细介绍一下,来看看吧! 软件名称:微软Office Word.Excel.ppt2007兼容包(兼容2003补丁插 ...

  7. 轮播图详细制作思路与过程

    轮播图详细制作思路与过程 图片轮播我们经常在众多网站中看到,各种轮播特效有着非常美观炫酷的视觉效果.很多初学js的小伙伴都很心生向往.我也不例外,所以在此分享个写轮播图的思路和过程,有不足之处请多多指 ...

  8. stm32 播放高帧率高分辨率视频和照片详细制作过程(播放Bad Apple为例)

    stm32 播放高帧率高分辨率视频和照片详细制作过程 下文以播放Bad Apple视频为例. 文章是我边调试边写的,质量不好请见谅. 文章目录 stm32 播放高帧率高分辨率视频和照片详细制作过程 硬 ...

  9. Fragment的详细介绍和使用方法

    [Android UI设计与开发]第07期:底部菜单栏(二)Fragment的详细介绍和使用方法 标签: androidFragment界面设计底部菜单栏Wi-Fi 2013-05-31 22:38  ...

最新文章

  1. x9此计算机上没有hasp_为什么我在别人电脑上好装mastercam9,在自己电脑装不成功,它没有出现什么HASP驱动安装的提示,为什么...
  2. 正式发布python版本的年份_飞书首次举办产品发布会,新版本“”正式发布
  3. 剑指offer58-||.左旋转字符串
  4. 今天用python的turtle简单画了一副眼镜
  5. python selenium 对浏览器标签页进行关闭和切换
  6. AcWing 1826. 农田缩减(思维+枚举)
  7. idea插件开发教程
  8. 数据分析师工作的一点点感悟
  9. 第二本书:疯狂人类进化史20190621
  10. 无线网改了密码后连不上服务器了,修改wifi密码后连不上网了怎么办?
  11. 分享一个盟重英雄脚本挂机工具(附随机数生成源码)
  12. performing vcs refresh卡住不动解决方法
  13. Android关闭屏幕,但不休眠
  14. 身份证过期补办,派出所会打电话通知吗?
  15. 海信e5k和e5h区别 对比评测 哪个好
  16. SharePoint Designer 2013 和 Visio 2013 中的工作流开发
  17. java 输出hello
  18. Linux 命令 常用总结(一)
  19. 基于Egret的微信小游戏H5项目总结
  20. 《CISP》易错点记录

热门文章

  1. 【数据挖掘重要笔记day30】3D图的绘制:3D散布图、3D曲面图
  2. Jim Williams神作:The Art and Science of Analog Circuit Design.pdf文件免费分享
  3. 微信小程序之服装购物商城(含源码+论文+答辩PPT等)
  4. 热力学 第一定律 和amp;nbs…
  5. 数字化改造转型到底意味着什么
  6. WiFi联盟认证、WiFi联盟测试、WiFi联盟认证测试周期、WiFi联盟会员费是多少?
  7. 读书笔记{11} VLAN及其在生产中的应用
  8. IC-CAD Methodology知识图谱
  9. 触摸键盘 多文输入法
  10. Java多线程学习十五:公平锁和非公平锁,为什么要“非公平”?