zoukankan      html  css  js  c++  java
  • ABAP-年月期间搜索帮助

    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).
  • 相关阅读:
    1. MySQL的安装与配置
    18. SQL优化
    19. 优化数据库对象
    20. 锁问题
    21. 优化MySQL Server
    整合SSM基本配置
    第七周实验报告(五)&周总结
    Java作业-实验四
    Java实验三
    在IDEA中创建maven工程添加webapp
  • 原文地址:https://www.cnblogs.com/ricoo/p/10170137.html
Copyright © 2011-2022 走看看