0
点赞
收藏
分享

微信扫一扫

屏幕中设置焦点_SAP刘梦_新浪博客

关键字:

SET CURSOR语句必须位于PBO代码段中,否则不起作用。示例如下:     SET CURSOR FIELD 'MARA-MEINS' LINE 2 OFFSET 1.


在ABAP程序中,ALV控件功能强大,操作灵活,大部分的表格都使用ALV来设计,但是ABAP基本控件中的TableView依然以设计简单、编码方便的原因而经常被使用。我们在使用TableView中需要处理的一个问题就是设置TableView的总行数。     在屏幕上放置一个Table控件后,还要在ABAP程序中声明一个同名的TableView变量才能操作,声明示例如下。     CONTROLS tb TYPE TABLEVIEW USING SCREEN 100.     声明变量后,TableView的总行数可以通过字段lines来设置。如tb-lines = 10即设置Table的总行数为10,用户只能在这10行内输入数据。如果设tb-lines = 0,则垂直滚动条不可用,屏幕可见范围内的行都可以输入。通常我们设置Table的总行数等于和它关联的内表的总行数。     需要注意的是:设置TableView的lines字段必须在PBO操作之前,也就是说必须在进入屏幕(CALL SCREEN)之前或是处理屏幕的PAI代码段中。另外,因为 lines = 0表示不处理总行数,为了实现Table的总行数为0,我们可以将Table包含的所有可输入字段的input = 0。这个操作必须在PBO代码段中进行,不能和设置lines的代码在一起,否则不起作用。   设置input的示例代码如下(请按你的需要加以更改)。

   LOOP AT screen.
IF screen-name = 'xxx'.
IF tb-lines = 0.
screen-input = 0.
ELSE.
screen-input = 1.
ENDIF.
modify screen.
ENDIF
ENDLOOP.

    另外就是有时需要设置屏幕的输入焦点在哪个控件上,或者是在表格的哪一行中。通过SET CURSOR语句可以设置屏幕的输入焦点,SET CURSOR语句必须位于PBO代码段中,否则不起作用。示例如下:     SET CURSOR FIELD 'MARA-MEINS' LINE 2 OFFSET 1.     其中FIELD后面是一个字符串或是字符串变量,是接受输入焦点的控件的名字,如果这个控件不在TABLE中,则不要使用后面的LINE关键字,当控件处 于一个Table中时,LINE表示焦点应该位于Table的第几行,OFFSET指定焦点处于控件的第N个位置,从左往右计算,最前面是0。

  提示:可以通过GET CURSOR语句得到屏幕当前的输入焦点,此语句可以在PAI和PBO代码段中使用。

举报

相关推荐

0 条评论