selection-screen begin of block block1 with frame title text-001. parameters:p_mon1 like s031-spmon, p_mon2 like s031-spmon. selection-screen end of block block1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_mon1. PERFORM MONAT_F4. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_mon2. PERFORM MONAT_F4. 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>. * Wert von Dynpro lesen 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. * Aktuelles Dynpro ist Wertemengenbild MF_HLP_REPID = 'SAPLALDB'. ELSE. READ TABLE MF_DYNPFIELDS INDEX 1. * Unterstriche durch Blanks ersetzen TRANSLATE MF_DYNPFIELDS-FIELDVALUE USING '_ '. EXIT. ENDIF. ENDDO. IF SY-SUBRC = 0. * Konvertierung ins interne Format CALL FUNCTION 'CONVERSION_EXIT_PERI_INPUT' EXPORTING INPUT = MF_DYNPFIELDS-FIELDVALUE IMPORTING OUTPUT = MF_MONAT EXCEPTIONS ERROR_MESSAGE = 1. IF MF_MONAT IS INITIAL. * Monat ist initial => Vorschlagswert aus akt. Datum ableiten 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. "<<== note 148804 ENDIF. ENDIF. ENDFORM. " MONAT_F4
*************************************************************************************
"前一个月 data:datum type sy-datum. CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE' EXPORTING MONTHS = -1 OLDDATE = sy-datum IMPORTING NEWDATE = datum . p_mon1 = datum+0(6). p_mon2 = sy-datum+0(6).