• 负号显示


    最简单的一种:

    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
          CHANGING
            value = value.

    还有就是自己写函数等了

    构建ALV的FIELDCATE时,设置 edit_mask = '==XXXXX',建立函数CONVERSION_EXIT_XXXXX_OUTPUT设置输出为负号提前,之后调用ALV显示函数,系统会自动调用函数CONVERSION_EXIT_XXXXX_OUTPUT
    
    
    
    
     
    
    
    
    
      FUNCTION CONVERSION_EXIT_ZMENGE_OUTPUT.
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
    *"*"Local interface:
    
    
    
    
    *"  IMPORTING
    
    
    
    
    *"     REFERENCE(INPUT) TYPE  ANY
    
    
    
    
    *"  EXPORTING
    
    
    
    
    *"     REFERENCE(OUTPUT) TYPE  ANY
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
      OUTPUT = INPUT.
    
    
    
    
      CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    
    
    
    
        CHANGING
    
    
    
    
          VALUE = OUTPUT.
    
    
    
    
    ENDFUNCTION.
    
    
    
    
     
    
    
    
    
    1、建立自定义函数
    
    
    
    
    1.1 整数显示
    
    
    
    
    FUNCTION CONVERSION_EXIT_Z0002_OUTPUT.
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
    *"*"Local interface:
    
    
    
    
    *"  IMPORTING
    
    
    
    
    *"     REFERENCE(INPUT)
    
    
    
    
    *"  EXPORTING
    
    
    
    
    *"     REFERENCE(OUTPUT)
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
      DATA: OUTPUT1(12)   TYPE C,
    
    
    
    
            OUTDATUM   TYPE INT4.
    
    
    
    
      IF INPUT <> SPACE.
    
    
    
    
        OUTDATUM = INPUT.
    
    
    
    
        if input > 0.
    
    
    
    
          move OUTDATUM TO OUTPUT .
    
    
    
    
        else.
    
    
    
    
          OUTDATUM = OUTDATUM_*( -1 ).
    
    
    
    
          move OUTDATUM TO OUTPUT1 .
    
    
    
    
          CONCATENATE '-' output1 into output.
    
    
    
    
          CONDENSE output NO-GAPS .
    
    
    
    
        endif.
    
    
    
    
      ELSE.
    
    
    
    
        OUTPUT = SPACE.
    
    
    
    
      ENDIF.
    
    
    
    
    ENDFUNCTION.
    
    
    
    
    1.2 浮点数显示
    
    
    
    
    FUNCTION conversion_exit_zsign_output.
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
    *"*"Local interface:
    
    
    
    
    *"  IMPORTING
    
    
    
    
    *"     REFERENCE(INPUT)
    
    
    
    
    *"  EXPORTING
    
    
    
    
    *"     REFERENCE(OUTPUT)
    
    
    
    
    *"----------------------------------------------------------------------
    
    
    
    
      DATA: output1(19)   TYPE c,
    
    
    
    
            output2(19),
    
    
    
    
            outdatum   TYPE p DECIMALS 2.
    
    
    
    
      IF  not input is initial.
    
    
    
    
        outdatum = input.
    
    
    
    
        IF input > 0.
    
    
    
    
          WRITE outdatum TO output1 ."RIGHT-JUSTIFIED .
    
    
    
    
          CONCATENATE ' ' output1 INTO output1.
    
    
    
    
        ELSE.
    
    
    
    
          outdatum = outdatum_*( -1 ).
    
    
    
    
          WRITE outdatum TO output1 ."RIGHT-JUSTIFIED.
    
    
    
    
          CONCATENATE '-' output1 INTO output1.
    
    
    
    
        ENDIF.
    
    
    
    
      ELSE.
    
    
    
    
    *    output = '0.00'.
    
    
    
    
        CLEAR output1.
    
    
    
    
      ENDIF.
    
    
    
    
      CONDENSE output1 NO-GAPS .
    
    
    
    
      WRITE output1 TO output2 RIGHT-JUSTIFIED .
    
    
    
    
      output = output2.
    
    
    
    
    ENDFUNCTION.
    
    
    
    
    2、设置ALV输出格式字段格式
    
    
    
    
      clear ls_fcat.
    
    
    
    
      ls_fcat-fieldname = 'INT4'.
    
    
    
    
      ls_fcat-inttype   = 'I'.
    
    
    
    
      ls_fcat-intlen    = 10.
    
    
    
    
      ls_fcat-col_pos   = l_lin.
    
    
    
    
      ls_fcat-seltext_s = ls_fcat-fieldname.
    
    
    
    
      ls_fcat-seltext_m = ls_fcat-fieldname.
    
    
    
    
      ls_fcat-seltext_l = ls_fcat-fieldname.
    
    
    
    
      ls_fcat-edit_mask = '==Z0002'.
    
    
    
    
      append ls_fcat to ct_fcat.
    
    
    
    
    3、调用函数就可达到负数符号前显的效果。
    
    
    
    
      call function 'REUSE_ALV_GRID_DISPLAY'
    
    
    
    
        exporting
    
    
    
    
          it_fieldcat                       = lt_fcat
    
    
    
    
        tables
    
    
    
    
          t_outtab                          = gt_outtab
    
    
    
    
        exceptions
    
    
    
    
          program_error                     = 1
    
    
    
    
          others                            = 2.
    
    
    
    
     
    
    
    
    
    2.       
    
    
    方法1:把字段设置为CHAR型,拼接字符串负号自然可以提前显示。
    
    
     
    
    
    方法2:构建ALV的FIELDCATE时,设置 edit_mask = '==XXXXX',建立函数CONVERSION_EXIT_XXXXX_OUTPUT设置输出为负号提前,之后调用ALV显示函数,系统会自动调用函数CONVERSION_EXIT_XXXXX_OUTPUT
    
    
     
    
    
      FUNCTION CONVERSION_EXIT_ZMENGE_OUTPUT.
    
    
    *"----------------------------------------------------------------------
    
    
    *"*"Local interface:
    
    
    *"  IMPORTING
    
    
    *"     REFERENCE(INPUT) TYPE  ANY
    
    
    *"  EXPORTING
    
    
    *"     REFERENCE(OUTPUT) TYPE  ANY
    
    
    *"----------------------------------------------------------------------
    
    
      OUTPUT = INPUT.
    
    
      CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    
    
        CHANGING
    
    
          VALUE = OUTPUT.
    
    
    ENDFUNCTION.
    
    
     
    
    
    1、建立自定义函数
    
    
    1.1 整数显示
    
    
    FUNCTION CONVERSION_EXIT_Z0002_OUTPUT.
    
    
    *"----------------------------------------------------------------------
    
    
    *"*"Local interface:
    
    
    *"  IMPORTING
    
    
    *"     REFERENCE(INPUT)
    
    
    *"  EXPORTING
    
    
    *"     REFERENCE(OUTPUT)
    
    
    *"----------------------------------------------------------------------
    
    
      DATA: OUTPUT1(12)   TYPE C,
    
    
            OUTDATUM   TYPE INT4.
    
    
      IF INPUT <> SPACE.
    
    
        OUTDATUM = INPUT.
    
    
        if input > 0.
    
    
          move OUTDATUM TO OUTPUT .
    
    
        else.
    
    
          OUTDATUM = OUTDATUM_*( -1 ).
    
    
          move OUTDATUM TO OUTPUT1 .
    
    
          CONCATENATE '-' output1 into output.
    
    
          CONDENSE output NO-GAPS .
    
    
        endif.
    
    
      ELSE.
    
    
        OUTPUT = SPACE.
    
    
      ENDIF.
    
    
    ENDFUNCTION.
    
    
    1.2 浮点数显示
    
    
    FUNCTION conversion_exit_zsign_output.
    
    
    *"----------------------------------------------------------------------
    
    
    *"*"Local interface:
    
    
    *"  IMPORTING
    
    
    *"     REFERENCE(INPUT)
    
    
    *"  EXPORTING
    
    
    *"     REFERENCE(OUTPUT)
    
    
    *"----------------------------------------------------------------------
    
    
      DATA: output1(19)   TYPE c,
    
    
            output2(19),
    
    
            outdatum   TYPE p DECIMALS 2.
    
    
      IF  not input is initial.
    
    
        outdatum = input.
    
    
        IF input > 0.
    
    
          WRITE outdatum TO output1 ."RIGHT-JUSTIFIED .
    
    
          CONCATENATE ' ' output1 INTO output1.
    
    
        ELSE.
    
    
          outdatum = outdatum_*( -1 ).
    
    
          WRITE outdatum TO output1 ."RIGHT-JUSTIFIED.
    
    
          CONCATENATE '-' output1 INTO output1.
    
    
        ENDIF.
    
    
      ELSE.
    
    
    *    output = '0.00'.
    
    
        CLEAR output1.
    
    
      ENDIF.
    
    
      CONDENSE output1 NO-GAPS .
    
    
    
      WRITE output1 TO output2 RIGHT-JUSTIFIED .
    
    
      output = output2.
    
    
    ENDFUNCTION.
    
    
    2、设置ALV输出格式字段格式
    
    
      clear ls_fcat.
    
    
      ls_fcat-fieldname = 'INT4'.
    
    
      ls_fcat-inttype   = 'I'.
    
    
      ls_fcat-intlen    = 10.
    
    
      ls_fcat-col_pos   = l_lin.
    
    
      ls_fcat-seltext_s = ls_fcat-fieldname.
    
    
      ls_fcat-seltext_m = ls_fcat-fieldname.
    
    
      ls_fcat-seltext_l = ls_fcat-fieldname.
    
    
      ls_fcat-edit_mask = '==Z0002'.
    
    
      append ls_fcat to ct_fcat.
    
    
    3、调用函数就可达到负数符号前显的效果。
    
    
      call function 'REUSE_ALV_GRID_DISPLAY'
    
    
        exporting
    
    
          it_fieldcat                       = lt_fcat
    
    
        tables
    
    
          t_outtab                          = gt_outtab
    
    
        exceptions
    
    
          program_error                     = 1
    
    
          others                            = 2.
  • 相关阅读:
    spring service层单元测试
    Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
    Java源码学习 -- java.lang.String
    动态规划算法
    单元测试(Spring)
    Servlet/JSP
    Log4j2 — Log4j2导入、LogEvent、配置文件编写及路径
    idea 控制台输出 中文乱码 解决方法
    常见正则表达式
    读《浪潮之巅》(吴军著)有感
  • 原文地址:https://www.cnblogs.com/huangjianisgood/p/2920801.html
Copyright © 2020-2023  润新知