1. 获取每个月的最后一天
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = date
IMPORTING
last_day_of_month = date1.
2. 字符串前面去掉0
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = &1
importing
utput = &1.
3. 字符串前面自动补0
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = &1
importing
output = &1.
4. 获取生产定单状态
call function 'STATUS_TEXT_EDIT'
EXPORTING
flg_user_stat = 'X'
objnr = LO_OBJNR
only_active = 'X'
spras = sy-langu
IMPORTING
line = ls_statu
EXCEPTIONS
object_not_found = 01.
5. 金额转换成大写
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = T_AMOUNT10
CURRENCY = 'RMB'
LANGUAGE = '1'
IMPORTING
IN_WORDS = S_AMWORD2
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3.
6. 把SAP里的负号放到前面来的函数
DATA : t(10) TYPE c VALUE '65465-' .
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = t.
write : t .
7. 通过这个日期得出那天是星期几
DAY_IN_WEEK
8. 一组有用的用户交互窗口函数
POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/NO的弹出窗口,提示用户未保存的数据将丢失
POPUP_TO_CONFIRM_STEP 提示是否确认操作的弹出窗口
POPUP_TO_CONFIRM_WITH_MESSAGE 可以显示定制的提示信息的确认窗口
POPUP_TO_CONFIRM_WITH_VALUE 显示确认用户对某个特定对象的操作的弹出窗口
POPUP_TO_DECIDE 将待确认选项以单选按钮的方式显示的弹出窗口
POPUP_TO_DECIDE_WITH_MESSAGE 带消息的确认窗口
POPUP_TO_DISPLAY_TEXT 显示多行信息的窗口
POPUP_TO_SELECT_MONTH 月份选择窗口
POPUP_WITH_TABLE_DISPLAY 有表格对象的确认窗口
9. 判断某天是否是假日
HOLIDAY_CHECK_AND_GET_INFO
10. 在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序
运行“ABAPDOCU”T-cdoe,你可以看到ABAP DOCUMENT及示例程序
在SE38环境下的程序名输入栏输入'BCALV*'后按F4,你可以查到很多ALV示例程序
11.读取工作日程表
CALL FUNCTION 'HR_PERSON_READ_WORK_SCHEDULE'
EXPORTING
BEGIN_DATE = ITAB3_PA2001-BEGDA
END_DATE = P_G_DAT_TO
READ_FROM_DATABASE = 'X'
TABLES
PERNR_TAB = IG_PERNR_TAB
PSP = IG_PSP
DAY_PSP = IG_PDSPPSP
EXCEPTIONS
ERROR_IN_BUILD_PSP = 1
OTHERS = 2.
DATA :TOTAL_DAY TYPE I.
LOOP AT IG_PSP.
TOTAL_DAY = TOTAL_DAY + 1.
IF IG_PSP-TPROG <> '休息'
OR IG_PSP-TPROG <> ''."要考虑新员工当月头没有班次的情况
TOTAL_DAY = TOTAL_DAY + 1.
ENDIF.
ENDLOOP.
12.给出两个日期之间的天数,周数,月数,年数的
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'" EXPORTING
BEGDA = ITAB_PA2003-BEGDA
ENDDA = ITAB_PA2003-ENDDA
* TAB_MODE DEFAULT ' '
IMPORTING
DAYS = I_COUNT
* C_WEEKS I
* C_MONTHS I
* C_YEARS I
* WEEKS
* MONTHS
* YEARS
* D_MONTHS I
* MONTH_TAB P99SG_MONTH_TAB
13.计算前一天、后一天日期
*************************************************************************
*& Form frm_cal_last_next_date
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_P_BEGDA text
* * *----------------------------------------------------------------------*
FORM. FRM_CAL_LAST_NEXT_DATE USING P_DATE
CHANGING LAST_DATE
NEXT_DATE.
DATA:DATE TYPE BEGDA.
DATA:ITAB LIKE TABLE OF PSEN_DURATION_DEC WITH HEADER LINE.
ITAB-CALDD = 2.
DATE = P_DATE.
CALL FUNCTION 'HR_SEN_CALE_DAYS_DATE'
EXPORTING
ID_DATE = DATE
ID_OPERATOR = '-'
IS_DURATION = ITAB
IMPORTING
ED_DATE = LAST_DATE
EXCEPTIONS
CONVERSION_NOT_SPECIFIED = 1
CONVERSION_NOT_POSSIBLE = 2
OTHERS = 3.
CALL FUNCTION 'HR_SEN_CALE_DAYS_DATE'
EXPORTING
ID_DATE = DATE
ID_OPERATOR = '+'
IS_DURATION = ITAB
IMPORTING
ED_DATE = NEXT_DATE
EXCEPTIONS
CONVERSION_NOT_SPECIFIED = 1
CONVERSION_NOT_POSSIBLE = 2
OTHERS = 3.
ENDFORM. " frm_cal_last_next_date
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7762936/viewspace-611651/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7762936/viewspace-611651/