在Oracle EBS系统中,随处可见金额的显示格式,通常情况下都具有千分位符,同时有一定位数的精度,让我们先来看看一些现成的例子

  

上面这些列子中的金额都显示了千分位符,同时具备以2位小数,难道这个格式就是程序写死的?答案显然是否定的。

让我们来看看这个金额的格式是如何来确定的:

1,正数显示的格式由预置文件:Currency:Positive Format来确定
2,负数显示的格式由预置文件:Currency:Negative Format来确定
3,是否显示千分位由预置文件:Currency:Thousands Separator的值来确定
4,而精度则是由币种的精度设置来决定的(在总帐模块进行设置)

从上面的描述可以知道要格式化金额显示的前提条件是:币种,如果没有明确的币种可以选择本位币

下面来看看在我们自己开发的程序中,如何实现上述的功能:

1,Form界面中控制金额的显示

只要在能够确定币种的时候使用Oralce提供的币种格式化函数 fnd_currency.get_format_mask 来进行Item格式掩码属性的设置即可

? PLSQL
1
2
3
4
5
6
7
8
9
10
11
app_item_property.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 方法,可以使用如下的代码来格式化:

? PLSQL

1
2
3
4
5
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专门提供了用户出口函数来解决这个问题,相对步骤更加复杂一些,就留作其它文章再描述吧。

http://oracleseeker.com/2009/08/20/format_amount_mask_using_dynamic_currency_in_oracle_ebs/

Oracle EBS客户化程序中格式化金额的更多相关文章

  1. Oracle EBS Web ADI 中的术语

    Oracle EBS Web ADI 中的术语 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 异步调用异步调用是这样子的,和引入接口表中的数 ...

  2. Oracle EBS的BIP报表中显示特殊字体

    http://oracleseeker.com/2009/08/25/font_mapping_setup_for_special_character_print_in_oracle_ebs_bip/ ...

  3. MYSQL 、Oracle、SQLServer 数据库中时间的格式化输出

    在MYSQL 中格式化输出 date_forma t(date,'yyyyMMddHHmmss') Oracle 中格式化输出 to_char(time ,'yyyyMMddHHmmss') SQL ...

  4. 在net安装程序中部署oracle客户端全攻略

    在net安装程序中部署oracle客户端全攻略 主要的是要做三件工作: 打包文件,写注册表,注册环境变量说明:我的oracle版本为9, 在2000 advanced server 上测试通过,可以正 ...

  5. Oracle EBS中分类账和法人实体 的关系(有sql语句实例)

    Oracle EBS中分类账和法人实体 的关系(有sql语句实例) 2012-12-06 16:05 2822人阅读 评论(0) 收藏 举报  分类: Oracle EBS(12)  Oracle数据 ...

  6. Oracle EBS应用笔记整理 (转自IT++ flyingkite)

    ***************************************************** Author: Flyingkite Blog:   http://space.itpub. ...

  7. Oracle Ebs R12 SLA与GL关系变化

    http://www.cnblogs.com/bruce_zhao/p/3809886.html Oracle Ebs R12 SLA与GL关系变化 SLA概念:SLA(Subledger Accou ...

  8. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

  9. Oracle EBS R12多组织(多OU)访问架构

    Oracle EBS R12多组织访问架构 多组织架构实现了经营单位(OU)的数据安全性,在底层数据表中有一列ORG_ID来记录数据所属的经营单一,所有多OU的基表都是以"_ALL" ...

随机推荐

  1. Java中数组转为List三种情况的优劣对比,常犯的类型转换错误原因解析

    一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常. 关键代码:List list = Arrays. ...

  2. python文本挖掘输出权重,词频等信息,画出3d权重图

    # -*- coding: utf-8 -*- from pandas import read_csv import numpy as np from sklearn.datasets.base im ...

  3. Linux C 一些函数 所属的头文件

    在编写程序时,有时总是不记得所使用的函数在哪个库函数中.现在先把自己以前经常用到的函数头文件总结一下. 有不对的地方还请指教. 1,系统调用文件的操作函数 #inlclude <fcntl.h& ...

  4. Linux-vim编辑器与shell的简介

    VIM编辑器  vi是Visual interface的简称,它可以执行输出.删除.查找.替换.块操作等众多文本操作. 用户可以根据自己的需要对vim进行定制,这是其他编辑程序所没有的. vim不是一 ...

  5. 转帖:关于MongoDB你需要知道的几件事

    Henrique Lobo Weissmann 是一位来自于巴西的软件开发者,他是 itexto 公司的联合创始人,这是一家咨询公司.近日,Henrique 在博客上撰文谈到了关于 MongoDB 的 ...

  6. python之CMDB

    浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...

  7. 代理Servlet过滤器

    Spring Security借助一些列Servlet 过滤器 来提供 各种 安全性功能. 我们只需要在应用中的 web.xml 中配置 一个过滤器. <filter> <filte ...

  8. 372. Super Pow.txt

    ▶ 指数取模运算 ab % m ▶ 参考维基 https://en.wikipedia.org/wiki/Modular_exponentiation,给了几种计算方法:暴力计算法,保存中间结果法(分 ...

  9. oracle 安装包

    Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit ...

  10. 4-30 HTML 细节摘录

     <b> 定义粗体文本. <big> 定义大号字. <em> 定义着重文字. <i> 定义斜体字. <small> 定义小号字. <s ...