form或plsql中数字格式掩码的设置

在项目上遇到这样一个需求:在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);
 

END set_number_format;

4、直接在form中设置该字段的format属性

如设置为:FM999999990D0099,含义是FM是去除空格的意思,999999990意思是小数点左边最多是九位,最少是一位用0补。D是小数点的意思,0099是小数点右边最少2位,最多4位,99可以进行四舍五入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值