FORM frm_get_data.
DATA:lv_date_out TYPE char20,
lv_date_in TYPE char20.
DATA:lv_ukurs_sign TYPE char50.
DATA:ls_alv TYPE ty_alv,
lv_index TYPE sy-tabix.
DATA:lr_gdatu TYPE RANGE OF tcurr-gdatu,
lv_gdatu_low TYPE tcurr-gdatu.
IF s_gdatu[] IS NOT INITIAL.
CONVERT DATE s_gdatu-low INTO INVERTED-DATE lv_gdatu_low.
lr_gdatu = VALUE #( ( sign = 'I' option = 'EQ'
low = lv_gdatu_low ) ).
ENDIF.
*期初 日期不输入 查全量
SELECT
kurst,
fcurr,
tcurr,
gdatu,
ukurs
FROM tcurr
WHERE kurst = 'M'
AND fcurr IN @s_fcurr
AND tcurr IN @s_tcurr
AND gdatu IN @lr_gdatu
INTO TABLE @DATA(lt_tcurr).
CLEAR lv_index.
LOOP AT lt_tcurr INTO DATA(ls_tcurr).
MOVE-CORRESPONDING ls_tcurr TO ls_alv.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
input = ls_tcurr-gdatu
IMPORTING
output = lv_date_out.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = lv_date_out
* ACCEPT_INITIAL_DATE =
IMPORTING
date_internal = lv_date_in
EXCEPTIONS
date_external_is_invalid = 1
OTHERS = 2.
*日期转换 YYYY-MM-DD
CALL METHOD zcl_abap_comm=>zconv_date_out
EXPORTING
iv_date_in = lv_date_in
IMPORTING
ev_date_out = ls_alv-gdatu_out.
lv_ukurs_sign = ls_tcurr-ukurs.
CONDENSE lv_ukurs_sign.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = lv_ukurs_sign.
ls_alv-ukurs_out = lv_ukurs_sign.
lv_index = lv_index + 1.
ls_alv-line_index = lv_index.
APPEND ls_alv TO gt_alv.
CLEAR ls_alv.
ENDLOOP.
ENDFORM.
![image]()