ABAP中的Table Control编程
CONTROLS: tc_0100 TYPE TABLEVIEW USING SCREEN .
调试可知,tc_0100是个Deep Structure,拥有很多属性,它实现了对表格控件的所有属性的封装。
LOOP AT itab INTO wa WITH CONTROL tc_0100 CURSOR tc_0100-current_line.
MODULE tc_0100_change_field_attr.
ENDLOOP.
所以,只要在tc_0100_change_field_attr中添加LOOP AT SCREEN即可,如下:
MODULE tc_0100_change_field_attr OUTPUT.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'ITAB-KEYFELD'.
IF tc_0100-current_line > db_num.
screen-input = ''.
ELSE.
screen-input = ''.
ENDIF.
WHEN OTHERS.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
MODULE tc_0100_modify INPUT.
IF tc_0100-current_line <= LINES( itab ).
MODIFY itab FROM wa INDEX tc_0100-current_line.
ELSE.
APPEND wa TO itab.
ENDIF.
ENDMODULE.
前面说过,如果tc_0100-lines = 50,那么Module tc_0100_change_field_attr将被执行50次。
tc_0100-top_line = .
tc_0100-left_col = .
DATA: l_line TYPE i,
l_field TYPE screen-name.
GET CURSOR FIELD l_field LINE l_line.
这样就取得了鼠标在内表的所在行以及字段名。不过要注意的是,如果希望映射到itab,那可别忘了top_line。正确读取鼠标所在条目对应于内表哪行数据的语句是:
GET CURSOR LINE l_line.
l_line = l_line + tc_0100-top_line - .
READ TABLE itab INTO wa INDEX l_line.
SET CURSOR FIELD l_field LINE l_line.

DATA: l_hide TYPE c,
ls_col LIKE LINE OF tc_0100-cols.
LOOP AT tc_0100-cols INTO ls_col WHERE screen-name = 'WA-FIELD2'.
IF l_hide IS INITIAL.
ls_col-vislength = .
ELSE.
ls_col-vislength = .
ENDIF.
MODIFY tc_0100-cols FROM ls_col.
ENDLOOP.
ABAP中的Table Control编程的更多相关文章
- ABAP Table Control
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通 ...
- ABAP 表格控制(Table Control)和步循环
表格控制(Table Control)和步循环 1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...
- ABAP table control例子
[转自]http://blog.csdn.net/lhx20/article/details/3039909Table control用于在screen上以表格的形式显示数据,在table contr ...
- abap table control里面各种属性和事件的写法
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏 ...
- table control里面各种属性和事件
[转自]http://blog.csdn.net/hackai886/article/details/7935366 SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以 ...
- SAP ABAP编程 Table Control动态隐藏列
在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...
- ABAP 中 Table Control例子
实现了Table Control的主要的一些功能,可以作为例子参考,实现的功能有是否可编辑切换,选择某一条记录点击按钮显示详细信息,新增记录,删除记录,选择所有记录,选择光标所有记录,取消选择所有,排 ...
- 字符串处理:ABAP中的正则表达式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- .Net中的反应式编程(Reactive Programming)
系列主题:基于消息的软件架构模型演变 一.反应式编程(Reactive Programming) 1.什么是反应式编程:反应式编程(Reactive programming)简称Rx,他是一个使用LI ...
随机推荐
- [c++] Associative Containers
关联容器 和 顺序容器 的本质差别在于: 关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素. Reference: http://www.cnblogs.c ...
- [Python] urllib2.HTTPError: HTTP Error 403: Forbidden
搬运自http://www.2cto.com/kf/201309/242273.html,感谢原作. 之所以出现上面的异常,是因为如果用 urllib.request.urlopen 方式打开一个UR ...
- golang内存分配
golang内存分配 new一个对象的时候,入口函数是malloc.go中的newobject函数 func newobject(typ *_type) unsafe.Pointer { flags ...
- 问题:Virtual Box如何复制镜像
今天遇到的情况就是vagrant启动的默认Virtalbox镜像变了,大致可以处理的方法是 1 修改vagrant的默认virtalbox 2 重新在这个新的virtualbox中安装需要的软件 3 ...
- React Native版本升级的正确姿势
基于React Native(简称:RN)的APP也发布了三个版本了,RN由于两周就会发布一版从最开始项目用的0.29到最近的0.37,做为一个开源项目来说更新真是跟坐火箭般快速,当然对于我们使用的人 ...
- ASP.NET MVC 学习之路由(URL Routing)
在ASP.NET MVC中,一个URL请求是由对应的一个Controller中的Action来处理的,由URL Routing来告诉MVC如何定位到正确的Controller和Action. 默认路由 ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(十九 )ConnectionIncomingData
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- WPF的一些总是记不住的Tips
Margin(Left,Top,Right,Bottom); HorizontalAlignment(Height的Opposite,水平对齐方式):VerticalAlignment(Width的反 ...
- PHP中用GD绘制饼图
PHP中用GD绘制饼图,绘制的类见代码: Class Chart{ private $image; // 定义图像 private $title; // 定义标题 private $ydata; // ...
- PHP中利用GD实现的柱状图
PHP中利用GD实现的柱状图,自己写的一个画柱状图的类,上代码. <?php Class Chart{ private $image; // 定义图像 private $title; // 定义 ...