sap_badi屏幕增强实例mb_migo_badi

上传人:小** 文档编号:55718508 上传时间:2018-10-05 格式:DOC 页数:11 大小:438.21KB
返回 下载 相关 举报
sap_badi屏幕增强实例mb_migo_badi_第1页
第1页 / 共11页
sap_badi屏幕增强实例mb_migo_badi_第2页
第2页 / 共11页
sap_badi屏幕增强实例mb_migo_badi_第3页
第3页 / 共11页
sap_badi屏幕增强实例mb_migo_badi_第4页
第4页 / 共11页
sap_badi屏幕增强实例mb_migo_badi_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《sap_badi屏幕增强实例mb_migo_badi》由会员分享,可在线阅读,更多相关《sap_badi屏幕增强实例mb_migo_badi(11页珍藏版)》请在金锄头文库上搜索。

1、以下根据系统实例做的 最终效果:1、 SE11 建立数据表,主要是用于存放附加的数据;MANDTMANDTCLNT30客户端 MBLNRMBLNRCHAR100物料凭证编号 MJAHRMJAHRNUMC40物料凭证年度 ZEILE MBLPONUMC40物料凭证中的项目 BADI_ERFMGERFMGQUAN133以输入单位计的数量 BADI_ERFMEERFMEUNIT30条目单位2、 建立结构,在屏幕数据交换时使用3、 建立表类型设置关键字段:4、 SE80 建立函数组创建屏幕 1000,设计格式,插入附加字段创建 function: ZJIM_BADI_EXAMPLE_GET_DATA

2、*“-*“*“Local interface:*“ EXPORTING*“ REFERENCE(ES_MIGO_BADI_SCREEN_FIELDS) TYPE*“ ZJIM_BADI_EXAMPLE_SCREEN_FIELD*“-* Get all data from fields of external screen* First move all customer-fieldsMOVE-CORRESPONDING zjim_badi_exampl TO es_migo_badi_screen_fields.* Second move all GOITEM-fields (displaye

3、d on external screen)function: ZJIM_BADI_EXAMPLE_PUT_DATA *“-*“*“Local interface:*“ IMPORTING*“ REFERENCE(IS_MIGO_BADI_SCREEN_FIELDS) TYPE*“ ZJIM_BADI_EXAMPLE_SCREEN_FIELD*“-* Put all data from fields to external screen* First fill all customer-fieldsMOVE-CORRESPONDING is_migo_badi_screen_fields TO

4、ZJIM_badi_exampl.* second fill all GOITEM-fields (displayed on external screen)function: ZJIM_BADI_EXAMPLE_UPDATE_DATA *“-*“*“Update function module:*“*“*“Local interface:*“ TABLES*“ IT_MIGO_BADI_EXAMPLE STRUCTURE ZJIM_BADI_EXAMPL*“-* Databse update:INSERT zjim_BADI_EXAMPL FROM TABLE IT_MIGO_BADI_EX

5、AMPLE.IF sy-subrc 0.* External subscreen:* The content of global field G_NO_INPUT (set in method MODE_SET) will* influence the number of external subsreen:if g_no_input is initial.e_cprog = SAPLZJIM_BADI001(006). “程序名为定义的函数组的名称前加“SAPL“。e_dynnr = 1000. “External fields: Inpute_heading = ZJIM(004). “显

6、示标签的名称endif.* Set G_LINE_ID (= line_id of item displayed on detail-tabstrip)g_line_id = i_line_id.* Read dataREAD TABLE gt_extdata INTO ls_extdataWITH TABLE KEY line_id = i_line_id.* Export data to function group (for display on subscreen)CALL FUNCTION ZJIM_BADI_EXAMPLE_PUT_DATAEXPORTINGis_migo_badi

7、_screen_fields = ls_extdata.ENDMETHOD. “IF_EX_MB_MIGO_BADIPBO_DETAILMETHOD IF_EX_MB_MIGO_BADIPAI_DETAIL .*-* Changing parameter E_FORCE_CHANGE can be set to X. In this case* method LINE_MODIFY is called.* ATTENTION:* DO NOT SET parameter E_FORCE_CHANGE = . In this case you might* overwrite parameter

8、 E_FORCE_CHANGE of another BAdI implementation.*-DATA: ls_extdata_new TYPE zjim_badi_example_screen_field,ls_extdata_old TYPE zjim_badi_example_screen_field.* Only if a line existsCHECK i_line_id ls_extdata_new.* If there were any changes, its obligatory to force MIGO to trigger* method LINE_MODIFY.

9、e_force_change = X.ENDIF.ENDMETHOD. “IF_EX_MB_MIGO_BADIPAI_DETAILMETHOD IF_EX_MB_MIGO_BADILINE_MODIFY .DATA: ls_extdata_old TYPE zjim_badi_example_screen_field,ls_extdata_new TYPE zjim_badi_example_screen_field,ls_migo_badi_exampl TYPE zjim_badi_exampl,l_subrc TYPE sy-subrc.* Get external data from

10、internal table:READ TABLE gt_extdata INTO ls_extdata_oldWITH TABLE KEY line_id = i_line_id.l_subrc = sy-subrc.* Update data in internal table:IF l_subrc ls_extdata_old-sgtxt.* Field was changed on external screen* cs_goitem-sgtxt = ls_extdata_new-sgtxt.* else.* Take data from GOITEM* ls_extdata_new-

11、sgtxt = cs_goitem-sgtxt.* endif.MODIFY TABLE gt_extdata FROM ls_extdata_new.ENDIF.ENDMETHOD. “IF_EX_MB_MIGO_BADILINE_MODIFYMETHOD IF_EX_MB_MIGO_BADILINE_DELETE .DELETE TABLE gt_extdata WITH TABLE KEY line_id = i_line_id.ENDMETHOD. “IF_EX_MB_MIGO_BADILINE_DELETEMETHOD IF_EX_MB_MIGO_BADIPOST_DOCUMENT

12、.DATA: ls_migo_badi_example TYPE ZJIM_badi_exampl,lt_migo_badi_example TYPE TABLE OF zjim_badi_exampl,ls_extdata TYPE zjim_badi_example_screen_field,ls_xmseg TYPE mseg.FIELD-SYMBOLS: TYPE migo_badi_example_screen_field.* Transaction MIGO will now post a material document.* Any errors here MUST be is

13、sued as A-message (better: X-message)* Copy data from material document into internal tableLOOP AT gt_extdata INTO ls_extdata.IF g_cancel IS INITIAL.READ TABLE it_mseg INTO ls_xmsegWITH KEY line_id = ls_extdata-line_id.ELSE.READ TABLE it_mseg INTO ls_xmsegWITH KEY smbln = ls_extdata-mblnrsmblp = ls_

14、extdata-zeilesjahr = ls_extdata-mjahr.ENDIF.IF sy-subrc IS INITIAL.MOVE-CORRESPONDING ls_extdata TO ls_migo_badi_example.MOVE-CORRESPONDING ls_xmseg TO ls_migo_badi_example.APPEND ls_migo_badi_example TO lt_migo_badi_example.ENDIF.ENDLOOP.* The data from external detail screen can be saved now:CHECK gt_extdata IS NOT INITIAL.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号