Oracle EBS客戶化程式中格式化金額

2022-01-31 06:16:15 字數 1889 閱讀 7271

在oracle ebs系統中,隨處可見金額的顯示格式,通常情況下都具有千分位符,同時有一定位數的精度,讓我們先來看看一些現成的例子

上面這些列子中的金額都顯示了千分位符,同時具備以2位小數,難道這個格式就是程式寫死的?答案顯然是否定的。

讓我們來看看這個金額的格式是如何來確定的:

1,正數顯示的格式由預置檔案:currency:positive format來確定

2,負數顯示的格式由預置檔案:currency:negative format來確定

3,是否顯示千分位由預置檔案:currency:thousands separator的值來確定

4,而精度則是由幣種的精度設定來決定的(在總帳模組進行設定)

從上面的描述可以知道要格式化金額顯示的前提條件是:

幣種,如果沒有明確的幣種可以選擇本位幣

下面來看看在我們自己開發的程式中,如何實現上述的功能:

1,form介面中控制金額的顯示

fnd_currency.get_format_mask

?view code

123

4567

891011

set_property(

'headers.amount_total'

, format_mask,

fnd_currency.

get_format_mask(

:headers.

currency_code,

get_item_property(

'headers.amount_total'

,max_length)))

-- headers.amount_total 需要格式化金額對應的item

-- :headers.currency_code 幣種對應的字段

-- 如果資料中沒有幣種可以通過下面**取得本位幣

select

sob.

currency_code

from

gl_sets_of_books sob

where

sob.

set_of_books_id =

fnd_profile.

value

('gl_set_of_bks_id');

2,在資料庫的plsql中格式化金額

如果編寫的資料庫plsql程式中需要格式化輸出金額,oracle提供了服務端的fnd_currency.get_format_mask 方法,可以使用如下的**來格式化:

?view code

123

45

l_amount_char    varchar2

(100);

l_amount number

:= 100000

;l_currency_code varchar2(30

) :=

'usd'

;   l_amount_char :=

to_char

(amount,

fnd_currency.

get_format_mask(

l_currency_code,30)

)

3,在report報表中格式化金額

對於在report報表中格式化金額,oracle專門提供了使用者出口函式來解決這個問題,相對步驟更加複雜一些,就留作其它文章再描述吧。

Oracle EBS中的快捷鍵

actions lov shift ctrl f8 block menu ctrl b clear block f7 clear field f5 clear form f8 clear record f6 commit ctrl s count query f12 delete record ct...

Oracle EBS中工單狀態更改的幾點說明

job status update 1.job的幾種狀態 unreleased 未核發 released 已核發 complete 完成 complete no charges 完成不計費 on hold 保留 cancelled 取消 closed 關閉 2.開立工單可以給的狀態 unreleas...

OAF實現客戶化查詢

在oaf中,存在標準的查詢面板,但是標準的查詢只能實現基礎 簡單的查詢,所以在真正的專案當中,一般情況下都是使用自己開發的客戶化查詢,開發客戶化查詢的一般步驟如下 1.建立頁面pg,修改regionid pagelayoutrn region style pagelayout am definiti...