使用向导创建TC,主要有以下步骤,
1.定义你要在TC上显示的列为一个数据结构,并用该结构定义内表和工作区。在创建TC前一定要激活程序,这样TC才能获得定义的内表和工作区。
2.创建屏幕,转到格式布局,添加“表控件(含向导)”,之后按弹出的向导完成TC的创建。
3.在生成的屏幕里->逻辑流,PROCESS BEFORE OUTPUT(PBO).下面定义屏幕显示前的module,如MODULE STATUS_9000(9000是自己定义的屏幕号,下同)用来显示自己的status。在PROCESS AFTER INPUT(PAI)下面定义自己按钮响应的module,如 MODULE USER_COMMAND_9000。
有几个要注意的点。
1.如要有选择按钮,则要在数据结构那里定义一个CHAR字段来标识。选择按钮可以在向导里实现,也可后面自己添加选择框,样式可能不一样。
2.如果程序先有选择屏幕,那么得在START-OF-SELECTION.下面call screen 9000.
3.用向导做好tc后,会在程序里自动生成一些代码,这些代码以“&SPWIZARD:”开头。主要是它自己的一些处理,如下一页,全选等按钮的响应,这些代码不要动。
4.TC做好后,还是得自己添加一些MODULE,如PBO,PAI等,为了程序结构清晰,可以将PBO,PAI,以及用到的FUNCION都单独拿出来放到几个INCLUDE里面。
下面给出一些步骤及说明。
1.数据结构,内表及工作区定义
*&---------------------------------------------------------------------*
*&数据类型声明
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_data,
ZXH2 TYPE ZYHY_TABLE01-ZXH2,
ZXM2 TYPE ZYHY_TABLE01-ZXM2,
ZXB2 TYPE ZYHY_TABLE01-ZXB2,
ZNL2 TYPE ZYHY_TABLE01-ZNL2,
sel TYPE C, "选择框
END OF ty_data.
*&---------------------------------------------------------------------*
*&内表和工作区声明
*&---------------------------------------------------------------------*
DATA: it_data TYPE TABLE OF ty_data,
it_temp TYPE TABLE OF ty_data.
DATA: wa_data TYPE ty_data.
表控制名称,如定义为ztc2,那么后面一些关于该控件的,系统自动生成的代码一般会以ztc为开头
这就是为什么在这步之前一定要激活程序
这里不需要选择SEL字段(用于选择),后面会有设置
“选择列字段” 填sel,就是用来标识选择的一个字段。“单个”就是只能单选,“多重”就是能多选。
这里就是选择一些附加按钮,如全选,取消全选等。
在这里就可以定义PAI,PBO等模块放在单独的include文件里,在下图中我都放在一个程序里了。
向导介绍后:
最后在选择屏幕定义的代码下面添加取数代码即可:
START-OF-SELECTION.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE it_data
FROM ZYHY_TABLE01.
CALL SCREEN 9000.
运行输入选择条件后: