表维护视图DEMO(2):动态控制显示列_SAP刘梦_新浪博客

其实创建表维护的时候,就是创建了个table control,

熟悉table control的话可以直接修改很多东西。

DEMO过程是我自己个习惯,不见得都是正规的操作。纯属个人习惯,如果有什么不对的地方也欢迎批评指正,谢谢。

 

【2】控制显示列,显示范围

有时候不同部门维护不同的列,比如财务维护财务相关的,采购维护采购相关的数据,但是又在同一个维护视图中。


当然,你可要建多个维护视图,参考之前的那篇文章为财务,采购,销售等不同部门不同的视图来区分。


我一般是直接修改table control 动态显示列,来实现这个需求。

还拿上篇文章提到的那个视图为例。



表维护视图DEMO(2):动态控制显示列

真正的项目里应该是判断权限对象,然后判断是否显示某些列。

咱这个demo里简单一些,就不同工厂 显示的列不一样得了。

反正原理都一样。


下面写下具体步骤。

首先设置组:

数量和单位,在CN1下

表维护视图DEMO(2):动态控制显示列
金额在CN3下
表维护视图DEMO(2):动态控制显示列
在PBO 加代码如下
表维护视图DEMO(2):动态控制显示列
参考代码
表维护视图DEMO(2):动态控制显示列
或者在这个地方控制
表维护视图DEMO(2):动态控制显示列

表维护视图DEMO(2):动态控制显示列

其实只要你对table control 足够熟悉,想在哪儿加就在哪儿加,想控制什么就能控制什么。都行的。


但是这个时候就肯定不能使用SM30去维护了,需要建一个自定义的程序call view 来维护数据。不然同时存在CN01 CN03数据,就导致工厂控制的列都不显示了。


参考程序:

执行效果

表维护视图DEMO(2):动态控制显示列

表维护视图DEMO(2):动态控制显示列

表维护视图DEMO(2):动态控制显示列

表维护视图DEMO(2):动态控制显示列

代码:

*&---------------------------------------------------------------------*
*& Report  ZLM_VIEW_DB_001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLM_VIEW_DB_002.

TABLES ZLM_DB_002.

SELECT-OPTIONS:
  S_MATNR FOR ZLM_DB_002-MATNR,
  S_WERKS FOR ZLM_DB_002-WERKS OBLIGATORY.



DATA: LT_SELTAB    TYPE STANDARD TABLE OF VIMSELLIST.
DATA: GT_EXCLUDE  TYPE TABLE OF VIMEXCLFUN,
      GWA_EXCLUDE TYPE VIMEXCLFUN.

*------------------------------------------------------
*& 权限控制
*------------------------------------------------------
START-OF-SELECTION.

  CLEAR LT_SELTAB[].

  CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
    EXPORTING
      FIELDNAME          = 'MATNR'
      APPEND_CONJUNCTION = 'AND'
    TABLES
      SELLIST            = LT_SELTAB
      RANGETAB           = S_MATNR.

  CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
    EXPORTING
      FIELDNAME          = 'WERKS'
      APPEND_CONJUNCTION = 'AND'
    TABLES
      SELLIST            = LT_SELTAB
      RANGETAB           = S_WERKS.



  CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
    EXPORTING
      ACTION      = 'U'
      VIEW_NAME   = 'ZLM_V_002'
    TABLES
      DBA_SELLIST = LT_SELTAB[]. 

表维护视图DEMO(2):动态控制显示列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值