您的位置:首页 > 其它

SAP ABAP 选择画面 年/月的F4帮助

2014-02-12 09:31 507 查看
给选择画面上的 年/月字段 定义一个F4帮助。

要实现的效果图如下



1.定义事件

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_yemon.

* 检索帮助(年/月)

PERFORM frm_month_f4.

2.子程序中实现

FROM frm_month_f4.

* DATA: BEGIN OF mf_dynpfields OCCURS 1.

* INCLUDE STRUCTURE dynpread.

* DATA: END OF mf_dynpfields.

* DATA: mf_returncode LIKE sy-subrc,

* mf_monat LIKE isellist-month,

* mf_hlp_repid LIKE sy-repid.

*

* GET CURSOR FIELD mf_dynpfields-fieldname.

* APPEND mf_dynpfields.

* mf_hlp_repid = sy-repid.

*

* DO 2 TIMES.

*

* CALL FUNCTION 'DYNP_VALUES_READ'

* EXPORTING

* dyname = mf_hlp_repid

* dynumb = sy-dynnr

* TABLES

* dynpfields = mf_dynpfields

* EXCEPTIONS

* invalid_abapworkarea = 01

* invalid_dynprofield = 02

* invalid_dynproname = 03

* invalid_dynpronummer = 04

* invalid_request = 05

* no_fielddescription = 06

* undefind_error = 07.

*

* IF sy-subrc = 3.

* mf_hlp_repid = 'SAPLALDB'.

* ELSE.

* READ TABLE mf_dynpfields INDEX 1.

* TRANSLATE mf_dynpfields-fieldvalue USING '_ '.

* EXIT.

* ENDIF.

*

* ENDDO.

*

* IF sy-subrc = 0.

* CALL FUNCTION 'CONVERSION_EXIT_PERI_INPUT'

* EXPORTING

* input = mf_dynpfields-fieldvalue

* IMPORTING

* output = mf_monat

* EXCEPTIONS

* error_message = 1.

*

* IF mf_monat IS INITIAL.

* mf_monat = sy-datlo(6).

* ENDIF.

*

* CALL FUNCTION 'POPUP_TO_SELECT_MONTH'

* EXPORTING

* actual_month = mf_monat

* IMPORTING

* selected_month = mf_monat

* return_code = mf_returncode

* EXCEPTIONS

* factory_calendar_not_found = 01

* holiday_calendar_not_found = 02

* month_not_found = 03.

*

* IF sy-subrc = 0 AND mf_returncode = 0.

* CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT'

* EXPORTING

* input = mf_monat

* IMPORTING

* output = mf_dynpfields-fieldvalue.

* COLLECT mf_dynpfields.

* CALL FUNCTION 'DYNP_VALUES_UPDATE'

* EXPORTING

* dyname = mf_hlp_repid

* dynumb = sy-dynnr

* TABLES

* dynpfields = mf_dynpfields

* EXCEPTIONS

* invalid_abapworkarea = 01

* invalid_dynprofield = 02

* invalid_dynproname = 03

* invalid_dynpronummer = 04

* invalid_request = 05

* no_fielddescription = 06

* undefind_error = 07.

* ENDIF.

* ENDIF.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: