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

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

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

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


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

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

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

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

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

真正的项目里应该是判断权限对象,然后判断是否显示某些列。咱这个demo里简单一些,就不同工厂 显示的列不一样得了。反正原理都一样。下面写下具体步骤。首先设置组:数量和单位,在CN1下
金额在CN3下
在PBO 加代码如下
参考代码
或者在这个地方控制
其实只要你对table control 足够熟悉,想在哪儿加就在哪儿加,想控制什么就能控制什么。都行的。但是这个时候就肯定不能使用SM30去维护了,需要建一个自定义的程序call view 来维护数据。不然同时存在CN01 CN03数据,就导致工厂控制的列都不显示了。参考程序:执行效果

代码:

*&---------------------------------------------------------------------*

*& Report  ZLM_VIEW_DB_001

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT ZLM_VIEW_DB_002.

TABLES ZLM_DB_002.

SELECT-OPTIONS:

S_MATNRFOR ZLM_DB_002-MATNR,

S_WERKSFOR ZLM_DB_002-WERKS OBLIGATORY.

DATA: LT_SELTABTYPE STANDARD TABLE OF VIMSELLIST.

DATA: GT_EXCLUDETYPE TABLE OF VIMEXCLFUN,

GWA_EXCLUDETYPE 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[].

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容