1. 程式人生 > >選擇螢幕年月(yyyymm)搜尋幫助

選擇螢幕年月(yyyymm)搜尋幫助

年月(yyyymm)需要如下搜尋幫助

SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:s_fpper FOR pc261-fpper OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bk1.

INITIALIZATION.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_fpper-low.
  PERFORM frm_period_f4 USING 'S_FPPER-LOW'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_fpper-high.
  PERFORM frm_period_f4 USING 'S_FPPER-HIGH'.


其中form frm_period_f4如下

*&---------------------------------------------------------------------*
*& Form FRM_PERIOD_F4
*&---------------------------------------------------------------------*
*& 期間  搜尋幫助  格式:201808
*&---------------------------------------------------------------------*
*&      --> P_
*&---------------------------------------------------------------------*
FORM frm_period_f4  USING    VALUE(pv_dynprofield).

  DATA lv_month TYPE isellist-month.

  FIELD-SYMBOLS <fs_field> TYPE any.

  lv_month = sy-datum+0(6).

  CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
    EXPORTING
      actual_month               = lv_month
*     FACTORY_CALENDAR           = ' '
*     HOLIDAY_CALENDAR           = ' '
*     LANGUAGE                   = SY-LANGU
*     START_COLUMN               = 8
*     START_ROW                  = 5
    IMPORTING
      selected_month             = lv_month
*     RETURN_CODE                =
    EXCEPTIONS
      factory_calendar_not_found = 1
      holiday_calendar_not_found = 2
      month_not_found            = 3
      OTHERS                     = 4.

  IF sy-subrc = 0.
    CHECK lv_month <> '000000'.
    ASSIGN (pv_dynprofield) TO <fs_field>.
    IF <fs_field> IS ASSIGNED.
      <fs_field> = lv_month.
      UNASSIGN <fs_field>.
    ENDIF.
  ENDIF.

ENDFORM.