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

現象描述 函數

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

 處理過程spa

ABAP報表的數據展現經常使用的方法有兩種,分別是表控制和ALV設計

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

若是但願按照習慣將負號置於數字前段,則須要手動編寫一個轉換例程的函數來實現。blog

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

再建立對應的另一個函數,命名規則CONVERSION_EXIT_XXXX_INPUT,其中XXXX爲自定義名稱,參考代碼爲程序設計

而後在設置ALV字段屬性時將剛剛建立的轉換例程添加進去程序

最後從新執行報表就能夠獲得咱們想要的展現結果方法

二、使用表控制展現時,若是數據存在負值,會出現Short Dump。

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

設置完成後從新執行報表,程序可以正常執行,負號顯示在末尾

若是但願加負號置前,能夠在退出對話中將以前建立的轉換例程添加進去

添加之後的執行效果

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

相關文章
相關標籤/搜索