我想将时间(SY-TIMLO)格式化为SU01中的用户定义格式.对于美国用户,这通常涉及AM/PM.我发现最简单的方法是:
lv_formatted_time = |{ lv_time TIME = USER }|
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以在不使用下面更广泛的方法的情况下删除秒数?
*-- Convert time to user time format based on environment setting.
*-- As we are not using SET COUNTRY this has the same effect as
*-- user settings in SU01 > Defaults > Time Format. US users will see AM/PM.
CALL METHOD CL_ABAP_TIMEFM=>CONV_TIME_INT_TO_EXT
EXPORTING
TIME_INT = lv_time
WITHOUT_SECONDS = ABAP_TRUE
FORMAT_ACCORDING_TO = CL_ABAP_TIMEFM=>ENVIRONMENT
IMPORTING
TIME_EXT = lv_formatted_time.
Run Code Online (Sandbox Code Playgroud) 我在ABAP 7.4 SP13上.
我想在下面的代码中使用"选项2",但我该如何进行深度映射?这里的目标是拥有一个干净,简单,易于阅读的映射,避免循环.
TYPES:
BEGIN OF ty_s_audit,
CreatedBy TYPE ernam,
LastChangedBy TYPE aenam,
END OF ty_s_audit,
BEGIN OF ty_s_equipment,
EquipmentId TYPE equi-equnr,
Audit TYPE ty_s_audit BOXED,
END OF ty_s_equipment,
ty_t_equipment TYPE STANDARD TABLE OF ty_s_equipment WITH KEY PRIMARY_KEY COMPONENTS EquipmentId.
DATA: lt_equipments TYPE ty_t_equipment.
SELECT equnr, ernam, aenam FROM equi INTO TABLE @DATA(lt_equi).
"Option 1:
LOOP AT lt_equi ASSIGNING FIELD-SYMBOL(<ls_equi>).
APPEND INITIAL LINE TO lt_equipments ASSIGNING FIELD-SYMBOL(<ls_equipment>).
<ls_equipment> = CORRESPONDING #( <ls_equi> MAPPING EquipmentId = EQUNR ).
<ls_equipment>-Audit = …Run Code Online (Sandbox Code Playgroud)