• 屏幕中设置焦点


    关键字:
    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代码段中使用。
    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    实现FTP断点续传
    系统软件自动部署实现方案
    QT实现多语言切换
    QTreeWidget实现动态加载本地文件系统
    QuaZip实现多文件打包
    FileZilla命令行实现文件上传以及CreateProcess实现静默调用
    ctkPlugin插件系统实现项目插件式开发
    Windows与Linux下文件操作监控的实现
    QT皮肤系统的动态切换
    OpenGL 学习
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802241.html
Copyright © 2020-2023  润新知