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

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

最新文章

  1. 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server
  2. oracle中时间处理
  3. SQLSERVER排查CPU占用高的情况
  4. Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)
  5. jquery动态刷新select的值,后台传过来List&lt;T&gt;,前台解析后填充到select的option中
  6. Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系
  7. 转 C编译: 使用gdb调试
  8. mine layer(2008 World Final C)
  9. Backbone.js学习之初识hello-world
  10. ACM - ICPC World Finals 2013 D Factors
  11. static 内部类
  12. JavaScript字符串插入、删除、替换函数
  13. JAVA多线程统计日志计数时的线程安全及效率问题
  14. 刚发现 CSS 还存在一个命名规范 B.E.M
  15. MySQL RPM二进制安装
  16. php 生成随机字符串
  17. Win10手记-为应用集成SQLite(二)
  18. SQL注入之Sqli-labs系列第二十九关(基于WAF防护的单引号报错注入)
  19. C++虚函数工作原理
  20. 终端复用工具 tmux 基本操作教程

热门文章

  1. Solidworks如何在装配图中保存单独的一个零件
  2. Oracle基础 PL-SQL编程基础(3) 循环结构
  3. Restful风格的前后端分离
  4. iOS使用自己定义字体
  5. 【VBA】修改Excle的标题
  6. [腾讯 TMQ] 零基础学习 Fiddler 抓包改包
  7. js中的四舍五入函数
  8. PHP设置会话(Session)超时过期时间实现登录时间限制
  9. JavaScript的slice()
  10. iOS lipo 移除i386 x86_64两个平台