abap 负数前置

摘要:
然而,这有一个缺点。传入的值必须是字符类型,因此必须在传入之前转换变量。

第一种、直接调用函数“CLOI_PUT_SIGN_IN_FRONT”。

但是这个有个弊端,传入的值必须是字符型,所以必须赞传入前自己先转换好变量。

第二种:自己写一下自定义函数,可以自己写代码转换也可以在里面调用函数“CLOI_PUT_SIGN_IN_FRONT”。

FUNCTION CONVERSION_EXIT_Z001_OUTPUT.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
*  IF input IS NOT INITIAL.
*    WRITE input TO output.
*    CONCATENATE output '%' INTO output.
*    CONDENSE output NO-GAPS.
*  ENDIF.
  "-------------------自己写的转换代码-------------------
*  DATA: OUTPUT1(20)  TYPE C,
*        OUTPUT2(20),
*        OUTDATUM(16) TYPE P DECIMALS 2.
*  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.
*  CLEAR: OUTPUT2.
  "-------------------自己写的转换代码-------------------
  "  调用函数转换
  DATA:OUTPUT1(20).
  OUTPUT1 = INPUT.
  CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    CHANGING
      VALUE = OUTPUT1.
  CONDENSE OUTPUT1 NO-GAPS.
  OUTPUT =   OUTPUT1.
  CLEAR: OUTPUT1.

ENDFUNCTION.

input

abap 负数前置第1张

 output

abap 负数前置第2张

 第三,使用第二种的自定义函数直接使ALV展示成需要的负号前置,不需要在程序里写转换,

但是要注意函数名称格式是固定的,CONVERSION_EXIT_XXXX_OUTPUT,其中XXXX可以自己起名字

结合ALV的参数  

wa_fieldcat-edit_mask

abap 负数前置第3张

免责声明:文章转载自《abap 负数前置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇无法访问SVN历史记录的问题白话空间统计之九:方向分布(标准差椭圆)修正版下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

揭开SAP Fiori编程模型规范里注解的神秘面纱

今天是2020年2月1日鼠年大年初八,这是Jerry鼠年的第8篇文章,也是汪子熙公众号总共第207篇原创文章。 Jerry的前一篇文章 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @ObjectModel.readOnly工作原理解析,给大家分享了@ObjectModel.readOnly这个注解对应的Fiori UI和ABAP后台的工作原理。...

Runtime error TSV_TNEW_PAGE_ALLOC_FAILED

NOTE:/20527 https://launchpad.support.sap.com/#/notes/20527 NOTE:2180736  https://launchpad.support.sap.com/#/notes/2180736 T-CODE:RZ10   进行SAP系统参数的设置,设置后需激活参数并重启SAP实例,配置参数才会生效 系...

Abap 内表的语法

ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的  内表支持循环对每行数据进行操作,也支持整体操作 内表是具有行和列的表结构,然而,不同于数据库表,内表仅在程序运行期间在内存中存储数据 ABAP中有三种内表类型:标准表,哈希表,排序表 - ABAP内表数据...

ABAP术语-Error Message

Error Message 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/30/1058283.html Information from the system to the user. Error messages are intended to help users recognize th...

ABAP 用指针的方式

首先要定义指针 FIELD-SYMBOLS: <fs_out> LIKE gt_tab_out. 然后在循环赋值时使用ASSIGNING关键字对指针初始化。 LOOP AT lt_tab_out ASSIGNING <fs_out> WHERE aufnr NE space.        READ TABLE lt_afko WI...

ABAP如何创建和使用sap的号码范围对象

创建号码范围对象: 1.使用TCODE:SNRO (Simple way to remember is SapNumberRangeObject). 2.输入号码范围对象的名称 并点击“新建”按钮. 3.输入描叙和相关字段具体参见下图: Warning% àAssume that an interval is defined from 1 to 100...