ABAP数字类型负号前置

1、建立自定义函数

浮点数显示
FUNCTION conversion_exit_zsign_output.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
  DATA: output1(20)   TYPE c,
        output2(20),
        outdatum   TYPE p DECIMALS 6.
  IF  not input is initial.
    outdatum = input.
    IF input > 0.
      WRITE outdatum TO output1 ."RIGHT-JUSTIFIED .
    ELSE.
      outdatum = outdatum * ( -1 ).
      WRITE outdatum TO output1 ."RIGHT-JUSTIFIED.
      CONCATENATE '-' output1 INTO output1.
    ENDIF.
  ELSE.
    CLEAR output1.
  ENDIF.
  CONDENSE output1 NO-GAPS .
  WRITE output1 TO output2 RIGHT-JUSTIFIED .
  output = output2.
ENDFUNCTION.

2、设置ALV输出格式字段格式
  clear ls_fcat.
  ls_fcat-fieldname = 'DEC'.
  ls_fcat-inttype   = 'P'.
  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 = '==ZSIGN'.
  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.

    这种方式同样可以实现相对复杂的显示效果,如财务凭证中S表示借,H表示贷,我们在显示的时候要显示“借”或“贷”,也可以写一个类似的函数来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值