小编Mik*_*l G的帖子

在ABAP中格式化时间,删除秒

我想将时间(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)

time sap abap

6
推荐指数
1
解决办法
1095
查看次数

使用没有LOOP的CORRESPONDING对平面结构进行映射

我在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)

sap abap

3
推荐指数
1
解决办法
1357
查看次数

标签 统计

abap ×2

sap ×2

time ×1