ABAP报表中负值展示问题的处理方法
現(xiàn)象描述
在使用ABAP報(bào)表展示數(shù)據(jù)的時(shí)候會(huì)涉及到金額類字段,在手動(dòng)計(jì)算金額的時(shí)候,有時(shí)會(huì)發(fā)生存在負(fù)值而無(wú)法正常展示的情況。
?處理過(guò)程
ABAP報(bào)表的數(shù)據(jù)展示常用的方法有兩種,分別是表控制和ALV
1、使用ALV展示時(shí)負(fù)值不會(huì)報(bào)錯(cuò),但是金額字段的負(fù)號(hào)默認(rèn)顯示在結(jié)尾如圖
如果希望按照習(xí)慣將負(fù)號(hào)置于數(shù)字前段,則需要手動(dòng)編寫一個(gè)轉(zhuǎn)換例程的函數(shù)來(lái)實(shí)現(xiàn)。
首先創(chuàng)建一個(gè)函數(shù),命名規(guī)則CONVERSION_EXIT_XXXX_OUTPUT,其中XXXX為自定義名稱,參考代碼為
再創(chuàng)建對(duì)應(yīng)的另外一個(gè)函數(shù),命名規(guī)則CONVERSION_EXIT_XXXX_INPUT,其中XXXX為自定義名稱,參考代碼為
然后在設(shè)置ALV字段屬性時(shí)將剛剛創(chuàng)建的轉(zhuǎn)換例程添加進(jìn)去
最后重新執(zhí)行報(bào)表就可以得到我們想要的展示結(jié)果
2、使用表控制展示時(shí),如果數(shù)據(jù)存在負(fù)值,會(huì)出現(xiàn)Short Dump。
解決方法是將表控制中的該金額字段的屬性設(shè)置為帶記號(hào)的,如下圖
設(shè)置完成后重新執(zhí)行報(bào)表,程序能夠正常執(zhí)行,負(fù)號(hào)顯示在末尾
如果希望加負(fù)號(hào)置前,可以在退出對(duì)話中將之前創(chuàng)建的轉(zhuǎn)換例程添加進(jìn)去
添加以后的執(zhí)行效果
在ABAP程序中負(fù)值展示問(wèn)題的處理是一種特例,需要用上述特殊的方式來(lái)進(jìn)行處理,否則會(huì)出現(xiàn)顯示不正常甚至是Short Dump。所以在程序設(shè)計(jì)的時(shí)候,如果涉及到金額字段,應(yīng)該充分考慮是否存在負(fù)值的情況,并且進(jìn)行全面的測(cè)試,防范傳輸之后出現(xiàn)此種問(wèn)題。
轉(zhuǎn)載于:https://www.cnblogs.com/panjun-Donet/p/3915690.html
總結(jié)
以上是生活随笔為你收集整理的ABAP报表中负值展示问题的处理方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php-mysql管理利器 admine
- 下一篇: RTMPdump(libRTMP) 源代