GUI表控件TABLE CONTROL隐藏列和固定列的实现

一.隐藏列

表控件是ABAP开发中经常用到的技术,它的字段控制相比ALV更加灵活,适用于一些复杂的应用场景,例如ME23N采购订单的信息显示。

需求:隐藏TABEL CONTROL的某一列或者多列

易错点:

我们最常想到的就是通过LOOP SCREEN设置字段属性为ACTIVE或INVISIBLE,经过测试,发现,此方法对TABEL CONTROL表控制无效。

解决方法:

通过CODING修改tabctrl-cols下的字段vislength可见长度设置为0来实现。

通过修改表控制中COLS的字段属性隐藏列,在PBO中增加处理MODULE

 【应用场景】把SM30维护视图的用户,日期等后台字段全部隐藏,后台更新。

把这些需要隐藏的字段定义为屏幕组1一起设置。对应SREEN-GROUP1属性。

 

*&---------------------------------------------------------------------*
*&  设置自动更新值等几列隐藏
*&---------------------------------------------------------------------*
MODULE set_field_hide OUTPUT.

  LOOP AT <vim_tctrl>-cols INTO vim_tc_cols
                         WHERE screen-group1 EQ 'LOG'.        "也可通过screen-name等区分
    vim_tc_cols-vislength = 0.
    MODIFY <vim_tctrl>-cols FROM vim_tc_cols.
  ENDLOOP.
ENDMODULE.

二、设置固定列

需求:为了方便对主要关心信息地查看,用户希望TABLE CONTROL左边的一列或者几列在屏幕上固定。针对用户这样子的需求, 我们首先会想到类似与屏幕编辑/可见等字段属性设置,但是此方法行不通。
解决方法:通过设置Table Control自带的属性,定义最左边的某些列不可滚动。在Screen Layout中,双击Table Control的右上角,弹出“表控制”属性,即可设置。如下图所示

如上,一般对表的关键字field会自动是设置为固定列。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值