表維護除了調用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創建並加入連接條件(未實現過)。
