现象描述 函数
在使用ABAP报表展现数据的时候会涉及到金额类字段,在手动计算金额的时候,有时会发生存在负值而没法正常展现的状况。测试
处理过程spa
ABAP报表的数据展现经常使用的方法有两种,分别是表控制和ALV设计
一、使用ALV展现时负值不会报错,可是金额字段的负号默认显示在结尾如图3d
若是但愿按照习惯将负号置于数字前段,则须要手动编写一个转换例程的函数来实现。blog
首先建立一个函数,命名规则CONVERSION_EXIT_XXXX_OUTPUT,其中XXXX为自定义名称,参考代码为ast
再建立对应的另一个函数,命名规则CONVERSION_EXIT_XXXX_INPUT,其中XXXX为自定义名称,参考代码为程序设计
而后在设置ALV字段属性时将刚刚建立的转换例程添加进去程序
最后从新执行报表就能够获得咱们想要的展现结果方法
二、使用表控制展现时,若是数据存在负值,会出现Short Dump。
解决方法是将表控制中的该金额字段的属性设置为带记号的,以下图
设置完成后从新执行报表,程序可以正常执行,负号显示在末尾
若是但愿加负号置前,能够在退出对话中将以前建立的转换例程添加进去
添加之后的执行效果
在ABAP程序中负值展现问题的处理是一种特例,须要用上述特殊的方式来进行处理,不然会出现显示不正常甚至是Short Dump。因此在程序设计的时候,若是涉及到金额字段,应该充分考虑是否存在负值的状况,而且进行全面的测试,防范传输以后出现此种问题。