Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7203004
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2008-07-14 14:00:41

 城市火柴  发表时间:2008-07-14 10:54:20    

老白,我知道ALV输出时可以控制小数数位。可是现在业务部门有这样一个需求,比如说,如果系统数量是7.000的时候输出为整数7,如果系统数量是7.050的时候输出为7.05,如果系统数量是7.056的时候输出为7.056。有什么好办法处理么?谢谢。

Blog作者的回复:
LIKE THIS:


.....
    ls_fieldcat-edit_mask     = '==ZZERO' .
.....

FUNCTION conversion_exit_zzero_output.
*"----------------------------------------------------------
*"Local interface:
*"  IMPORTING
*"     VALUE(INPUT) OPTIONAL
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"-----------------------------------------------------------

  DATA: str TYPE string ,
        str2 TYPE string .
  str = input.
  CONDENSE str NO-GAPS.
  SPLIT str AT '.' INTO str str2.
  SHIFT str2 RIGHT DELETING TRAILING '0' .
  CONDENSE str2.
  CONCATENATE str '.' str2 INTO str.
  SHIFT str RIGHT DELETING TRAILING '.' .
  output = str.

ENDFUNCTION.

 
只是针对正数的情况,如果是负数请自行调整程序
阅读(5510) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

qdbarry2008-07-29 20:14:53

需要自己创建

chinaunix网友2008-07-29 15:01:53

这个function不存在的吗