ABAP報表中負值展示問題的處理方法


現象描述

在使用ABAP報表展示數據的時候會涉及到金額類字段,在手動計算金額的時候,有時會發生存在負值而無法正常展示的情況。

 處理過程

ABAP報表的數據展示常用的方法有兩種,分別是表控制和ALV

1、使用ALV展示時負值不會報錯,但是金額字段的負號默認顯示在結尾如圖

如果希望按照習慣將負號置於數字前段,則需要手動編寫一個轉換例程的函數來實現。

首先創建一個函數,命名規則CONVERSION_EXIT_XXXX_OUTPUT,其中XXXX為自定義名稱,參考代碼為

再創建對應的另外一個函數,命名規則CONVERSION_EXIT_XXXX_INPUT,其中XXXX為自定義名稱,參考代碼為

然后在設置ALV字段屬性時將剛剛創建的轉換例程添加進去

最后重新執行報表就可以得到我們想要的展示結果

2、使用表控制展示時,如果數據存在負值,會出現Short Dump。

解決方法是將表控制中的該金額字段的屬性設置為帶記號的,如下圖

設置完成后重新執行報表,程序能夠正常執行,負號顯示在末尾

如果希望加負號置前,可以在退出對話中將之前創建的轉換例程添加進去

添加以后的執行效果

在ABAP程序中負值展示問題的處理是一種特例,需要用上述特殊的方式來進行處理,否則會出現顯示不正常甚至是Short Dump。所以在程序設計的時候,如果涉及到金額字段,應該充分考慮是否存在負值的情況,並且進行全面的測試,防范傳輸之后出現此種問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM