一、准备工作
1、新建include程序
1> include程序名字:ZDD_INC_0104
2> ZDD_INC_0104 程序中的内容为
2、使用T-CODE :SE11新建两个数据库表ZTDD、ZTDD2
新建完数据库表后往表中添加数据即可
3、新建一个程序名为:ZDD_TEST_0104
REPORT ZDD_TEST_0104.
INCLUDE ZDD_INC_0104.
TABLES:ZTDD,ZTDD2.
TYPES:BEGIN OF ZITAB,
NAME LIKE ZTDD-NAME,
AGE LIKE ZTDD-AGE,
SCHOOL LIKE ZTDD2-SCHOOL,
YEARTOSCHOOL LIKE ZTDD2-YEARTOSCHOOL,
END OF ZITAB.
DATA:ZITAB_ZTDD TYPE ZITAB OCCURS 0.
DATA:WA_ZTDD TYPE ZITAB.
DATA:fm_name TYPE rs38l_fnam.
DATA:itemsname(32) TYPE c.
START-OF-SELECTION.
SELECT-OPTIONS: age FOR ZTDD-AGE.
PERFORM GETDATA.
PERFORM PRINT_DATA.
END-OF-SELECTION.
FORM GETDATA.
SELECT z1~NAME z1~AGE z2~SCHOOL z2~YEARTOSCHOOL
INTO CORRESPONDING FIELDS OF TABLE ZITAB_ZTDD
FROM ZTDD as z1 INNER JOIN ZTDD2 AS z2
ON z1~NAME = z2~NAME
WHERE z1~AGE in age.
ENDFORM.
FORM PRINT_DATA.
call function 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZDD_FORM_1231'
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
CONCATENATE 'ZSPMMF1002IT' SY-UZEIT INTO itemsname.
savebuffer ZITAB_ZTDD[] itemsname.
*调用 smartForms
call function fm_name
EXPORTING
ptr_items = itemsname "这个ptr_items是smartforms中表接口的参数,下面会有描述
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4.
clearbuffer itemsname.
ENDFORM.
程序里的内容就到此为止了,下面是smartforms里的内容了
================================================================================================================
4、使用T-CODE :smartforms新建一个为:ZDD_FORM_1231的表单,样式随便选择
1> 定义表格接口—>导入
2> 全局定义中的设置
全局定义—>类型
全局定义—>全局数据
全局定义—>初始化
全局定义—>格式化程序
到此全局定义中的设置完毕了,下面是要在窗口中显示内容了
==========================================================================================================
5、先在主窗口中新建个一个表
1> 在表头里新建一个新行,行类型就选%LTYPE1即出现四个新列,然后在每一个列里右击新建文本,内容依次为:姓名、年龄、学校、入学日期等文本
2> 双击新表1—>数据
3> 在主要区域里新建一个行,选择行类型为%LTYPE1,然后出现四个列,在每一个列的文本中输入变量参数字段
注意:在全局数据中有两个参数:wa_items和IT_ITEMS,wa_items在smartforms中是工作区,it_items是内表结构
二、演示结果