smartform实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SMARTFORM 实例根据图解练习
1.创建report程序。
在report程序中取得数据和调用你创建的的smartform。
(下面我取得
的数据放在G_TAB_TEST的内表中,在调用smartform(ZTEST_22_SF0001)传入)。
创建report程序步骤:
输入tcode:se38.
输入要创建的的report程序名称然后点击“创建”按钮。
输入相应的描述,选择类型为可执行程序,状态为测试程序。
然后点击“保存”按钮。
点击“本地保存按钮”。
然后开始编写代码。
Report代码如下:(代码内容不再讲解)
*&---------------------------------------------------------------------* *& Report ZTEST_22_RSF0001
*&
*&---------------------------------------------------------------------* *&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_22_RSF0001 NO STANDARD PAGE HEADING LINE-SIZE 150
MESSAGE-ID ZBSUN.
DATA:
G_TAB_TEST LIKE STANDARD TABLE OF SFLIGHT,
G_REC_TEST TYPE SFLIGHT.
DATA:
FM_NAME TYPE RS38L_FNAM.
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME.
SELECT-OPTIONS S_LINE FOR G_REC_TEST-CARRID NO INTERVALS.
SELECT-OPTIONS S_DATE FOR G_REC_TEST-FLDATE.
SELECTION-SCREEN END OF BLOCK BLOCK1.
INITIALIZATION.
REFRESH G_TAB_TEST.
CLEAR: G_REC_TEST,
FM_NAME.
START-OF-SELECTION.
SELECT *
INTO TABLE G_TAB_TEST
FROM SFLIGHT
WHERE CARRID IN S_LINE
AND FLDATE IN S_DATE.
IF SY-SUBRC <> 0.
MESSAGE E001 WITH 'NO DATA'.
* No data selected.
ENDIF.
END-OF-SELECTION.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZTEST_22_SF0001' * 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.
CALL FUNCTION fm_name
* EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS =
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
TABLES
G_TAB_TEST = G_TAB_TEST
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5 .
IF SY-SUBRC <> 0.
* <error handling>
ENDIF.
2.创建smartform程序。
输入tcode:smartforms。
输入要创建的smartform程序的名称(这个名称要和report程序调用的名称一致)。
然后点击“创建按钮”。
双击“表格接口”,输入一个内表的名称(这个名称要和report程序调用时的变量名必须一致,表的类型也必须一致)。
然后点击“全局定义”。
输入工作区的名称和类型
输入一个工作区的名称和类型,类型必须和内表的类型一致。
然后点击“页和窗口 page->main window”然后输入一个名称(FIRST),如下图。
然后在 “FIRST ”上右键创建一个table ,创建table 后会自动生成“表头”,“主要区域”和“脚标”。
我设置了4列,每列的宽度为4厘米。
然后点击“数据”。
输入刚才在“表格接口”中输入的内表名称和在“全局定义”中输入的工作区名称。
设置要显示的列数和每列的宽度,总列数的宽度要小于表的宽度。
然后在“主要区域”上右键创建一个table line(表行)。
输入一个名称,选择刚才你设置的显示格式(LINE1),选择后会自动生成你刚才设置列数,然后修改每一列的名称。
(我刚才设置了4列)
在每一个列的下面创建一个“文本”并修改文本的名称。
列的名称
显示格式
然后双击文本。
点击
输入“&G_REC_TEST-CARRID&”,也就是刚才的内表指向一个字段。
以同样的方法设置其他的列。
表头的设置和上面的操作基本相似。
就是在给相应的列赋值时更简单些。
直接输入要显示的列的名称
脚标设置也相似。
设置表格线:
然后保存并激活你程序,运行结果:
选择你要设置的表格线的格式。