1)SE11创建自建表,结构如下:

2) 创建表维护

3) 针对上面创建的函数组ZMM_MAT_DESC,做以下增强处理

添加的Module 代码如下:

module mod_customize input.

"自动带出值

zmm_mat_desc-lname = sy-uname.

zmm_mat_desc-ldate = sy-datum.

zmm_mat_desc-ltime = sy-uzeit.

endmodule.                 " MOD_CUSTOMIZE  INPUT

并修改100屏幕,把对应的三个字段设置为不可输入:

4) 创建程序,定义好选择界面,并通过标准函数:VIEW_MAINTENANCE_CALL 调用上面创建的SM30表维护

report  zmm_mat_desc no standard page heading.
 
data: gs_zmm_mat_desc like zmm_mat_desc,
      gt_zmm_mat_desc like table of gs_zmm_mat_desc,
 
      gs_vimsellist like vimsellist,
      gt_vimsellist like table of gs_vimsellist.
 
tables zmm_mat_desc.
select-options:
    s_matnr for zmm_mat_desc-matnr,
    s_maktx for zmm_mat_desc-maktx no intervals,
    s_lname for zmm_mat_desc-lname no intervals,
    s_ldate for zmm_mat_desc-ldate,
    s_ltime for zmm_mat_desc-ltime.
 
select * into table gt_zmm_mat_desc
    from zmm_mat_desc
    where matnr in s_matnr
    and maktx in s_maktx
    and lname in s_lname
    and ltime in s_ltime.
 
loop at  gt_zmm_mat_desc into gs_zmm_mat_desc.
  gs_vimsellist-viewfield  = 'MATNR'.
  gs_vimsellist-operator   = 'EQ'.
  gs_vimsellist-value    = gs_zmm_mat_desc-matnr.
  gs_vimsellist-and_or    = 'OR'.
  append gs_vimsellist to gt_vimsellist.
endloop.
 
call function 'VIEW_MAINTENANCE_CALL'
  exporting
  
 action                       = 'U'
  
 view_name                    = 'ZMM_MAT_DESC'
  tables
  
 dba_sellist                  = gt_vimsellist
  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.
  message id sy-msgid type sy-msgty number sy-msgno
          with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif

5) 运行程序,效果如下

但是新增时报错:

这是因为指定了选择条件后,添加条目时还要去验证物料是否满足选择条件,显然不符合逻辑;

通过调试发现,需要在上面的Module里面清空掉选择条件限制的标识位,如下:

module mod_customize input.

"清空条件选择的标识位
  clear x_header-selection.
 
  "自动带出值
  zmm_mat_desc-lname = sy-uname.
  zmm_mat_desc-ldate = sy-datum.
  zmm_mat_desc-ltime = sy-uzeit.
 
endmodule.                 " MOD_CUSTOMIZE  INPUT

然后再做新增时,就可以通过了:

SM30 表格维护生成器的更多相关文章

  1. abap 开发之创建表维护生成器

    在sap开发中有时需要对一些自建表维护数据,但又不想写程序,怎么办呢??这个时候我们可以直接生成个表维护生成器,为其定义一个事物码就ok了.以下是表格维护生成器的生成步骤. 首先我们需要先定义表.输入 ...

  2. 【ABAP系列】SAP ABAP 为表维护生成器创建事务代码

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 为表维护生成器 ...

  3. sm30表维护做排序

    好吧,之前有人问过,因为代码太少就一直没发...今天给出来吧 众所周知,表维护其实就是个TC,只是表维护是统一的,没有使用通用名内表名什么的,这个就不多说了,来重点: TC的一般排序可以放在:1,PB ...

  4. SM30维护视图添加按钮

    转自http://blog.csdn.net/tsj19881202/article/details/7517232 遇到某需求,要求维护sm30的视图时,能加上排序按钮. 基本参考: http:// ...

  5. SM30维护视图创建【转】

           在SAP中,经常需要自定义数据库表.而且可能需要人工维护数据库表中的数据,可以通过SM30进行维护数据:但是SM30事务的权限太大,不适宜将SM30直接分配:因此,可以通过给维护表分配事 ...

  6. SAP技术相关Tcode

    ABAP的常用tcode 开发----------------------------------------------- SE51  屏幕制作 SE91  MESSAGE OBJECT SE80  ...

  7. SE11

        自省数据及表存储 2014年4月6日 21:37     类似JAVA反射的特性 SAP提供自省数据的机制 这样可以保证程序的灵活性和动态性     1.使用OO中的cl_abap_typed ...

  8. ABAP常用事务码

    开发----------------------------------------------- SE51  屏幕制作 SE91  MESSAGE OBJECT SE80  对象浏览器(可以建开发类 ...

  9. 调用SM30数据表维护的函数

    相关文章:http://www.cnblogs.com/caizjian/p/3248499.html 1.se11进去新建一个数据表 2.se55进去生产表维护 3.sm30进去维护数据表 4.se ...

随机推荐

  1. Java 循环结构 - for, while 及 do...while

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  2. SVN遇到Can't convert string from 'UTF-8' to native encoding(转)

    svn: Can't convert string from 'UTF-8' to native encoding: svn: platform/console-framework/portal/im ...

  3. Nginx 限制单个IP的并发连接数及对每个连接速度(限速)

    使用Nginx限制单个IP的并发连接数能够减少一些采集程序或者DDOS的攻击. 再lnmp的nginx配置中已经添加了部分代码,但是是注释掉的,可以编辑/usr/local/nginx/conf/ng ...

  4. 使用FREDATED引擎实现跨实例訪问

    跨数据库server.跨实例訪问是比較常见的一种訪问方式,在Oracle中能够通过DB LINK的方式来实现. 对于MySQL而言,有一个FEDERATED存储引擎与之相相应.相同也是通过创建一个链接 ...

  5. ubuntu安装rpm格式软件包

    转载自:http://os.51cto.com/art/200708/53942.htm ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb.用alien转 ...

  6. AngularJS---Unknown provider: $routeProvider

    AngularJS路由报错: Unknown provider: $routeProvider 根据先知们的指引,在网上爬贴,有翻到官方的解决文章. 原来在AgularJS1.2.0及其之后的版本中, ...

  7. 通过Cloudera Manager安装CDH 5.6

    CDH的简介 大家常常说CDH.其全称是:Cloudera's Distribution Including Apache Hadoop.简单的说是Cloudera公司的Hadoop平台,是在Apac ...

  8. 计算机网络11--OSI參考模型

    本页内容 1.OSI參考模型简单介绍 2.OSI參考模型通信过程 3.OSI參考模型的数据封装 4.数据封装的意义 5.物理层 6.数据链路层 7.网络层 8.传输层 9.会话层 10.表示层 11. ...

  9. 阻止YII 1.0自动加载内置JQUERY库

    有些时候我们会在项目中用到很多js库, 因为Yii 1.0框架会默认自动加载一些自带核心库, 很容易引起冲突问题, 下面的代码就展示了如何在Yii 1.0框架下取消jQuery自动加载. Open C ...

  10. Atitit.远程接口 监控与木马   常用的api 标准化v2 q216

    Atitit.远程接口 监控与木马   常用的api 标准化v2 q216 1. 木马与远程接口 监控的常用的api2 1.1. 文件复制2 1.2. 屏幕定时截图2 1.3. 邮件发送2 1.4.  ...