smartform 中currency 字段的小数点问题
近日開發(fā)遇到了一個問題,當(dāng)我自定義了一個表里面有金額字段PRICE 類型為currency 13小數(shù)位為4位小數(shù),當(dāng)我調(diào)用smartform 對它進行顯示的時候,price自動擴大了一百倍,比如:10.0000變成了1000.0000 。這個問題的解決方法如下:
在smartfrom 中定義一個全局字段NETPR 聲明和PRICE 相同的數(shù)據(jù)元素,在顯示單價字段之前寫一個程序行,將IT_TAB-PRICE字段的值賦給NETPR,將NETPR顯示出來既是正確的數(shù)據(jù),既:10.0000 。
但注意:不要將NETPR字段在全局定義中聲明為“貨幣/數(shù)量字段”,否則單價金額仍然顯示的是:1000.0000 。
該問題的原理是這樣的,CURRENCY字段在SAP中必須要參考一個CURRKEY。例如‘CNY’。而這個貨幣代碼的小數(shù)點位數(shù)一般都是限制死 的,用SPRO——SAP NETWEAVER——GENERAL SETTINGS——貨幣——為貨幣設(shè)置小數(shù)位數(shù)中配置的,所以雖然我們自定義了PRICE的小數(shù)位是4位但實際上的處理仍然最多到2位,這樣就造成了數(shù) 據(jù)擴大了100倍,同理,如果我們自定義PRICE字段的小數(shù)是3位,貨幣碼為’CNY’,那么顯示結(jié)果會擴大10倍。
總結(jié)
以上是生活随笔為你收集整理的smartform 中currency 字段的小数点问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP Memory/SAP Memo
- 下一篇: 重要的函数总结。