如何通过ME22N的代码获取交易模式

2020-08-22 23:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在PO项目(...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我在PO项目(ME21、22、23 n tcodes)的列表中有一个自定义列。 使用Flow Logic中的以下代码,我将其启用。 但是在Me22n中,当您更改某些内容并保存时,所有其他字段都进入显示模式,但是由于此代码,此zfield仍处于更改模式,我也希望将其设置为"显示模式"。

如何通过代码获得交易模式? 我读过许多其他文章,到目前为止没有任何帮助,结构T180也未填充。 ucomm始终为空。 T代码始终保留为ME22n。

对示例代码的任何帮助将非常有帮助。

在屏幕上循环。
检查屏幕名称EQ'MEPO1211-Zfield'。
如果sy-tcode ='ME21N'
或sy-tcode ='ME22N'。
屏幕输入 = 1.
elseif sy-tcode ='ME23N'。
屏幕输入=0。
ENDIF。
修改屏幕。
ENDLOOP。

谢谢

5条回答
hongfeng1314
2020-08-22 23:14 .采纳回答

我通过将方法增强为Post Exit来解决了此要求

MODIFY_SCREEN_TC_LINE

Cl_table_view_mm类

具有以下代码。 只需使用方法本身的代码,并为您的字段使用标准字段的元字段来导出屏幕属性。 这对我来说非常好用,无论显示与否,我都无需查找交易方式。

在屏幕上循环。
检查屏幕名称eq'MEPO1211-Zfield'。
读取表my_dynpro_fields到l_dynpro_field
中,使用表键screenname ='MEPO1211-standardfield'。

检查 sy-subrc是INITIAL。

读取表my_fieldselection到具有表键的l_fieldselection
metafield = l_dynpro_field-metafield。
如果sy-subrc是INITIAL。
l_field_status = l_fieldselection-fieldstatus。 > ELSE。
l_field_status = default_field_status。
ENDIF。

*特殊规则:仅显示字段
IF l_dynpro_field-display_only EQ mmpur_yes。
IF l_field_status EQ'。' 或l_field_status EQ'+'。
l_field_status ='*'。
ENDIF。
ENDIF。

CASE l_field_status。
当'+'。
屏幕要求= '0'。
屏幕输入='1'。
屏幕输出='1'。
屏幕不可见='0'。
何时'。'。
屏幕- 必需='0'。
屏幕输入='1'。
屏幕输出='1'。
屏幕不可见='0'。
当'-'时。
screen-required ='0'。
screen-input ='0'。
* screen-output ='0'。
screen-output ='1'。 "由于现场传输(注释541862)
屏幕不可见='1'。" out + invi => invisibel + aktiv#664320
*屏幕不可见='0'。"由于不可见列
当'*'。
屏幕要求='0'。
屏幕输入='0'。
结束。
修改屏幕。
ENDLOOP。

一周热门 更多>