您的位置:首页 > 运维架构

ABAP用表格维护生成器维护数据sm30

2014-03-07 14:56 447 查看

之前做过一个这样的例子,但是在老师的指导下,觉得挺简单的

后来业务需要,需再做一个配置表,居然死活不成功

最后,经过多方面的努力,终于成功

现把步骤具体得记录下来,JUST FYI

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的位置,如果位置不对,该段程序也不会执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: