ABAP实例:如何生成年月的输入帮助
生活随笔
收集整理的這篇文章主要介紹了
ABAP实例:如何生成年月的输入帮助
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? 在ABAP的設(shè)計(jì)過(guò)程中經(jīng)常會(huì)出現(xiàn)賬務(wù)期輸入,格式為年月。如果我們使用spmon元素為參考,但是系統(tǒng)無(wú)輸入幫助,用戶(hù)常常出錯(cuò),為了避免輸入錯(cuò)誤。我們可以自定義輸入幫助,步驟如下:
??? 1、定義選擇變量
?
????select-options s_spmon?for?s031-spmon?default?sy-datum+0(6) obligatory.
????
??? 2、定義幫助子過(guò)程
form??monat_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.
??????field-symbols:?<mf_feld>.
??????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.
????endform.???????????????????????????????"MONAT_F4
????
??? 3、定義輸入幫助事件???
at selection-screen on value-request?for?p_spmon.??????perform monat_f4.
????at selection-screen on value-request?for?s_spmon-low.
??????perform monat_f4.
????at selection-screen on value-request?for?s_spmon-high.
??????perform monat_f4.
總結(jié)
以上是生活随笔為你收集整理的ABAP实例:如何生成年月的输入帮助的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OO实现ALV
- 下一篇: SAP的号码范围(number rang