表维护除了调用ALV以外,还可以通过调用SM30的方式实现,以下为主要步骤
1.SE11将透明表设置为允许显示/维护。
2.SE37建立函数组,用于生成表维护代码可修改。
3.实用程序-表维护生成器。
注:权限组:&NC&
维护屏幕:单一;概述屏幕100
记录例程:不,或用户记录例程
4.调用SM30函数,添加选择屏幕条件
DATA GT_DBA_SELLIST TYPE TABLE OF VIMSELLIST.
DATA GT_TABNAME TYPE DD02V-TABNAME.
CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' “添加选择屏幕条件
EXPORTING
FIELDNAME = 'MATKL'
APPEND_CONJUNCTION = 'AND'
TABLES
SELLIST = GT_DBA_SELLIST
RANGETAB = S_MATKL
.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL' ” 调用SM30函数
EXPORTING
ACTION = 'U'
* CORR_NUMBER = ' '
GENERATE_MAINT_TOOL_IF_MISSING = 'X'
* SHOW_SELECTION_POPUP = ' '
VIEW_NAME = 'ZTCS118'
NO_WARNING_FOR_CLIENTINDEP = 'X' “跳过警告弹窗
* RFC_DESTINATION_FOR_UPGRADE = ' '
* CLIENT_FOR_UPGRADE = ' '
* VARIANT_FOR_SELECTION = ' '
* COMPLEX_SELCONDS_USED = ' '
* CHECK_DDIC_MAINFLAG = ' '
* SUPPRESS_WA_POPUP = ' '
TABLES
DBA_SELLIST = GT_DBA_SELLIST
* EXCL_CUA_FUNCT =
EXCEPTIONS
CLIENT_REFERENCE = 1
FOREIGN_LOCK = 2
INVALID_ACTION = 3
NO_CLIENTINDEPENDENT_AUTH = 4
NO_DATABASE_FUNCTION = 5
NO_EDITOR_FUNCTION = 6
NO_SHOW_AUTH = 7
NO_TVDIR_ENTRY = 8
NO_UPD_AUTH = 9
ONLY_SHOW_ALLOWED = 10
SYSTEM_FAILURE = 11
UNKNOWN_FIELD_IN_DBA_SELLIST = 12
VIEW_NOT_FOUND = 13
MAINTENANCE_PROHIBITED = 14
OTHERS = 15
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
5.SE54/SE55子例程,环境-修改-事件-05新条目控制(例:自动带出商品组描述)。
6.多表维护视图SE11/SE54创建并加入连接条件(未实现过)。
