SMARTFORM 实例练习
来源:互联网 发布:滚球软件 编辑:程序博客网 时间:2024/05/16 03:17
谢谢分享这位博文的前辈,写的很详细,我照着抄了一遍,运行一下,原来对smartform一无所知,现在大概了解smartform是做什么的了。
结果如图:
1. 创建report程序。在report程序中取得数据和调用你创建的的smartform。(下面我取得的数据放在G_TAB_TEST的内表中,在调用smartform(ZTEST_22_SF0001)传入)。
创建report程序步骤:
输入tcode:se38.
然后点击“创建”按钮。
输入相应的描述,选择类型为可执行程序,状态为测试程序。然后点击“保存”按钮。
点击“本地保存按钮”。然后开始编写代码。
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.
1. 创建smartform程序。
输入tcode:smartforms。
输入要创建的smartform程序的名称(这个名称要和report程序调用的名称一致)。然后点击“创建按钮”。
双击“表格接口”,输入一个内表的名称(这个名称要和report程序调用时的变量名必须一致,表的类型也必须一致)。然后点击“全局定义”。
输入一个工作区的名称和类型,类型必须和内表的类型一致。然后点击“页和窗口àpage->main window”然后输入一个名称(FIRST),如下图。
然后在 “FIRST”上右键创建一个table,创建table后会自动生成“表头”,“主要区域”和“脚标”。
我设置了4列,每列的宽度为4厘米。
然后点击“数据”。
输入刚才在“表格接口”中输入的内表名称和在“全局定义”中输入的工作区名称。
然后在“主要区域”上右键创建一个table line(表行)。输入一个名称,选择刚才你设置的显示格式(LINE1),选择后会自动生成你刚才设置列数,然后修改每一列的名称。(我刚才设置了4列)
输入“&G_REC_TEST-CARRID&”,也就是刚才的内表指向一个字段。
以同样的方法设置其他的列。
表头的设置和上面的操作基本相似。就是在给相应的列赋值时更简单些。
然后保存并激活你程序,运行结果:
- SMARTFORM 实例练习
- ABAP Smartform实例
- ABAP开发Smartform实例
- SmartForm
- Smartform
- SMARTFORM & SAPScript
- smartform(一)
- SMARTFORM & SAPScript
- smartform分页
- smartform打印
- SMARTFORM 总结
- SMARTFORM 注意事项
- smartform入门
- URL实例练习收集
- VSS实例练习
- Boost::regex练习实例
- 浮动综合实例练习
- Android实例练习
- 8_1_1复数类的运算符重载
- InteliJ IDEA 创建J2ee项目
- 思科配置范围端口到vlan
- android中ListView的简单使用
- 项目一利用友元函数完成运算符的重载
- SMARTFORM 实例练习
- 《编程之美:分层遍历二叉树》的另外两个实现
- 栈的实现(功能未完整版1)version one
- Vim的插件推荐
- Emacs显示行号
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- 电源风扇引起的联想B500运行中死机黑屏问题
- c++中静态成员函数访问非静态成员变量
- tomcat 部署