凡尘clsoho™的博客

E-mail & MSN: clsoho@hotmail.com
QQ1超级群: <101817641已满> QQ2群:<110722895已满>
QQ3超级群:<23765855>QQ4超级群:<85338969>

今天我在编程的时候遇到这样的问题:
   我在ALV上有个‘本月发生金额’字段,该字段设置为可编辑,字段的类型是金额dmbtr, 

 小数位数两位
   当我在给ALV上给该字段输入整数‘125’时,该数据居然会默认变成‘1.25’,不知道是什么原因!
   我想得到数据是‘125.00’或是‘125’而不是‘1.25’.

   后来经过多方search,还有高人指点,总算是解决了这个问题。

可以在这里解决这个问题。就是定义字段目录的时候,对于金额字段指定参考数据类型就可以了。

DATA: wa_fieldcat TYPE slis_fieldcat_alv .
或者  DATA ls_fcat TYPE lvc_s_fcat .

1、对于货币字段,要在其设置字段和列名的属性中再添加一个“指定数据类型”的属性,如下:
wa_fieldcat-datatype      = 'CURR' .     " 指定数据类型

或者 ls_fcat-datatype = 'CURR' “oo编程用到
这样在修改数据并保存时,才能将数据保持原样,否则输入的数据会自动将小数点提前2位;

2、对于数量字段,也要添加一个“指定数据类型”的属性,才能保持数据的正确性,如下:
  wa_fieldcat-datatype      = 'QUAN' .  " 指定数据类型
  wa_fieldcat-inttype         = 'C' .
或者 ls_fcat-datatype = 'QUAN'.

       ls_fcat-inttype = 'C'.

reference:http://ms.itpub.net/redirect.php?fid=45&tid=1011011&goto=nextnewset

posted on 2010-04-21 11:58  凡尘clsoho  阅读(1923)  评论(0编辑  收藏  举报