SAP-ABAP-屏幕增强文档_第1页
SAP-ABAP-屏幕增强文档_第2页
SAP-ABAP-屏幕增强文档_第3页
SAP-ABAP-屏幕增强文档_第4页
SAP-ABAP-屏幕增强文档_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

11.编写用户增强

用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).

1.EEnhancementexits:就是常说User_exit(用户出口)

使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头

的程序.SE16查询TFDIR(函数表)输入EXIT*也可.

2.CGUIcodes(GUI接口增强)

3.SSubscreens(屏幕增强)

Enhancement在表MODSAP可看到,而TFDIR字段MAND(值为C表示此出口函数被激活).使用SMOD(CMOD)当然可激活exitfunction,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活.

REPORTZactexitfun.

dataztfdirliketfdir.

*selectsingle*fromtfdirintoztfdir

*whereFUNCNAME=

*'EXIT_SAPMM06E_013'.

*ztfdir-MAND='C'.

*updatetfdirfromztfdir.

*将EXIT_SAPMM06E_013换成实际所需exit函数名

updatetfdirsetMAND='C'.

whereFUNcname='EXIT_SAPMM06E_013'.

***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancementnameMM06E005后使用SMOD测试激活exit函数.

增强相关函数和表格

Function:

[1].DYNP_VALUES_READ

[2].MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)

[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)

由于读者可能接触userexit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode如其有exit就会调用此函数.

如图2-11-1是运行MIGO时的一个截图,表示相关exit被激活.

4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)

[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)

Table:

[1].TFDIR->functionmoduletable

[2].MODSAP->sapenhancementtable

[3].TSDIR->DynproAreasCALLCUSTOMERSUBSCREEN(屏幕增强)

[4].CUATEXTS->GUIInterface:MenuTextsChanged(GUI菜单文本增强)

***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.)

关于增强中的userexit,在实战篇中会有更多详细的例子.

找屏幕增强有很多方法,读者可从SE16:TSDIR中找寻,或者CMOD菜但utilities(M)->SAPEnhancements搜寻出所有的exitname,然后在搜寻结构中再输入’screen’关键字(通常在shorttext描述)一般能找到一些SAP预留的屏幕增强.

下面以建立PO举个实例介绍什么是屏幕增强.

如图2-11-2,很简单,SE38输入SAPMM06E.

SAPMM06E可看成专为PO增强的一个modulepool,可以增强的subscreenno一般还有0101,0111,0201,0211,0301,0311(增强的子屏作用读者可从描述中就知).

SAPLXM06实际上包含四个include,INCLUDELXM06TOP(GlobalData在此为增强定义globaldata),INCLUDELXM06UXX.(FunctionModules实际上包含所有可用的userexit),INCLUDELXM06F00.(SAP-FormpoolforCustomer-Use可在此建立Formpool),INCLUDEZXM06ZZZ.(SubprogramsandModules,在此建立增强子屏)

在include程序ZXM06ZZZ中加入如下代码.

*&----------------------------------------------------------

*&IncludeZXM06ZZZ*

*&----------------------------------------------------------

modulemodpohead.

callscreen0101."POheader增强子屏

endmodule.

modulemodpoitem.

callscreen0111."POitem增强子屏

endmodule.

注意上面的screen0101和0111在attributescreentype必须选subscreen.再ME22N(ME23N)进去后能发现在POheader和lineitem都多出了一customerdatatab页,不妨这样设想,假设用户希望在操作PO时写些额外的东西进自定义的表格,而且这些数据通过一般的userexit还做不到,因为这些字段在PO相关数据表中不存在,必须有用户在屏幕上输入(否则没必要使用增强屏幕直接使用合适的userexit将数据写到自定义表就可),就得使用增强屏幕.屏幕上文本框和tablecontrol都可用,想输入怎样的额外数据到自定义表都行.

如图2-11-3,读者可看到header和item都多出一Customerdata的增强屏幕.

1.有时实际需求会需要更改屏幕上某些字段的显示,比如用户希望物料主数据basicdata2视图otherdata下的Prod./Insp.Memo(子段显示)保存其它信息,同时为了避免不必要的误会需要更改此字段显示,严格地讲,这并非屏幕增强.这是屏幕”强改”(强行更改).

2.所谓屏幕增强就是多出个子屏幕来,在此你可显示一些数据或插入一些数据(到自定义表格中),global

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论