上载相关
01 日期转换
*&---------------------------------------------------------------------*
*& Form FRM_DATE_INPUT
*&---------------------------------------------------------------------*
*& 日期相关处理
*&---------------------------------------------------------------------*
FORM frm_date_input USING p_exte TYPE char10
CHANGING p_date TYPE datum.
DATA:lv_day TYPE n LENGTH 2,
lv_mon TYPE n LENGTH 2,
lv_year TYPE n LENGTH 4.
CHECK p_exte IS NOT INITIAL.
SPLIT p_exte AT '/' INTO lv_year lv_mon lv_day.
IF sy-subrc <> 0.
SPLIT p_exte AT '.' INTO lv_year lv_mon lv_day.
IF sy-subrc <> 0.
SPLIT p_exte AT '\' INTO lv_year lv_mon lv_day.
IF sy-subrc <> 0.
SPLIT p_exte AT '-' INTO lv_year lv_mon lv_day.
IF sy-subrc <> 0.
lv_year = p_exte(4).
lv_mon = p_exte+4(2).
lv_day = p_exte+6(2).
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF lv_mon < 10 AND lv_mon IS NOT INITIAL.
lv_mon = '0' && |{ lv_mon ALPHA = OUT }|.
ENDIF.
IF lv_day < 10 AND lv_day IS NOT INITIAL.
lv_day = '0' && |{ lv_day ALPHA = OUT }|.
ENDIF.
p_date = |{ lv_year }{ lv_mon }{ lv_day }|.
ENDFORM.
02 最大行校验
💡 wait to write
03 小数位数检查
*&---------------------------------------------------------------------*
*& Form frm_check_decimal
*&---------------------------------------------------------------------*
*& 小数位数检查
*&---------------------------------------------------------------------*
FORM frm_check_decimal USING p_value
p_show TYPE ty_show
p_text TYPE c.
DATA: lv_int TYPE string,
lv_decimal TYPE string.
DATA: lv_len TYPE i.
DATA: lv_value TYPE string.
lv_value = p_value.
CONDENSE lv_value NO-GAPS.
SPLIT lv_value AT '.' INTO lv_int lv_decimal.
SHIFT lv_decimal RIGHT DELETING TRAILING '0'.
CONDENSE lv_decimal NO-GAPS.
lv_len = strlen( lv_decimal ).
IF lv_len >= 3.
p_show-msg = p_text && '小数位超过2位,请重新填写'.
p_show-icon = icon_led_red.
ENDIF.
ENDFORM.
下载相关
01 基于ALV的下载
💡 wait to write