SAP ABAPG开发屏幕自动生成日期的搜索帮助

SAP ABAPG开发屏幕自动生成日期的搜索帮助_第1张图片

 代码如下:

REPORT  z_jason_test_f4                         .
TABLES: s031.
PARAMETER p_spmon  TYPE spmon DEFAULT sy-datum+0(6) OBLIGATORY.
SELECT-OPTIONS s_spmon FOR s031-spmon DEFAULT sy-datum+0(6) OBLIGATORY.
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.
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: .
  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.

你可能感兴趣的:(SAP,ABAP,开发语言,数据库)