ABAP用表格維護生成器維護數據sm30 1 用se11新建一個自定義數據庫表,假設表名為 ZMARA , 其中數據庫字段有: mandt matnr zstop ernam ersda crtime lauser ladate latime 客戶端(必須的,key) 物料號(key) 停用標識 創建人 創建日期 創建時間 最后修改人 最后修改日期 最后修改時間 其中創建人、創建日期、創建時間不需要,因為只要記錄最后修改的信息即可 2 進入 技術設置,如圖 數據類:選擇APPL0 大小范疇: 寫0 或者1 都可以(我認為既然是用表格維護生成器做的對話程序,數據量不會很大,所以選擇寫0就可以了) 緩沖 :不允許緩沖 緩沖類型:空 關鍵字段號:空 3 維護完技術設置之后,回到維護的界面,進入菜單:實用程序 - 表格維護生成器 權限組:&NC&(我認為這個和BASIS有關,在此選擇大權限) 權限對象 函數組 package 在維護數據字典的時候已經設定,會自動帶過來 維護屏幕: 如果“維護類型”選擇“一步”,則“維護屏幕編號”是只需要有“概述屏幕”即可,“單一屏幕”為空 如果“維護類型”選擇“兩步”,則“維護屏幕編號”中“概述屏幕”和“單一屏幕”都需要 有屏幕號 對於“一步”和“兩步”的概念,自己體會 對於所需要的屏幕號,則點擊工具欄上的“查找屏幕號”,選擇第一個建議的即可 4 創建相應的tcode 進入se93 , 輸入tcode名稱 開始對象選擇最后一個:Transaction with parameters (parameter transaction) 屬性設置如圖 事務:sm30 跳過起始屏幕:勾選 Inherit GUI attributes :勾選 5 即可進入創建的tcode進入 除了以上最基本的東西,還可以修改界面,寫代碼 該例子設計的數據字典中創建信息相當於沒用,所以不需要顯示創建信息,具體操作: 進入tcode,菜單:系統 - 狀態 - 雙擊屏幕編號 (切記不是程序名稱) 進入格式界面,修改狀態,把創建信息一列刪除:先刪文本,再刪可輸入列; 修改“修改信息”的可輸入狀態,設為“不可輸入” 在PAI中,把不要的字段注釋掉,並在其后添加一個module MODULE set_0027_change_info ON CHAIN-REQUEST. PROCESS AFTER INPUT. MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND. MODULE LISTE_BEFORE_LOOP. LOOP AT EXTRACT. MODULE LISTE_INIT_WORKAREA. CHAIN. FIELD ZIEBBFWLZ-MATKL . FIELD ZIEBBFWLZ-ZSTOP . * FIELD ZIEBBFWLZ-ERNAM . * FIELD ZIEBBFWLZ-LAUSER . MODULE set_0027_change_info ON CHAIN-REQUEST. MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST. ENDCHAIN. FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX. CHAIN. FIELD ZIEBBFWLZ-MATKL . MODULE LISTE_UPDATE_LISTE. ENDCHAIN. ENDLOOP. MODULE LISTE_AFTER_LOOP. 在新添加的module中寫入如下代碼即可: zmara-lauser = sy-uname. zmara-ladate = sy-datum. zmara-latime = sy-uzeit. 注意module的位置,如果位置不對,該段程序也不會執行
1.以建立ADDON表為例,se11首先進入數據字典定義,輸入要建立的表名:
點擊create,填寫信息:
點Field字段進入,選擇predefined type按鈕,如果是系統的變量,直接寫就可以了
保存,選擇相應的開發包生成request。
2.在Techincal setting里面根據需求維護相關信息。保存並激活
3.在table maintenance generator中也需要維護。
填寫如下訊息:(&NC&一般選擇。Funtion group可以自己建立,一般z開頭的4碼)
然后是下面的一些維護信息,根據需求自己添加即可
填寫無誤后點擊左上角類似‘新建按鈕’的符號,進行保存,這樣,一個新的表就維護好了,可以用SM30
批量修改或添加刪除了。