ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ABAP设置输入焦点和表格控件行数的注意事项

ABAP设置输入焦点和表格控件行数的注意事项

原创 Linux操作系统 作者:hawkx 时间:2008-01-18 10:34:53 0 删除 编辑
在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代码段中使用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/634491/viewspace-151162/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 幸福婚姻法则
请登录后发表评论 登录
全部评论

注册时间:2008-01-17

  • 博文量
    37
  • 访问量
    125613