在sap开发的过程中,经常需要自定义数据表,对于简单的数据表,我们可以通过sap的表维护工具生成维护代码,并建立自定义的TCODE来维护其数据。具体步骤如下:
一、建立自定义表(TCODE :SE11)
1 在“Delivery and Maintenance”Tab屏幕设置“Data Browser/Table view Maint.”属性为“允许通过标准表格维护工具维护”
2 设计表格字段
3 设置表格技术设置,菜单:转到-》技术设置
4 保存激活。
1 在“Delivery and Maintenance”Tab屏幕设置“Data Browser/Table view Maint.”属性为“允许通过标准表格维护工具维护”
2 设计表格字段
3 设置表格技术设置,菜单:转到-》技术设置
4 保存激活。
二、生成维护代码
生成维护代码代码有两个途径:
1、se11界面的菜单:实用程序-》Table Maintenance Generator其实这里就是调用SE54
2、通过TCODE: SE54
生成维护代码代码有两个途径:
1、se11界面的菜单:实用程序-》Table Maintenance Generator其实这里就是调用SE54
2、通过TCODE: SE54
三、建立自定义CODE(TCODE:SE93)
有三种方法来建立自己的TCODE来维护自定义表;
1 通过SM30维护
进入TCODE:SE93建立新TCODE,tcode类型选择为:“Transaction with parameters(parameter transaction)”;事务栏输入“SM30”;选中“跳过起始屏幕”;选中“Inherit GUI attribute”;输入默认字段:VIEWNAME = '自定义的表名' 和UPDATE = 'X';保存激活即可;
2 通过RS_TABLE_LIST_CREATE函数建立新程序来建立TCODE,执行程序,界面类类似SE11查询表界面
新程序代码如下
report test .
有三种方法来建立自己的TCODE来维护自定义表;
1 通过SM30维护
进入TCODE:SE93建立新TCODE,tcode类型选择为:“Transaction with parameters(parameter transaction)”;事务栏输入“SM30”;选中“跳过起始屏幕”;选中“Inherit GUI attribute”;输入默认字段:VIEWNAME = '自定义的表名' 和UPDATE = 'X';保存激活即可;
2 通过RS_TABLE_LIST_CREATE函数建立新程序来建立TCODE,执行程序,界面类类似SE11查询表界面
新程序代码如下
report test .
call function 'RS_TABLE_LIST_CREATE'
exporting
action = 'ANLE'
table_name = 'YTVIN'
generation_forced = ' '.
3通过View_Maintenance_Call 函数建立新程序来建立TCODE,代码可以参见SAP的标准程序RFT042D_CALL
代码如下
exporting
action = 'ANLE'
table_name = 'YTVIN'
generation_forced = ' '.
3通过View_Maintenance_Call 函数建立新程序来建立TCODE,代码可以参见SAP的标准程序RFT042D_CALL
代码如下
CALL
FUNCTION
'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'U'
* SHOW_SELECTION_POPUP = 'X'
view_name = viewname
variant_for_selection = variant
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
OTHERS = 14.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
EXPORTING
action = 'U'
* SHOW_SELECTION_POPUP = 'X'
view_name = viewname
variant_for_selection = variant
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
OTHERS = 14.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
功能:维护表视图等
The function module calls the extended table maintenance (View maintenance).
参数:
import:ACTION S = Display U = Change T = Transport
CORR_NUMBER 传送号(上面的action是t)
SHOW_SELECTION_POPUP 是否弹出选择画面
VIEW_NAME 视图名
NO_WARNING_FOR_CLIENTINDEP 跨集团是否现实警告
VARIANT_FOR_SELECTION 变式名
CHECK_DDIC_MAINFLAG 察看是否为可维护对象
The function module calls the extended table maintenance (View maintenance).
参数:
import:ACTION S = Display U = Change T = Transport
CORR_NUMBER 传送号(上面的action是t)
SHOW_SELECTION_POPUP 是否弹出选择画面
VIEW_NAME 视图名
NO_WARNING_FOR_CLIENTINDEP 跨集团是否现实警告
VARIANT_FOR_SELECTION 变式名
CHECK_DDIC_MAINFLAG 察看是否为可维护对象