ABAP 表格控制(Table Control)和步循环详解编程语言
2023-06-13 09:11:49 时间
表格控制
和步循环是用于屏幕表格显示的对象。表格控制只是增强了的步循环,它可以使用桌面应用程序中表格工具的“Look” 和“Feel”来显示数据 。表格控制还提供使表格易于查看和使用的专用格式化功能
步循环的
一个特点是它们的表行能够在屏幕上跨越多行。 相反,表格控制中的行总是单行,但可以很长。(表格控制的行能够滚动。)
通常表格控制所提供的许多特征由系统的 SAPGUI 前端操纵, 因此,不必在ABAP/4 事务中编制 任何特征( 除了竖直滚 动)。
语句负责读取往返传递于屏幕和 ABAP/4 程序之间的屏幕表格值 。
因此必须同时在 PBO 和 PAI 事件中为屏幕中的每一个表格编制LOOP语句。至少在此应有一个空LOOP ENDLOOP语句。
LOOP
语句还用于驱动滚动。在PBO事件中,LOOP使用一个参数告诉从表格的何处开 始循环。该参数因此导致下一个屏幕表格显示的更新(对于表格控制,该参数是表格控制结构中的TOP_LINE 字段;对于步循环,该参数为用于LOOP语句的CURSOR参数。)。ABAP/4 程序和系统都可以设置该参数。
注意,屏幕表格中所显示的行数可以改变。当屏幕表格可调整并且用户更改窗口的高度时就会出现这种情况。在这种情况下,PAI中的下一个LOOP就更改PAI中传到ABAP/4程序的表格行数。
有多少行就循环多少次)
,同时在每个块和程序的对应 ABAP/4 字段之间往复传送数据 。可以在 ABAP/4 中将屏幕表格字段声明为任何类型(数据库表 格、结构或 单个字段) ,内表字段除外。
该语句可同时在内表和屏幕表格行中循环。常常将此屏幕表格字段声明为内表字段,但不是非得如此。
SY-STEPL
以查找当前正在处理的屏幕表格行的索引。每循环一次,系统就设置一次该变量。SY-STEPL 的值总是介于 1与当前所显示的行数之间。您可以在程序中声明表格偏移量(常称为 BASE,并通常用
SY-LOOPC
初始化)并用它同SY-STEPL 一起获得与当前屏幕表格行相对应的内表行。(IND = BASE + SY-STEPL 1.)
该形式的 LOOP语句在内表中循环,对每行都执行 actions 。对于每个内表行,系统将相应程序 字段传送到对应的屏幕表格行,或将相应的屏幕表格行传送回对应的程序字段。
使用步循环时,在PAI事件中省略CURSOR 参数。FROM和TO参数只能用于步循环。WITH CONTROL参数只能用于表格控制。
告诉系统从何处开始显示
。对于表格控制, scroll-var 是TABLEVIEW 结构中的TOP_LINE字段(省略的话系统会自动设置)。对于步循环,请声明局部程序变量以用作CURSOR参数。
步循环分为两类:静态的和动态的。静态步循环有固定的大小,运行时无法更改。动态步循环大小可变 。如果用户重置窗口的大小,系统就会自动地增加或减小所显示的步循环块的个数。可以定义任意数量的静态步循环,但动态步循环只能有一个。
可以在屏幕制作器中指定步循环的类型。屏幕中的每一个循环都有“循环类型”(fixed= 静态, variable= 动态)和“ 循环次数” 属性。如果循环是固定的,“循环次数”告诉 系统用于显 示的循环块的数量。该数值可以永久不变。编制动态和静态步循环的方法完全一样。两种类型都可以使用 LOOP 和 LOOP AT 语句。
在layout设计器中放置的I/O field可以是来自dbtab,也可以是来自itab,其实是个screen可以识别的 work area
screen
上放置的I/O field和其它控件如Table Control一定要和主程序中声明的名称一致,如果放置之前没有定义的field,将会出现runtime error或者根本无法激活.
只在屏幕表格中循环,会以屏幕表格为主,在显示的时候需要使所要显示的内表适应屏幕,如果屏幕表格的行数比内表的行数多的话仍然会显示一些空行如
在内表与屏幕表格中同时循环可以使屏幕表格和内表同时循环.不必严格控制内表要读取那一行(个人效率较前者要高,因为不用再次搜索和判断),而且,不会显示多于的空白行.
l
操作的时候直接modify那个内表系统就能自动识别user的更新.只是循环的时候要注意指针的运动,尽量使屏幕和内表一起循环.
l
由于屏幕表格和程序内表关联,所以在PAI中LOOP AT ITAB 的时候仍然可以使用屏幕表格的各种参数eg. index ctrl1-current_line
其中的各个列必须和要和与之关联的内表的字段名称一样,
否则将无法访问,或者是置无法取出.
2.
另外,那个 w/SelColumn选项可以和itab中的一个C类型的字段关联以判断表格行的选中情况.
SY-STEPL
以查找当前正在处理的屏幕表格行的索引。每循环一次,系统就设置一次该变量。SY-STEPL 的值总是介于 1与当前所显示的行数之间。您可以在程序中声明表格偏移量(常称为 BASE,并通常用
SY-LOOPC
初始化)并用它同SY-STEPL 一起获得与当前屏幕表格行相对应的内表行。(IND = BASE + SY-STEPL 1.)
和步循环是用于屏幕表格显示的对象。表格控制只是增强了的步循环,它可以使用桌面应用程序中表格工具的“Look” 和“Feel”来显示数据 。表格控制还提供使表格易于查看和使用的专用格式化功能
步循环的
一个特点是它们的表行能够在屏幕上跨越多行。 相反,表格控制中的行总是单行,但可以很长。(表格控制的行能够滚动。)
通常表格控制所提供的许多特征由系统的 SAPGUI 前端操纵, 因此,不必在ABAP/4 事务中编制 任何特征( 除了竖直滚 动)。
语句负责读取往返传递于屏幕和 ABAP/4 程序之间的屏幕表格值 。
因此必须同时在 PBO 和 PAI 事件中为屏幕中的每一个表格编制LOOP语句。至少在此应有一个空LOOP ENDLOOP语句。
LOOP
语句还用于驱动滚动。在PBO事件中,LOOP使用一个参数告诉从表格的何处开 始循环。该参数因此导致下一个屏幕表格显示的更新(对于表格控制,该参数是表格控制结构中的TOP_LINE 字段;对于步循环,该参数为用于LOOP语句的CURSOR参数。)。ABAP/4 程序和系统都可以设置该参数。
注意,屏幕表格中所显示的行数可以改变。当屏幕表格可调整并且用户更改窗口的高度时就会出现这种情况。在这种情况下,PAI中的下一个LOOP就更改PAI中传到ABAP/4程序的表格行数。
有多少行就循环多少次)
,同时在每个块和程序的对应 ABAP/4 字段之间往复传送数据 。可以在 ABAP/4 中将屏幕表格字段声明为任何类型(数据库表 格、结构或 单个字段) ,内表字段除外。
该语句可同时在内表和屏幕表格行中循环。常常将此屏幕表格字段声明为内表字段,但不是非得如此。
SY-STEPL
以查找当前正在处理的屏幕表格行的索引。每循环一次,系统就设置一次该变量。SY-STEPL 的值总是介于 1与当前所显示的行数之间。您可以在程序中声明表格偏移量(常称为 BASE,并通常用
SY-LOOPC
初始化)并用它同SY-STEPL 一起获得与当前屏幕表格行相对应的内表行。(IND = BASE + SY-STEPL 1.)
该形式的 LOOP语句在内表中循环,对每行都执行 actions 。对于每个内表行,系统将相应程序 字段传送到对应的屏幕表格行,或将相应的屏幕表格行传送回对应的程序字段。
使用步循环时,在PAI事件中省略CURSOR 参数。FROM和TO参数只能用于步循环。WITH CONTROL参数只能用于表格控制。
告诉系统从何处开始显示
。对于表格控制, scroll-var 是TABLEVIEW 结构中的TOP_LINE字段(省略的话系统会自动设置)。对于步循环,请声明局部程序变量以用作CURSOR参数。
步循环分为两类:静态的和动态的。静态步循环有固定的大小,运行时无法更改。动态步循环大小可变 。如果用户重置窗口的大小,系统就会自动地增加或减小所显示的步循环块的个数。可以定义任意数量的静态步循环,但动态步循环只能有一个。
可以在屏幕制作器中指定步循环的类型。屏幕中的每一个循环都有“循环类型”(fixed= 静态, variable= 动态)和“ 循环次数” 属性。如果循环是固定的,“循环次数”告诉 系统用于显 示的循环块的数量。该数值可以永久不变。编制动态和静态步循环的方法完全一样。两种类型都可以使用 LOOP 和 LOOP AT 语句。
在layout设计器中放置的I/O field可以是来自dbtab,也可以是来自itab,其实是个screen可以识别的 work area
screen
上放置的I/O field和其它控件如Table Control一定要和主程序中声明的名称一致,如果放置之前没有定义的field,将会出现runtime error或者根本无法激活.
只在屏幕表格中循环,会以屏幕表格为主,在显示的时候需要使所要显示的内表适应屏幕,如果屏幕表格的行数比内表的行数多的话仍然会显示一些空行如
在内表与屏幕表格中同时循环可以使屏幕表格和内表同时循环.不必严格控制内表要读取那一行(个人效率较前者要高,因为不用再次搜索和判断),而且,不会显示多于的空白行.
l
操作的时候直接modify那个内表系统就能自动识别user的更新.只是循环的时候要注意指针的运动,尽量使屏幕和内表一起循环.
l
由于屏幕表格和程序内表关联,所以在PAI中LOOP AT ITAB 的时候仍然可以使用屏幕表格的各种参数eg. index ctrl1-current_line
其中的各个列必须和要和与之关联的内表的字段名称一样,
否则将无法访问,或者是置无法取出.
2.
另外,那个 w/SelColumn选项可以和itab中的一个C类型的字段关联以判断表格行的选中情况.
SY-STEPL
以查找当前正在处理的屏幕表格行的索引。每循环一次,系统就设置一次该变量。SY-STEPL 的值总是介于 1与当前所显示的行数之间。您可以在程序中声明表格偏移量(常称为 BASE,并通常用
SY-LOOPC
初始化)并用它同SY-STEPL 一起获得与当前屏幕表格行相对应的内表行。(IND = BASE + SY-STEPL 1.)
18285.html
c相关文章
- 流程控制-循环控制
- shell循环控制sleep、continue、break
- shell循环控制sleep、continue、break
- 国产开源一个特性粒度管理服务,DevOps工具之一,精细控制变更风险
- Windows Server 2008远程控制安全设置技巧
- SQL开发知识:Oracle查询sql语句错误信息的控制和定位处理方式
- Linux账号文件控制管理步骤详解
- Linux下建立权限控制目录(linux建立权限目录)
- Linux下多条件判断:实现更精确的控制(linuxif多个条件)
- MySQL中的循环控制:优雅简明(mysqlloop)
- 控制利用Oracle循环控制编程优化技术(oracle中的循环)
- Linux下的循环控制:跳出枯燥的编程(linux循环语句)
- 掌控Oracle控制语句,事半功倍(oracle控制语句)
- 控制Java控制Redis中数据过期策略(redisjava过期)
- 使用开源同步工具 Syncthing 控制你的数据
- MySQL中的循环控制语句活用(mysql的循环语句)
- 操作Linux远程控制:键盘操作技能(linux远程键盘)
- 使用Oracle控制方差:如何在Oracle数据库中使用方差函数(oracle方差)
- MSSQL怎样实现行锁控制?(mssql 锁定行)
- Oracle灵活使用循环语句控制(oracle中循环的语句)
- Oracle中判断与循环控制(oracle中判断与循环)
- 实现Redis网络访问权限控制(redis设置访问网段)
- [图]Android辅助套件迎来Camera Switches:用面部表情控制手机