ORACLE EBS xml publisher 报表输出字符字段前部"0"被EXCEL自动去掉问题

http://www.cnblogs.com/lzsu1989/archive/2012/10/17/2728528.html

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” ,强制为数据格式,在Excel中就不会转化为数字了,对应的 XML publisher 脚本代码为:

<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?ASSEMBLY?></fo:bidi-override>

时间: 2024-10-13 11:42:42

ORACLE EBS xml publisher 报表输出字符字段前部"0"被EXCEL自动去掉问题的相关文章

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

http://oracleseeker.com/2009/08/25/font_mapping_setup_for_special_character_print_in_oracle_ebs_bip/ 如若在BIP报表中使用了一些特殊的字体,这些字体在JRE的字体库中没有的话,则BIP报表的运行结果就不正确,最典型的例子就是条码字体的打印. 如下图是我在rtf模板中使用code39字体设计的条码显示 但是在Oracle EBS环境下运行之后的结果如下,条码字体的格式丢失了: 这是由于FO引擎在生

Oracle EBS R12 - 以Excel查看输出格式为“文本”的请求时乱码

重现的前提条件: 输出格式为"文本"的并发程序:有效责任和用户. 如何在查看输出时出现Excel选项:系统管理员>安装>浏览器选项>添加一行"文件格式"为"文本"的记录,"MIME 类型"和"说明"选"文件格式"是"Excel"的那行一样. EBS需要已安装好简体中文语言,这样"有效责任和用户"里面才会有中文. 提交"有

Oracle EBS 12.2.6 on VirtualBox

Back in May, Oracle announced the general availability of Oracle VM Virtual Appliance for E-Business Suite 12.2.6 for download from the Oracle Software Delivery Cloud. In this series of Blog posts I will detail how you can build an Oracle EBS 12.2.6

BIP_Case_将原有Report Builer报表全部转为XML Publisher形式

一.案例分析 Oracle Report Builder  因落伍的技术和糟糕的交互性,特别是无法随心所欲的进行排版,逐渐被淘汰,而BI(XML) Publisher  也是其中的一种替代技术, 此文介绍了如何将Report Builder建立的RDF文件转换成最新的XML Publisher所使用的xml data definition 和 rtf template definition,从而实现数据源和输出模板分离,从而将原有难易维护的report builder 替代为易维护的XML Pu

BIP_将原有Report Builer报表全部转为XML Publisher形式(案例)

一.案例分析 Oracle Report Builder  因落伍的技术和糟糕的交互性,特别是无法随心所欲的进行排版,逐渐被淘汰,而BI(XML) Publisher  也是其中的一种替代技术, 此文介绍了如何将Report Builder建立的RDF文件转换成最新的XML Publisher所使用的xml data definition 和 rtf template definition,从而实现数据源和输出模板分离,从而将原有难易维护的report builder 替代为易维护的XML Pu

在页面和请求中分别使用XML Publisher生成PDF报表且自动上传至附件服务器

两个技术要点: 1.使用TemplateHelper.processTemplate方法生成目标PDF的InputStream流,再使用ftp中上传流的方法将其上传至附件服务器. 2.在请求中调用AM. 其中最重要的方法便是在请求中调用AM. SourcingPrintingAMImpl am = (SourcingPrintingAMImpl)getSourcingAppModule(cpContext); OADBTransaction trans = am.getOADBTransacti

解决Oracle EBS出报表不可复制问题

解决Oracle EBS出报表不可复制问题 突然想到很久前同事提到,EBS做了报表不能复制.如图所示. 其中右上角字体大小可以设置 .如图所示. 废话少说,我们来解决不能复制的问题.点击工具--复制文件. 弹出一个窗口,我们分别选择Microsoft Excel和浏览器,看一下效果. Microsoft Excel 会提示你下载一个文本文件.打开后如图所示. 浏览器 直接打开浏览器.如图所示. 无论是文本文件,还是浏览器,都可以实现复制功能了. 版权声明:本文为博主原创文章,未经博主允许不得转载

How to Determine the Version of Oracle XML Publisher for Oracle E-Business Suite 11i and Release 12 (Doc ID 362496.1)

Modified: 29-Mar-2014 Type: HOWTO In this DocumentGoal   Solution   1. Based upon an output file generated by XML Publisher   2. Based upon the applied patches   2.1. Oracle E-Business Suite 11i   2.2. Oracle E-Business Suite Release 12.0 and 12.1  

使用XML Publisher导出PDF报表

生成XML数据源有两种方式. 一种是使用存储过程,返回一个clob作为xml数据源. 另一种是直接使用VO中的数据生成xml数据源. 方法一参考: Oracle XML Publisher技巧集锦 OAF与XML Pulisher集成 方式二: CO if ( "PrintDis".equals(l_enent)) { String DistributionId = pageContext.getParameter("DistributionId"); parame