ITPub博客

首页 > Linux操作系统 > Linux操作系统 > POPUP_TO_SELECT_MONTH

POPUP_TO_SELECT_MONTH

原创 Linux操作系统 作者:SAP骑士 时间:2009-04-20 13:06:18 0 删除 编辑
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; }
FUNCTION POPUP_TO_SELECT_MONTH.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"              ACTUAL_MONTH LIKE  ISELLIST-MONTH
*"              FACTORY_CALENDAR LIKE  TFACD-IDENT DEFAULT SPACE
*"              HOLIDAY_CALENDAR LIKE  THOCI-IDENT DEFAULT SPACE
*"              LANGUAGE LIKE  SY-LANGU DEFAULT SY-LANGU
*"              START_COLUMN LIKE  SY-SCOLS DEFAULT 8
*"              START_ROW LIKE  SY-SROWS DEFAULT 5
*"       EXPORTING
*"              SELECTED_MONTH LIKE  ISELLIST-MONTH
*"              RETURN_CODE LIKE  SY-SUBRC
*"       EXCEPTIONS
*"              FACTORY_CALENDAR_NOT_FOUND
*"              HOLIDAY_CALENDAR_NOT_FOUND
*"              MONTH_NOT_FOUND
*"----------------------------------------------------------------------

函数模块作用:
弹出一个对话框显示月份和年度下拉列表,让用户选择年月。

输入参数:
ACTUAL_MONTH:当前月份,必须填写。形式为 YYYYMM,可以直接用一个日期类型对象 adate 取偏移 adate+0(6) 做为输入。
FACTORY_CALENDAR:工厂日历,可以省略,默认值为空。更多信息请参考表 TFACD。
HOLIDAY_CALENDAR:公共假日日历,可以省略,默认值为空。更多信息请参考表 THOCI。
LANGUAGE:语言,可以省略。用来指定月份名称用哪种语言显示,不指定就是当前登录语言。
START_COLUMN:对话框出现的位置,列,可以省略,默认值为 8。
START_ROW:对话框出现的位置,行,可以省略,默认值为 5。

输出参数:
SELECTED_MONTH:选择的月份,如果按了取消按钮,则值为 000000。
RETURN_CODE:返回码,如果按了取消按钮,则值为 4,否则为 0。

异常:
FACTORY_CALENDAR_NOT_FOUND:没有找到指定的工厂日历。
HOLIDAY_CALENDAR_NOT_FOUND:没有找到指定公共假日日历。
MONTH_NOT_FOUND:没有找到月份,月份名称表 T247 中没有指定语言的月份名称。

说明:
工厂日历和公共假日日历主要用来限制下拉列表中的年份范围。如果不指定,就是当前年前后各 50 年,共 100 年。


FORM
 check_budat .

* local data definition
  DATA:l_date TYPE kmonth.

* Popup to choose a month
  CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
    EXPORTING
      actual_month                     = sy-datum+(6)
*     FACTORY_CALENDAR                 = ' '
*     HOLIDAY_CALENDAR                 = ' '
*     LANGUAGE                         = SY-LANGU
*     START_COLUMN                     = 8
*     START_ROW                        = 5
   IMPORTING
     selected_month                   = l_date
*     RETURN_CODE                      =
   EXCEPTIONS
     factory_calendar_not_found       = 1
     holiday_calendar_not_found       = 2
     month_not_found                  = 3
     OTHERS                           = 4
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  l_date = l_date+(6).

  gt_dynpupdate-fieldname  = 'PA_BUDAT'.
  gt_dynpupdate-fieldvalue = l_date.
  APPEND gt_dynpupdate.

* set the description of Vendor
  CALL FUNCTION 'DYNP_VALUES_UPDATE'
    EXPORTING
      dyname     = sy-cprog
      dynumb     = sy-dynnr
    TABLES
      dynpfields = gt_dynpupdate.


ENDFORM.                    " CHECK_BUDAT

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17204926/viewspace-591002/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 选择屏幕
请登录后发表评论 登录
全部评论

注册时间:2009-01-01

  • 博文量
    59
  • 访问量
    313251