TalbeControl
使用方法总结
一.自己手动制作
TableControl
(我最喜欢用的方法)
1)
定义内表
DATA wa type mseg.
DATA itab like table of wa.
2)
定义表控制对象
CONTROL: TC1 type TABLEVIEW USING SCREEN 0100.
3)
PBO
*
将内表中的值传至
TableControl
中显示出来
.
*
内表
=>
屏幕
LOOP AT itab into wa
WITH CONTROL TC1
CURSOR TC1-current_line.
…
*
将内表或变量中的值传给
TableControl
中相应的字段.
MODULE TC1_change_field_attr.
ENDLOOP.
4)
PAI
*
将
TableControl
中的值传至内表
*
屏幕
=>
内表
LOOP AT itab
CHAIN.
FIELD itab-co1.
FIELD itab-co2.
…
*
将
TableControl
中相应字段的值传给内表或变量
MODULE TC1_modify ON CHAIN-REQUEST.
…
ENDCHAIN.
ENDLOOP.
5)
Module
module TC1_modify input.
modify itab from wa index TC1-current_line.
endmodule.
二、通过向导建立
TableControl
1)进入Screen Painter;
2)将Table Control拖入屏幕,进入向导界面;
3)输入Table Control名称,继续;
4)输入内表名称( 注意,应该先在程序中建立好内表);
5)选择表字段,继续;
6)设置Input/output attributes、Columns、Line selectability属性;
7)设置是否有Scroll;
8)输入生成程序的名称,可以用默认;
9)单击“完成”;
10)观察程序,TableContrl和相应代码都已自动生成,建立成功。
三、与
TableContrl
相关的一些知识
我总结如下:
TableControl-LINES
表格控件总行数
TableControl-TOP_LINE
表格控件第一行索引(内表中行号)
TableControl-CURRENT_LINE 表格控件当前行,LOOP到的行号(内表的行号)
SY-LOOPC 屏幕表格中可见的行号(手动画的TableControl的行数)
No
|
NAME
|
ADDRESS
| 内表中行号
(
虚拟出来的
)
|
|
|
| 2 |
|
|
光标所在字段
|
3
|
|
|
|
4
|
Get cursor line n. "得到当前光标所在行号
内表中的行号 = Top_line + n – 1.
= 2 + 2 – 1.
= 3.