[转载]Tablecontrol列隐藏、更改列标签、插入一列_SAP刘梦_新浪博客

最近项目老TMD苦逼了,每天早八点到晚九点,周末还无休,要持续一个多月,客户要求做dialog功能程序动态显示,根据条件隐藏tablecontrol的某些列,或者根据权限对象去隐藏按钮、输出字段、文本等等。

Tablecontrol 双击

在状态里面把F2设置为PICK

[转载]Tablecontrol列隐藏、更改列标签、插入一列

[转载]Tablecontrol列隐藏、更改列标签、插入一列

 DATA: l_row TYPE i.
  DATA: l_field TYPE char30.
  DATA:n TYPE i.
  DATA:m TYPE i.
  CASE ok_code.
    WHEN 'PICK'.
      CLEAR l_row.
      GET CURSOR LINE l_row.     ”获取鼠标所在位置

   l_row = l_row + ZSLFI001_02-top_line - 1.    获取内表的行
      GET CURSOR FIELD l_field.  “获取双击的字段名
      READ TABLE gt_out INTO gx_out INDEX l_row.  "根据行号读取内表
      IF sy-subrc = 0.
        t_index = l_row.
        IF gx_out-ztype_qk = '1 预付款'.
          PERFORM gt_data_300.
        ELSE.
          PERFORM gt_data_yf.
        ENDIF.

        CALL SCREEN 0300.
        CLEAR: gt_0101[],gx_0101,gx_head.
      ENDIF.

列隐藏实际上是将Tablecontrol的列的长度设置为0,不多说,直接上代码

 

[转载]Tablecontrol列隐藏、更改列标签、插入一列

 MODULE authory_init OUTPUT.
  DATA: tc_col LIKE LINE OF zslfi001_03-cols.      
  IF gx_out-ztype_qk = '2 应付款'.
    LOOP AT zslfi001_03-cols INTO tc_col  .
      IF tc_col-screen-name = 'GX_0101-KZWI2'.   "列名称
*    tc_col-invisible = '1'.
        tc_col-vislength = 0.                    "tablecontrol列长度设置为0
        MODIFY zslfi001_03-cols FROM tc_col.
      ENDIF.
      IF  tc_col-screen-name = 'GX_0101-NETWR'. “列名称
        tc_col-vislength = 0.
        MODIFY zslfi001_03-cols FROM tc_col.
      ENDIF.
    if tc_col-screen-name = 'GX_0101-AUGBL'.    "列名称
      if GX_HEAD-ZSTATUS_QK <> '5'.
        tc_col-vislength = 0.
      else.
          tc_col-vislength = 12.
       endif.
        MODIFY zslfi001_03-cols FROM tc_col.

    endif.
    clear tc_col.
    ENDLOOP.

  ENDIF.
  IF gx_head-ernam <> sy-uname.

    LOOP AT SCREEN.
      IF screen-group1 = 'RP1'.    "按钮组,当不是本用户操作的时候,按钮组隐藏。设置按钮组下图
        screen-active = '0'.
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值