SAP应用事务开发—TABLE CONTROL 控件之应用
2015-06-26 16:42
169 查看
前期我自己自建了好多张表,其中有的表的数据是随着业务的增长添加的,比如:全国商超主数据表,随着公司入驻商超的数量增加而增加。所以需要做一个对话框式的应用交付渠道主管部门,当有新商超的时候,他们自行添加。这样就有了下面的例子。
利用SAP应用事务开发功能的表格控件(Table Control),此控件主要应用于数据的批量输出或输入。
1) Tcode:se38,新建程序:Z_INPUT_SAMPLE
![](http://img.my.csdn.net/uploads/201210/26/1351243940_3938.png)
2) 定义内表IT_ITAB
[plain] view
plaincopy
REPORT Z_INPUT_SAMPLE.
TABLES:ZMARKET_MESSAGE.
DATA: BEGIN OF IT_ITAB OCCURS 0,
CHK TYPE C,
SUPPERID LIKE ZMARKET_MESSAGE-SUPPERID,
SUPPER LIKE ZMARKET_MESSAGE-SUPPER,
MARKETID LIKE ZMARKET_MESSAGE-MARKETID,
MARKET LIKE ZMARKET_MESSAGE-MARKET,
END OF IT_ITAB.
2)我们可以用Tcode:SE51来实现Screen的创建和维护,当然使用该工具需要提供刚建的程序名及Screen编号。
注意:1000为SAP预留屏幕号,这里自定义的屏幕号必须定义1000以外的其他数字,且最多不能超过4位,本例定义屏幕号为100.
![](http://img.my.csdn.net/uploads/201210/26/1351243959_8694.png)
点击创建后,进入Screen设置界面。界面分3个部分,如下面的图
![](http://img.my.csdn.net/uploads/201210/26/1351243971_7373.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244068_4113.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244083_6016.png)
3) 你也可以使用Tcode:SE80来创建Screen及ABAP设计。
![](http://img.my.csdn.net/uploads/201210/26/1351244105_4393.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244118_8629.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244154_7743.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244167_1618.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244180_5481.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244193_2601.png)
4) 单击ScreenPainter 按钮,绘制一表格区域,系统将弹出表格创建向导。
![](http://img.my.csdn.net/uploads/201210/26/1351244212_5167.png)
单击:继续,在Name of table control这里输入屏幕表格元素名称,例如:T_TEST
![](http://img.my.csdn.net/uploads/201210/26/1351244226_1795.png)
单击:继续,在Internal program talbe 处按F4会自动出现刚我们创建的内表IT_ITAB.
Table work area也是如此。加入进去。
![](http://img.my.csdn.net/uploads/201210/26/1351244239_1447.png)
单击:继续,可以看到我们定义内表的Field,多选需要input数据的这几行。
![](http://img.my.csdn.net/uploads/201210/26/1351244258_1730.png)
单击:继续,因为我们要写入表格,所以单选Input control。With column headers是设置是否显示每栏的标题,CHK这个字段就是我们内表中第一个字段,就是为在此出现特别定义的。按F4会自动加显示出来
![](http://img.my.csdn.net/uploads/201210/26/1351244270_8601.png)
单击:继续,看到3个复选框,第一个是:是否滚动,第二个是:是否自动加载增加和删除按钮,第三个是:是否增加全选和全不选按钮,我们这里都选中,这样向导会自动加载程序代码,省事省力省时。
![](http://img.my.csdn.net/uploads/201210/26/1351244282_8470.png)
单击:继续,下面这些,可以保持默认就可。
![](http://img.my.csdn.net/uploads/201210/26/1351244292_6150.png)
单击:继续,最后一步,点击:complete,至此用向导就将Table control画好了。
![](http://img.my.csdn.net/uploads/201210/26/1351244325_6533.png)
双击标签栏的字段,出现属性窗口,更改下名称。
![](http://img.my.csdn.net/uploads/201210/26/1351244357_7831.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244368_2645.png)
最后保存激活。再回到我们的代码,发现通过向导建Table Control给我们做了很多便利的事情,如图,生成了方法,区分了类别。还生成不少代码。
![](http://img.my.csdn.net/uploads/201210/26/1351244392_6347.png)
回到ABAP编辑界面,我们给代码中加几句:
![](http://img.my.csdn.net/uploads/201210/26/1351244415_6304.png)
保存激活后,就可以看到如下效果:你会发现状态栏的按钮都不起作用。接下来,我们来设计它,让它起作用。
![](http://img.my.csdn.net/uploads/201210/26/1351244475_2258.png)
在逻辑流里将这两段被注释的语句解封。
![](http://img.my.csdn.net/uploads/201210/26/1351244462_3208.png)
然后双击:STATUS_0100,创建该对象
![](http://img.my.csdn.net/uploads/201210/26/1351244502_4959.png)
在出现的对话框中选择第二项提交。
![](http://img.my.csdn.net/uploads/201210/26/1351244519_3944.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244531_7854.png)
点击是,界面转到ABAP编辑界面,出现如下代码:
![](http://img.my.csdn.net/uploads/201210/26/1351244554_3599.png)
将 SET PF-STATUS 'xxxxxxxx'.SET TITLEBAR 'xxx'.解封,并重命名。
![](http://img.my.csdn.net/uploads/201210/26/1351244580_7714.png)
双击重命名后的名称:ZCREEN0100 创建该对象
![](http://img.my.csdn.net/uploads/201210/26/1351244596_8949.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244607_7113.png)
点击确定后,系统带我们进入如下界面:
![](http://img.my.csdn.net/uploads/201210/26/1351244621_9418.png)
将功能键区打开,我们可以看到我们经常看到的图标都在此聚集着
![](http://img.my.csdn.net/uploads/201210/26/1351244649_9783.png)
在每个ico图标上方命名
![](http://img.my.csdn.net/uploads/201210/26/1351244673_6124.png)
然后再双击每一个ico图标进行设置
![](http://img.my.csdn.net/uploads/201210/26/1351244694_5685.png)
完成后保存激活。这时你会发现右边树形结构处多了一栏。
![](http://img.my.csdn.net/uploads/201210/26/1351244715_5331.png)
进入PAI模块的T_TEST_USER_COMMAND,双击进去,在后面的代码栏输入如图代码。
![](http://img.my.csdn.net/uploads/201210/26/1351244730_5571.png)
保存激活后,再运行状态栏这行就可以正常使用了。
利用SAP应用事务开发功能的表格控件(Table Control),此控件主要应用于数据的批量输出或输入。
1) Tcode:se38,新建程序:Z_INPUT_SAMPLE
![](http://img.my.csdn.net/uploads/201210/26/1351243940_3938.png)
2) 定义内表IT_ITAB
[plain] view
plaincopy
REPORT Z_INPUT_SAMPLE.
TABLES:ZMARKET_MESSAGE.
DATA: BEGIN OF IT_ITAB OCCURS 0,
CHK TYPE C,
SUPPERID LIKE ZMARKET_MESSAGE-SUPPERID,
SUPPER LIKE ZMARKET_MESSAGE-SUPPER,
MARKETID LIKE ZMARKET_MESSAGE-MARKETID,
MARKET LIKE ZMARKET_MESSAGE-MARKET,
END OF IT_ITAB.
2)我们可以用Tcode:SE51来实现Screen的创建和维护,当然使用该工具需要提供刚建的程序名及Screen编号。
注意:1000为SAP预留屏幕号,这里自定义的屏幕号必须定义1000以外的其他数字,且最多不能超过4位,本例定义屏幕号为100.
![](http://img.my.csdn.net/uploads/201210/26/1351243959_8694.png)
点击创建后,进入Screen设置界面。界面分3个部分,如下面的图
![](http://img.my.csdn.net/uploads/201210/26/1351243971_7373.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244068_4113.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244083_6016.png)
3) 你也可以使用Tcode:SE80来创建Screen及ABAP设计。
![](http://img.my.csdn.net/uploads/201210/26/1351244105_4393.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244118_8629.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244154_7743.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244167_1618.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244180_5481.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244193_2601.png)
4) 单击ScreenPainter 按钮,绘制一表格区域,系统将弹出表格创建向导。
![](http://img.my.csdn.net/uploads/201210/26/1351244212_5167.png)
单击:继续,在Name of table control这里输入屏幕表格元素名称,例如:T_TEST
![](http://img.my.csdn.net/uploads/201210/26/1351244226_1795.png)
单击:继续,在Internal program talbe 处按F4会自动出现刚我们创建的内表IT_ITAB.
Table work area也是如此。加入进去。
![](http://img.my.csdn.net/uploads/201210/26/1351244239_1447.png)
单击:继续,可以看到我们定义内表的Field,多选需要input数据的这几行。
![](http://img.my.csdn.net/uploads/201210/26/1351244258_1730.png)
单击:继续,因为我们要写入表格,所以单选Input control。With column headers是设置是否显示每栏的标题,CHK这个字段就是我们内表中第一个字段,就是为在此出现特别定义的。按F4会自动加显示出来
![](http://img.my.csdn.net/uploads/201210/26/1351244270_8601.png)
单击:继续,看到3个复选框,第一个是:是否滚动,第二个是:是否自动加载增加和删除按钮,第三个是:是否增加全选和全不选按钮,我们这里都选中,这样向导会自动加载程序代码,省事省力省时。
![](http://img.my.csdn.net/uploads/201210/26/1351244282_8470.png)
单击:继续,下面这些,可以保持默认就可。
![](http://img.my.csdn.net/uploads/201210/26/1351244292_6150.png)
单击:继续,最后一步,点击:complete,至此用向导就将Table control画好了。
![](http://img.my.csdn.net/uploads/201210/26/1351244325_6533.png)
双击标签栏的字段,出现属性窗口,更改下名称。
![](http://img.my.csdn.net/uploads/201210/26/1351244357_7831.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244368_2645.png)
最后保存激活。再回到我们的代码,发现通过向导建Table Control给我们做了很多便利的事情,如图,生成了方法,区分了类别。还生成不少代码。
![](http://img.my.csdn.net/uploads/201210/26/1351244392_6347.png)
回到ABAP编辑界面,我们给代码中加几句:
![](http://img.my.csdn.net/uploads/201210/26/1351244415_6304.png)
保存激活后,就可以看到如下效果:你会发现状态栏的按钮都不起作用。接下来,我们来设计它,让它起作用。
![](http://img.my.csdn.net/uploads/201210/26/1351244475_2258.png)
在逻辑流里将这两段被注释的语句解封。
![](http://img.my.csdn.net/uploads/201210/26/1351244462_3208.png)
然后双击:STATUS_0100,创建该对象
![](http://img.my.csdn.net/uploads/201210/26/1351244502_4959.png)
在出现的对话框中选择第二项提交。
![](http://img.my.csdn.net/uploads/201210/26/1351244519_3944.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244531_7854.png)
点击是,界面转到ABAP编辑界面,出现如下代码:
![](http://img.my.csdn.net/uploads/201210/26/1351244554_3599.png)
将 SET PF-STATUS 'xxxxxxxx'.SET TITLEBAR 'xxx'.解封,并重命名。
![](http://img.my.csdn.net/uploads/201210/26/1351244580_7714.png)
双击重命名后的名称:ZCREEN0100 创建该对象
![](http://img.my.csdn.net/uploads/201210/26/1351244596_8949.png)
![](http://img.my.csdn.net/uploads/201210/26/1351244607_7113.png)
点击确定后,系统带我们进入如下界面:
![](http://img.my.csdn.net/uploads/201210/26/1351244621_9418.png)
将功能键区打开,我们可以看到我们经常看到的图标都在此聚集着
![](http://img.my.csdn.net/uploads/201210/26/1351244649_9783.png)
在每个ico图标上方命名
![](http://img.my.csdn.net/uploads/201210/26/1351244673_6124.png)
然后再双击每一个ico图标进行设置
![](http://img.my.csdn.net/uploads/201210/26/1351244694_5685.png)
完成后保存激活。这时你会发现右边树形结构处多了一栏。
![](http://img.my.csdn.net/uploads/201210/26/1351244715_5331.png)
进入PAI模块的T_TEST_USER_COMMAND,双击进去,在后面的代码栏输入如图代码。
![](http://img.my.csdn.net/uploads/201210/26/1351244730_5571.png)
保存激活后,再运行状态栏这行就可以正常使用了。
![](http://img.my.csdn.net/uploads/201210/26/1351244747_1950.png)
相关文章推荐
- 抽象工厂模式
- 每天进步一点点——linux——which
- 励志:滴滴打车App初期是怎么推广的?
- CocoaHTTPServer-master 2
- leetcode--Summary Ranges
- socket函数
- SpringMVC Redirect 跳转后保存Model中的数据
- Marshal UTF8 Strings in .NET
- $.extend,$.fn.extend和(function($){...})(jQuery);
- 第三个Sprint完结工作 用场景来规划测试工作.
- cocos2d-x3.6 连连看连通算法
- B树、B-树、B+树、B*树
- Android 触摸事件传递机制
- 《Java并发编程实践》笔记5——线程活跃性问题及其解决方法
- LintCode HashFunction 哈希函数
- 摄像机中的基础矩阵
- SpringMVC常用基础知识
- [ActionScript 3.0] 使用Embed在类中嵌入字体
- leetcode[88]:Merge Sorted Array
- 使用自定义的BaseAdapter实现 onitemclickListener