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 ...
随机推荐
- java将多个连续的空格转化成一个空格
java将多个连续的空格转化成一个空格: System.out.println("a a".replaceAll(" + ", " ")); ...
- get post
浅谈HTTP中Get与Post的区别 2009-03-31 14:51 by hyddd, 248341 阅读, 74 评论, 收藏, 编辑 Http定义了与服务器交互的不同方法,最基本的方法有4种, ...
- nginx源码分析
ngx_init_cycle 解析配置文件 完成模块中command set函数调用
- C#语言的Image和byte数组的互相转换
/// <summary> /// 字节数组转换为图片 /// </summary> /// <param name="buffer">字节数组 ...
- DEV GridControl表格数据源为空在表格中间显示提醒字符
private static void gv_CustomDrawEmptyForeground(object sender, DevExpress.XtraGrid.Views.Base.Custo ...
- A version is required for an API group definition.
A version is required for an API group definition.
- Clone table header and set as the first element, and replace header's th with td
Clone table header and replace header's th with td var tableHeaderRow = '#tableId tbody tr:nth-child ...
- android系统网络信号强弱参数之ecsq指令参数说明
ecsq指令参数说明: // For LTE (MT6592) // AT+ECSQ:<sig1>,<sig2>,<rssi_in_qdbm>,<rscp_i ...
- eclipse 安装egit 成功后Team中没有显示
主要是版本不太对. 在http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 中找到对应的版本,设置就O ...
- Header:请求头参数详解
Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html,application/json Accept-Charset 浏览器 ...