Oracle EBS Report 输出字符字段前部"0"被Excel自动去掉问题
Oracle EBS 提供多种报表的开发和输出形式,由于MS Excel在处理数据方面的优势明显,报表输出用Excel打开是很常见的开发项。
但是正是由于Excel的“过于智能而不智能”,导致有时输出字段会被Excel自动处理,导致数据错误。
例如: 系统内部字段,物料编码/订单标号 等等字段在数据库内存储的格式为 varchar, 在某些业务或者需求下,编码方式为全数字的形式,如"100230001","100230002",... 这样的字段在系统中没问题,报表输出到Excel也无问题;而有情况可能是,编号为 "000031001", "000031002","000031003",.... 这样的情况,系统中是存储了9位数的字符,而报表输出到Excel之后,Excel就会认为他是一个数字,而非字符串,从而出现字符串前的"0"被截取,变成 "31001", "31002","31003",.... 这样的错误不易被发觉,但是是一个很不友好的错误。
解决办法:
1. 并发程序输出 html 报表
这种类型的报表输出的是html标签(或者XML标签),这种报表被截位的修复方法是在输出的时候,把这个字段放在 =" " 内,例如,PLSQL代码片段为:
fnd_file.put_line(fnd_file.output, '<div>000031001</div>');
变成:
fnd_file.put_line(fnd_file.output, '<div>="000031001"</div>');
或者
fnd_file.put_line(fnd_file.output, '<div>''000031001</div>');
解释:
前一种方法,在Excel中,= 代表公式,而用双引号括起来之后就是字符串的意思,就是说设置当前单元格为等于当前的值转换为字符串的意思,类似于 oracle的 to_char() ;后一种方法,Excel中,在单元格值最前面加一个单引号表示这个单元格为“坏公式”,就是不自动计算的意思,Excel单元格要显示公式,也是这种方法。
2. XML Publisher 报表
XML publisher 报表除了用上面的两种方法以外,还可以设置XML Publisher属性来解决这个问题,直接看属性截图:
属性设置为 “强制LTR”(对于打印可以LTR,而对于用报表输出的数据查找系统,则建议不要用方法,因为LRT实际在字段前后加了特殊块符号: ) ,强制为数据格式,在Excel中就不会转化为数字了,对应的 XML publisher 脚本代码为:
<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?ASSEMBLY?></fo:bidi-override>
http://www.cnblogs.com/lzsu1989/archive/2012/10/17/2728528.html
Oracle EBS Report 输出字符字段前部"0"被Excel自动去掉问题的更多相关文章
- ORACLE EBS xml publisher 报表输出字符字段前部"0"被EXCEL自动去掉问题
http://www.cnblogs.com/lzsu1989/archive/2012/10/17/2728528.html Oracle EBS 提供多种报表的开发和输出形式,由于MS Ex ...
- 处理编译错误"0" is an invalid value for the "DebugInformation" parameter of the "DCC"
在编译“MustangpeakCommonLib-master.zip”时,遇到了这个问题.网上搜了一下: 处理编译错误"0" is an invalid value for the "DebugIn ...
- delphi vlc 安装bug 处理编译错误"0" is an invalid value for the "DebugInformation" parameter of the "DCC"
处理编译错误"0" is an invalid value for the "DebugInformation" parameter of the "DCC" [摘要:http://blog.csdn ...
- EBS 查看输出HTML报表问题总结
问题一: 请求输出格式为HTML(如下图,默认浏览器输出),希望 查看输出 的时候能够实现excel输出. 解决方法: 路径:系统管理员/安装/浏览器选项 注:维护如下记录 文件格式:HTML ...
- Oracle EBS R12经验谈(二)
作者: jianping.ni 时间: 2009-2-13 12:52 标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值 在输入 应付超 ...
- Oracle EBS客户化程序中格式化金额
在Oracle EBS系统中,随处可见金额的显示格式,通常情况下都具有千分位符,同时有一定位数的精度,让我们先来看看一些现成的例子 上面这些列子中的金额都显示了千分位符,同时具备以2位小数,难道 ...
- Oracle EBS应用笔记整理 (转自IT++ flyingkite)
***************************************************** Author: Flyingkite Blog: http://space.itpub. ...
- Oracle EBS在编码方式为AL32UTF8时的注意事项
现如今的EBS系统中,为了推进国际化的进程,以及系统向全球化的扩展,在Oracle数据库的编码方式上渐渐从支持中国本土简体中文的ZHS16GBK转向了更趋于国际化的AL32UTF8编码方式.但随之而来 ...
- [转]oracle EBS 基础100问
from:http://www.cnblogs.com/xiaoL/p/3593691.html http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...
随机推荐
- WCF、Web API、WCF REST、Web Service之区别
http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-R ...
- php中类的声明与使用
<?php /**php语言是支持面向对象编程的,对于面向对象的编程,学过java和C++的人都知道啊! *如果不清楚的去baidu问一下就可以了. */ //我们来定义一个类,定义类的关键字是 ...
- php,javscript调用百地图度API实现标记
最近一个项目需要用到地图的定位和标记功能,本来考虑使用google map API .但是在国内这个速度确实很慢,有时候加载到一半就出现错了,不过可以通过google agent 来解决在国内的访问速 ...
- Describe the difference between repeater, bridge and router.
中继器,路由器,网桥,网关的区别. 路由器:网络层设备,实现复杂的路径选择,控制IP包从源到目的地的路径:根据IP地址进行选路和转发IP数据包 中继器:物理层设备,物理信号的重新生成,对信号进行整形和 ...
- LeetCode之Single Number以及拓展
Problem 1:一个数组中有一个数字a只出现一次,其他数字都出现了两次.请找出这个只出现一次的数字? 考察知识点:异或运算 思路:比如数字 b^b = 0 a^0 = a 因此,可以将数组 ...
- table 中实现 控制 指定列的 左对齐 右对齐方式
.listTable{ border-collapse:collapse; border-top:1px solid #8c9594; border-right:1px solid #8c9594; ...
- cc2640-各DEMO板性能分析
一.测试方法: 将4种模块同时上电,测量每个模块达到的最远距离.以稳定能建立通讯为连接上依据.4种板子分析为 1号阿莫DEMO板,2号咱们自己DEMO板,3号嘉源电子DEMO,4号陆程电子DEMO 全 ...
- MYSQL外键约束的参照操作
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...
- Teradata基础教程中的数据库试验环境脚本
Teradata基础教程中的数据库表: Customer: 客户信息表 Location: 位置信息表 Employee: 雇员信息表 Job: 工作信息表 Department: 部门表 ...
- Javacript 客户端保存数据[ locaStorage ]
1.通常程序员们会使用Cookie进行一些小量的数据储存在客户端浏览器,但孰不知这样会造成不必要的带宽浪费 ,可使用 js 中的 locaStorage 来替代cookie进行存储,但不支持IE8以下 ...