增强步骤
1.为主表添加一个附加结构
根据业务需求新建一个结构,结构中放入需要增强的屏幕字段并激活。
打开事务代码SE11,在需要保存的主表中添加这个附加结构并激活。
注:根据业务需求及屏幕增强的视图判断需要保存的主表是哪张,如基本数据在MARA,工厂级数据在MARC
2.创建定制子屏幕的程序
打开事务代码SPRO,选择"创建定制子屏幕的程序"。
保存后会生成一个函数组。
在生成的屏幕或自建一个屏幕进行屏幕绘制。
主要DIALOG代码:
PROCESS BEFORE OUTPUT.
* Verarbeitung vor der Ausgabe
MODULE init_sub.
MODULE get_daten_sub.
MODULE feldauswahl.
MODULE sonderfaus.
MODULE sonfausw_in_fgruppen.
MODULE fausw_bezeichnungen.
MODULE bildstatus.
MODULE feldhistorie. "Aenderungsdienst
MODULE zusref_vorschlagen_b.
MODULE refdaten_vorschlagen.
MODULE zusref_vorschlagen_a.
MODULE bezeichnungen_lesen.
MODULE set_daten_sub.
MODULE mod_disable_field.
PROCESS AFTER INPUT.
MODULE get_daten_sub.
FIELD: mara-zzcoloren.
FIELD: mara-zzproductname.
FIELD: mara-zzproductname_en.
FIELD: mara-zzdescription.
MODULE set_daten_sub.
*&---------------------------------------------------------------------*
*& Module MOD_DISABLE_FIELD OUTPUT
*&---------------------------------------------------------------------*
MODULE mod_disable_field OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
IF sy-tcode = 'MM03'.
LOOP AT SCREEN.
screen-input = '0'.
MODIFY SCREEN.
ENDLOOP.
ELSEIF sy-tcode = 'MM01' OR sy-tcode = 'MM02'.
LOOP AT SCREEN.
screen-input = '1'.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE.
3.在实例化出口中增加数据保存功能增强点
打开事务代码CMOD,在增强点实例中写数据保存的逻辑代码;只需要将数据分配到CMARA内表中即可,SAP会将CMARA中的数据保存至MARA表中
4.配置子屏幕
打开事务代码SPRO,选择"定义每个屏幕序列的数据屏幕的结构"。
选择需要增强的视图后双击子屏幕。
在相应的子屏幕位置新建条目并选择自定义的屏幕。其中程序名为SPAL+自己定义的函数组名,屏幕号为自定义的屏幕号。
注:视图中的子屏幕项与顺序有关,请根据需求新增在相应的位置
可以点击视图数据屏幕模拟查看效果。
5.配置字段组
打开事务代码SPRO,选择"给字段选择组分配字段"。
点击"新条目"并添加增强的字段。
其中维护状态为:EDVKALBQPSZXCFG,字段组为:GR_GLOB
所有字段新增后保存即可。
注:所有增强字段必须分配选择组,否则无法更新成功
效果如下: