如何解决ALV的负数符号前显的问题

来源:互联网 发布:兼职淘宝摄影师招聘 编辑:程序博客网 时间:2024/06/04 17:42

 

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. 

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.

原创粉丝点击