关于SMARTFORMS的教程——表格绘制
1、格式绘制器的操作一、绘制格式
2 代码的编写 二、 关于代码
一、绘制格式
1 输入事务码 SMARTFORMS 进入开发环境,创建一个SMARTFORMS程序
2 就可以创建你所要做的SMARTFORMS 在表格中创建你要创建的SMARTFORMS
- 1 -
的名称
3 点击回车进入SMARTFORMS编辑模式
- 2 -
4 右击PAGE选择创建窗口,创建一个TOP窗口用来显示标题及图片,就出现以下画面
- 3 -
5 右击TOP 窗口选择创建-----图形,在TOP窗口上添加一个图形,
- 4 -
接着创建一个FOOT窗口,用来显示页数
- 5 -
6 在默认的MAIN窗口中,右击选择创建文本
- 6 -
7 在MAIN窗口中创建一个工资表,如:
- 7 -
8 点击细节进入下一个画面,用来显示表格的详细信息(如:单元格的宽度,表的宽度)
- 8 -
9 双击TABLE1 返回上一个画面,对表的操作
- 9 -
- 10 -
10 表创建好了以后,就接着创建一个表行,右击创建表行
11 创建好表行以后,会出现表列,然后为五列分别创建一个文本,文本的内容为
姓名 性别 职位 工资 入职日期
- 11 -
12 以上均为绘制表格。下边是往里面填充数据,首先是定义一个表格接口
- 12 -
13 表格接口定义好以后,要定义一个全局变量, 主要用于循环内表,读数据
14 双击TABLE1选择数据字段
- 13 -
15 为了把数据写入表,必须用参数传递,所以要定义一些变量,选择TABLE-----主要区域 右击创建表行
- 14 -
16 行类型创建好以后,就传递参数,首先为表行的各个列创建一个文本(方法雷同)
- 15 -
17 文本创建好以后,就进行赋值,选择(一般属性)其发法如下
以上五个字段的赋值方法相同。
18 为了让表的字段都显示在中间,选择输出选项 进行样式的设置
- 16 -
效果如下:
- 17 -
所有的列的字段取值的方法都一样
19 对SALARY 这个字段进行汇总,首先在全局字段中,设置一个全局变量,
20 全局变量设置好以后,要对它进行计算,其操作方法如下:(双击TABLE1
选择计算这个字段)出现以下画面
- 18 -
21 计算结束,取值,其方法同上面各个列的方法一样,其不同之处就是,要在表TABLE1的脚标创建一个文本
- 19 -
22 设置页数,选择窗口FOOT,右击选择创建文本,在一般属性里面设置参数
- 20 -
.以上步骤就是SMARTFORMS的制作,点击保存,激活即可,然后按F8进入下个画面
- 21 -
继续F8,直到可以打印预览,完成后的效果如下
- 22 -
二、 关于代码
1. 输入 SE38 ,进入 ABAP/4 编辑器
2. 输入程序名称,点击创建,显示输入信息框,输入相应的信息。
- 23 -
3进入编辑状态
- 24 -
4声明数据
5填充内表
- 25 -
6 CALL FUNCTION
- 26 -
7 与SMARTFORMS联系的参数
8详细代码
*&---------------------------------------------------------------------*
*& *
Report Z_TESTYHM7
*& *
*&---------------------------------------------------------------------*
---------------------------------------------------------------------*
- 27 -
REPORT Z_TESTYHM7 .
* 声明数据及参数
DATA FM_NAME TYPE RS38L_FNAM.
DATA WA_JOB type ZWJF.
DATA IT_JOB TYPE ZWTEST.
* 开始报表输出
START-OF-SELECTION.
* 准备数据
DO 20 TIMES.
PERFORM FRM_INPUTDATA.
ENDDO.
* 输出
PERFORM FRM_OUTPUTDATA.
- 28 -
********************************
FORM FRM_INPUTDATA.
WA_JOB-NAME = '王剑峰'.
WA_JOB-SEX = '男'.
WA_JOB-JOB = 'SAP ABAP 开发'.
WA_JOB-SALARY = '420.023'.
WA_JOB-EDATE = '20040816'.
APPEND WA_JOB TO IT_JOB.
WA_JOB-NAME = '沈威'.
WA_JOB-SEX = '男'.
WA_JOB-JOB = 'SAP ABAP 开发'.
WA_JOB-SALARY = '420.623'.
WA_JOB-EDATE = '20040818'.
- 29 -
APPEND WA_JOB TO IT_JOB.
WA_JOB-NAME = '姚红梅'.
WA_JOB-SEX = '女'.
WA_JOB-JOB = 'SAP ABAP 开发'.
WA_JOB-SALARY = '420.523'.
WA_JOB-EDATE = '20040818'.
APPEND WA_JOB TO IT_JOB.
WA_JOB-NAME = '徐斌'.
WA_JOB-SEX = '男'.
WA_JOB-JOB = 'SAP ABAP 开发'.
WA_JOB-SALARY = '420.423'.
WA_JOB-EDATE = '20040818'.
APPEND WA_JOB TO IT_JOB.
- 30 -
WA_JOB-NAME = '钱联敏'.
WA_JOB-SEX = '男'.
WA_JOB-JOB = 'SAP ABAP 开发'.
WA_JOB-SALARY = '420.323'.
WA_JOB-EDATE = '20040618'.
APPEND WA_JOB TO IT_JOB.
ENDFORM.
*----------------------------------------------------------------------*
FORM FRM_OUTPUTDATA.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'Z_TESTYHM7'
IMPORTING
- 31 -
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE: / 'ERROR 1'.
ENDIF.
CALL FUNCTION FM_NAME
TABLES
ITAB1 = IT_JOB
EXCEPTIONS
FORMATTING_ERROR = 1
- 32 -
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.
ENDFORM.
说明:执行的文件名称
1. 程序文件,Z_TESTYHM7
2. 格式文件,Z_ TESTYHM7(SMARTFORMS)
- 33 -