点击此处---> 群内免费提供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。
谢谢
我通过将方法增强为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。
正如您提到的T180一样,它可能存储在"表工作区"中,这是一种共享内存,因此您可以尝试在自己的计算机中声明它 使用TABLES程序,以便它包含此共享内存中的值:
请仔细按照博客上的说明进行操作,如下所示:将客户(Z-)字段添加到采购订单中。
简而言之,某些用户出口使用参数I_TRTYP调用,该参数包含"事务模式"。
我认为在标准SAP中使用了全局变量 一个功能组。
在保存文档时使用Badi,您必须在全局变量中设置一个标记,并在后者中使用它来标识它处于"显示"或"更改"模式。
您可以 可以像SAP,功能组一样使用,或者如果您更喜欢Object:Singleton Design Pattern
一周热门 更多>