在项目上遇到这样一个需求:在EBS界面直接显示数字的时候,如果后台数据是0.85,但显示在界面上却是.85,这样挺不人性化的。那么怎么设置显示为0.85呢。
有几个方法:
1、 直接在form中修改,找到form中该字段的FormatMask属性设置成需要的属性
如:FM999999990D0099,含义是FM是去除空格的意思,999999990意思是小数点左边最多是九位,最少是一位用0补。D是小数点的意思,0099是小数点右边最少2位,最多4位,99可以进行四舍五入。
2、 可以在plsql块中进行修改,自定义格式掩码:
----------------------------------------------------
-- FM :除空格
-- 9999999.0099:允许小数点左边最大正数为9位,
-- 小数点右边最少2位,最多4位,且在第5位进行四舍五入
-----------------------------------------------------
g_number_format CONSTANT VARCHAR2(40) := 'FM999999990.0099';
g_number_format CONSTANT VARCHAR2(40) := 'FM999G999G999G999G999G990D00';
3、 可以在form的trigger中添加触发器:
在WHEN-NEW-FORM-INSTANCE中格式化数字,代码如下
l 从配置文件中读取格式掩码
FUNCTION get_number_format_mask RETURN VARCHAR2 IS
l_currency_code VARCHAR2(10);
l_format_mask VARCHAR2(40);
BEGIN
--------------------------
-- Get currency_code
--------------------------
SELECT MAX(sob.currency_code)
INTO l_currency_code
FROM gl_sets_of_books sob
WHERE sob.set_of_books_id = fnd_profile.value('GL_SET_OF_BKS_ID');
l_currency_code := nvl(l_currency_code, 'CNY');
--------------------------
-- Get format mask
--------------------------
l_format_mask := fnd_currency.get_format_mask(l_currency_code, 40);
RETURN l_format_mask;
END get_number_format_mask;
PROCEDURE set_number_format IS
l_format_mask VARCHAR2(30);
BEGIN
l_format_mask := get_number_format_mask;
-- set format
app_item_property.set_property('IMPO_WORKBENCH.QUANTITY', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.QUANTITY_UNRECEIVED', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.LOGICAL_QUANTITY', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.LOGICAL_QUANTITY_REC', format_mask, l_format_mask);
有几个方法:
1、 直接在form中修改,找到form中该字段的FormatMask属性设置成需要的属性
如:FM999999990D0099,含义是FM是去除空格的意思,999999990意思是小数点左边最多是九位,最少是一位用0补。D是小数点的意思,0099是小数点右边最少2位,最多4位,99可以进行四舍五入。
2、 可以在plsql块中进行修改,自定义格式掩码:
----------------------------------------------------
-- FM :除空格
-- 9999999.0099:允许小数点左边最大正数为9位,
-- 小数点右边最少2位,最多4位,且在第5位进行四舍五入
-----------------------------------------------------
g_number_format CONSTANT VARCHAR2(40) := 'FM999999990.0099';
g_number_format CONSTANT VARCHAR2(40) := 'FM999G999G999G999G999G990D00';
3、 可以在form的trigger中添加触发器:
在WHEN-NEW-FORM-INSTANCE中格式化数字,代码如下
l 从配置文件中读取格式掩码
FUNCTION get_number_format_mask RETURN VARCHAR2 IS
l_currency_code VARCHAR2(10);
l_format_mask VARCHAR2(40);
BEGIN
--------------------------
-- Get currency_code
--------------------------
SELECT MAX(sob.currency_code)
INTO l_currency_code
FROM gl_sets_of_books sob
WHERE sob.set_of_books_id = fnd_profile.value('GL_SET_OF_BKS_ID');
l_currency_code := nvl(l_currency_code, 'CNY');
--------------------------
-- Get format mask
--------------------------
l_format_mask := fnd_currency.get_format_mask(l_currency_code, 40);
RETURN l_format_mask;
END get_number_format_mask;
PROCEDURE set_number_format IS
l_format_mask VARCHAR2(30);
BEGIN
l_format_mask := get_number_format_mask;
-- set format
app_item_property.set_property('IMPO_WORKBENCH.QUANTITY', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.QUANTITY_UNRECEIVED', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.LOGICAL_QUANTITY', format_mask, l_format_mask);
app_item_property.set_property('IMPO_WORKBENCH.LOGICAL_QUANTITY_REC', format_mask, l_format_mask);
END set_number_format;
4、直接在form中设置该字段的format属性
如设置为:FM999999990D0099,含义是FM是去除空格的意思,999999990意思是小数点左边最多是九位,最少是一位用0补。D是小数点的意思,0099是小数点右边最少2位,最多4位,99可以进行四舍五入。