2020-08-26 15:47发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我已经创建了一个自定义表格。 除了自定义字段外,我们在此表中还需要" changed Date(AEDTM)"和" changed by"字段。
用户不会填写这些字段,系统应自动填写。
例如:每当创建新记录(使用sm31)时,更改的日期=今天的日期,并通过=用户名更改。
如何实现此目的?
有什么想法吗?
谢谢
克里希纳
使用"表维护"事件可以填充这些字段。
您需要使用事件01
FORM f_actions_event_01。 如果vim_abort_saving是INITIAL。 *更新更改历史记录字段 包括ZZFSAI086_UPD_CHG_HSTY。 万一。 ENDFORM。 " f_actions_event_01
包含代码
数据: lv_index1 TYPE sy-tabix,"表'TOTAL'的索引 lv_index2 TYPE sy-tabix,"表'EXTRACT'的索引 lr_data TYPE REF TO数据,"参考数据对象" lv_action TYPE char1,"变量适用于View操作 lv_mark TYPE char1。 "视标可变 字段符号: TYPE ANY,"对于字段值 TYPE any,"用于数据字符串 TYPE x," from值的十六进制值 TYPE x。 "十六进制值到值 *使用表名动态创建数据对象 创建数据lr_data类型(x_header-viewname)。 ASSIGN lr_data-> *至。 清除:lv_index1,lv_index2,lr_data。 *遍历M.View中的所有记录 合计。 清除lv_index1。 lv_index1 = sy-tabix。 READ TABLE提取总含KEY。 如果sy-subrc EQ 0。 lv_index2 = sy-tabix。 其他。 清除lv_index2。 万一。 总分配到演员表。 分配到铸造。 = 。 移动: 转到lv_action, 至lv_mark。 案例<动作>。 当neuer_eintrag。 " 新的条目 *如果在/日期之前创建了新的条目填充 将结构的组件'CRNAM'分配给。 如果sy-subrc = 0。 = sy-uname。 万一。 将结构的组件" CRDAT"分配给。 如果sy-subrc = 0。 = sy数据。 万一。 *如果更改为/日期,例如 一个条目是 复制的 将结构的组件'AENAM'分配给。 如果sy-subrc = 0。 清除。 万一。 将结构的组件" AEDAT"分配给。 如果sy-subrc = 0。 清除。 万一。 当aendern。 "更新的条目 *更新到现有条目,并按/日期更改 将结构的组件'AENAM'分配到。 如果sy-subrc = 0。 = sy-uname。 万一。 将结构的组件'Aedat'分配到。 如果sy-subrc = 0。 = sy数据。 万一。 结束。 *(对行总数进行所需的更改) *更改仅在更新或新条目时纳入。 检查 EQ aendern或 EQ neuer_eintrag。 清除:总计,提取。 分配到铸造。 总分配到演员表。 = 。 移动: lv_action TO <动作>, lv_mark TO <标记>。 总计总计lv_action lv_mark INTO总计。 从总计INDEX lv_index1修改总计。 *如有必要,请修改摘录 检查lv_index2 GT 0。 提取=总。 从提取索引lv_index2中修改提取。 结局。
您好Vijaya,
非常感谢您的解决方案。 working
嗨,
我认为您可以通过事件来做到这一点:
使用SE11然后使用Utility->维护屏幕生成器
然后通过菜单->环境->修改->事件
您必须在其中选择适当的事件并定义一个FORM例程。 该FORM例程是在包含维护对话框的功能组的一个表单内创建的。
如果您想在对话框开始时设置默认值,并且当用户创建新条目时,您将需要事件" 21"(填充隐藏字段)和" 05"(创建新条目)。
对于事件,在函数组的include中定义一个表单例程。 您可以在其中访问视图的结构(例如z_tabl_view)。 在此处填充z_tabl_view-column = <固定值>。
要在保存之前检查数据,您将需要事件01(在将数据保存到数据库中之前)。
有关详细信息,请参考SAP在线文档:
http://help.sap.com/saphelp_erp2005vp/ helpdata/zh-CN/91/ca9f0ea9d111d1a5690000e82deaaa/content.htm
希望这会有所帮助,
Erwan
表维护屏幕生成器
环境->修改->事件
在此处编写代码
就像感谢您提供的代码。 它非常适合我。 保持良好的工作。 再次感谢。
致谢
埃德温
最多设置5个标签!
使用"表维护"事件可以填充这些字段。
您需要使用事件01
包含代码
您好Vijaya,
非常感谢您的解决方案。 working
嗨,
我认为您可以通过事件来做到这一点:
使用SE11然后使用Utility->维护屏幕生成器
然后通过菜单->环境->修改->事件
您必须在其中选择适当的事件并定义一个FORM例程。 该FORM例程是在包含维护对话框的功能组的一个表单内创建的。
如果您想在对话框开始时设置默认值,并且当用户创建新条目时,您将需要事件" 21"(填充隐藏字段)和" 05"(创建新条目)。
对于事件,在函数组的include中定义一个表单例程。 您可以在其中访问视图的结构(例如z_tabl_view)。 在此处填充z_tabl_view-column = <固定值>。
要在保存之前检查数据,您将需要事件01(在将数据保存到数据库中之前)。
有关详细信息,请参考SAP在线文档:
http://help.sap.com/saphelp_erp2005vp/ helpdata/zh-CN/91/ca9f0ea9d111d1a5690000e82deaaa/content.htm
希望这会有所帮助,
Erwan
表维护屏幕生成器
环境->修改->事件
在此处编写代码
您好Vijaya,
就像感谢您提供的代码。 它非常适合我。 保持良好的工作。 再次感谢。
致谢
埃德温
一周热门 更多>