SAP的ABAP屏幕程序如何使用Table Control进行数据交互

简介: SAP中ABAP的屏幕元素涉及到“定制控制” 和 “Table Control” 两个数据显示容器。 定制控制是单向的数据展示,使用abap的SQL语句把数据从透明表(硬盘中)读取至内表(内存),进行一系列数据整理,然后采用ALV表格的形式把这些数据展示在“定制控制”这个用于数据显示的容器中。

SAP中ABAP的屏幕元素涉及到“定制控制” 和 “Table Control” 两个数据显示容器。
定制控制是单向的数据展示,使用abap的SQL语句把数据从透明表(硬盘中)读取至内表(内存),进行一系列数据整理,然后采用ALV表格的形式把这些数据展示在“定制控制”这个用于数据显示的容器中。
而Table Control不仅拥有“定制控制”的功能,而且还可以通过这个“TC”把用户使用键盘输入的数据写入透明表(内表)中。也就是说,区别在于TC是一个双向的数据显示容器。

下面给大家演示TC的使用过程。
在SAP中使用事务码SE80进入Object Navigator
screenshot
选中需要被修改的屏幕(screen)点击格式按钮(go to layout)
screenshot
进入了screen painter
看到我们今天提到的两个控件,如上图。
严格来说,所谓的“控件”其实是 “屏幕元素”,黄佳的书第十章《事务屏幕设计》
screenshot
接下来12章《高级屏幕元素》继续讲到了Table Control,他翻译成表格控件。TC是SAP的标准控件之一,标准控件需要使用CONTROLS语句在ABAP程序代码中进行定义,并且有相应的屏幕元素与之对应。
screenshot
screenshot
screenshot
我准备举例演示该功能的使用方法。
http://blog.csdn.net/szlaptop/article/details/8116441
csdn关于TableControl的好文
上面链接中的文章,基本讲了用TC显示内表中数据的过程(读取并显示),但是没有描述反向的数据写入过程(收集数据并保存)。

首先,使用SAP的事务码SE80(OBJECT NAVIGATOR)创建一个程序(program)Z_MM_TESTTC

screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
然后就在SE80中创建了一个空程序
screenshot
我们要在这个空程序中创建一个普通屏幕,然后在屏幕中创建table control,然后使用TC(table control)进行双向数据传递。
下面创建普通屏幕(编号2000)
screenshot
screenshot
screenshot
创建了普通屏幕2000之后需要为它添加GUI title 和GUI status
screenshot
screenshot
screenshot
screenshot
screenshot
上图所示,为2000屏幕的状态,也就是屏幕的状态栏,这是一种交互方式。我们需要添加back exit save这三个按钮,让它们生效。而且随时保存一下,保存、检查、激活。
screenshot
然后双击屏幕2000 为它设置PBO和PAI
screenshot
去掉注释
双击MODULE进行编码设置
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot

经过上述步骤,创建了程序,创建了屏幕2000
但是程序还不能执行,因为程序并没有呼叫屏幕,所以屏幕无法被现实,下面让程序执行的时候,去呼叫屏幕。
在程序中写语句: START-OF-SELECTION
screenshot
screenshot
screenshot
经过上述配置,屏幕2000已经可以使用了
screenshot
screenshot
目前它还只是一个空屏幕,但是已经拥有了三个按钮save back exit
下面我们对这个屏幕进行配置让它显示我们需要的内容
screenshot
下图就是这个空屏幕
screenshot
看到今天的主角:Table Control 屏幕元素
screenshot
TC是一个屏幕元素,用来显示数据和获取用户的输入
TC 与程序中的一个内表 一一对应。
今天例子中的TC用来访问SAP中我通过事务码SE11自己定义的透明表ZPRELINK
如下图所示
screenshot
因此我们在程序中首先定义内表,内表的结构参考ZPRELINK
screenshot
然后进入screen painter 修改屏幕2000
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
经过上述步骤,创建了如下图所示的TC
screenshot
关闭Screen painter返回Object Navigator,我们发现abap编辑器自动添加了很多代码,这些代码包括:
1.2000屏幕PBO和PAI中除了最初两个MODULE之外的代码
screenshot
2.主程序中自动添加了400行左右的代码:
screenshot
screenshot
screenshot
然后运行该程序
screenshot
我们看到已经可以使用TC显示数据库中的数据了。

接下来我们要做第二件事:在TC中输入数据,然后通过屏幕2000的保存按钮,将数据存储到ZPRELINK这个透明表中。
screenshot
咔嚓,多了一行
screenshot
我想要的效果是:
screenshot
首先ZCJNO这列,应该改为仅仅用来输出数据,不用输入
返回Screen Painter
screenshot
然后,为save按钮添加代码,响应这个事件。
位置在PAI的MODULE中
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
这样,我们就实现了通过TC向透明表写入数据

目录
相关文章
|
7月前
SAP CLIENT 数据配置文件的导出/导入
SAP CLIENT 数据配置文件的导出/导入
165 1
|
7月前
如何在用户登录时sap时触发一特定程序执行
如何在用户登录时sap时触发一特定程序执行
111 0
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
526 0
|
数据处理
|
BI
SAP ALV报表选择屏幕筛选字段动态文本
SAP ALV报表选择屏幕筛选字段动态文本
245 0
SAP 程序DEBUG内存分析
DEBUG:程序调试内存分析(如下)
87 0
SAP ALV 程序执行中返回选择界面
ALV 程序执行中返回选择界面
195 0
|
索引
SAP ABAP——内表(八)【修改内表数据】
本文主要介绍一下SAP ABAP中内表的增删查改语句中的修改内表数据的相关语句,包括利用关键字修改数据,利用索引修改数据,利用WHERE语句修改数据
926 3
SAP ABAP——内表(八)【修改内表数据】
SAP ABAP——内表(七)【追加内表数据—COLLECT】
本文主要介绍一下SAP ABAP中内表的增删查改语句中的追加内表数据的COLLECT相关语句
710 1
SAP ABAP——内表(七)【追加内表数据—COLLECT】
|
数据库
SAP ABAP——选择屏幕demo
本文是一个ABAP选择屏幕的demo,废话不多说直接看demo场景
350 0
SAP ABAP——选择屏幕demo