在ABAP开发中常创建大量的客户表,对于End User来说不同的权限以及可操作性来讲不可能总是用SE11、SE16来直接维护据,同时对表的数据维护也会有一些特殊的需求,比喻数据验证、当前日期或时间的直接输入、根据输入的key value自动带出指定的值、甚至屏幕的客户化等等。
1,SE11创建客户表,Unitilies->Table Maintenance Generator:
Authorization Group: %NC%(by default),主要是用于权限
Function Group: 放在指定的FG里,如果没有可以用SE80创建
Maintenance Type: One Step-只需维护一个Screen来直接输入值
Two Step-维护两个Screen用于维护值
Maint.Screen No: 可通过Find Scr.Number(S)自动创建
Recording rountine: 是否维护值后需要创建transport no,具体意义按F1查看。
2, Table Maintenance Generator Dialog ->Environment->Modification
a)Maintenance Screen
可以修改Flow logic 代码
b)User Interface
待补充
c)Events -> New Entries
例如我们选用5(Table maintenance dialog event),当用户用SM30或下面创建的T-code就会触发这个Event:INITAIL_VALUE
双击后面的Editor,可自动创建一个include program或指定已经存在的子程序中,如
*------------------------------
***INCLUDE LZGDDF05 .(子程序名)
*------------------------------
FORM initail_value.
IF NOT zgdemo-bname IS INITIAL.
zgdemo-dscrpt = zgdemo-bname.
...
"相关表维护的初始化值
ENDIF.
ENDFORM. "Initail_Value
最后,激活include子程序, 激活FunctionPool(SAPL + Name of Function Group)
d)Source Code
可以查看表维护生成的所有代码,并可以修改L(Name of FG)F0x,L(Name of FG)TOP
3、创建Tranaction Code[/b]
运行SE93.
Transcation code:
T-code & Description
Transaction:
SM30, Skip first Screen
Default Values: VIEWNAME
Custom Table
UPDATE
X
Reference:
http://help.sap.com/saphelp_47x200/helpdata/en/a1/e45217a2f511d1a5630000e82deaaa/frameset.htm