EBS报表输出文本身份证号全部显示和订单号不自动去0
来源:互联网 发布:免费top域名 编辑:程序博客网 时间:2024/04/30 04:10
http://www.veryhuo.com
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>
--身份证号或采购订单号不用科学记数法显示 而是全部显示 方法同上
<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?ASSEMBLY?></fo:bidi-override>
--但是这种方法设置出来表面上看身份证号是正常的 复制到记事本中文本两端会有乱码存在 解决方案用第3中方法
3. =T(“LOT”) --EXCEL的函数 显示和复制出去都是纯文本 不会有乱码
例:销售预测每日汇总报表 批量付款
在XML Publisher输出到excel后如果数字变成科学计数了,可以在template里头添加 =T("域")
在template上设置字段输出的格式
JRNL_LINE_ENT_DR是字段名
Odin(7249489) 5:32:30 PM
但是最好加上条件判断,当字段值为空时,这里会出错
<?choose:?><?when:JRNL_LINE_ENT_DR!=""?><?format-number:JRNL_LINE_ENT_DR;'999G990D99'?><?end when?><?end choose?>
- EBS报表输出文本身份证号全部显示和订单号不自动去0
- 报表字符前的0被自动去掉和身份证号全部显示
- EBS报表输出图片
- Oracle EBS 报表输出字符字段前部"0"被Excel自动去掉问题
- Oracle EBS 报表输出问题
- Oracle”文本”报表输出
- EBS输出HTML报表中文乱码
- 水晶报表不显示
- oracle ebs值集和报表
- Oracle EBS 报表输出保存文件名乱码问题
- 显示文本自动换行
- 显示鼠标指示地方的全部文本
- listview文本不能全部显示时
- ECharts坐标轴文本标签全部显示
- 自动生成采购订单号
- [水晶报表]不显示报表直接打印
- Oracle EBS的BIP报表中显示特殊字体
- Oracle EBS的BIP报表中显示特殊字体
- Visual Studio 2010编译openssl
- oracle中Where子句的条件顺序对性能的影响
- JAVA常见异常解析
- Linux 统计代码行数
- JS中的prototype
- EBS报表输出文本身份证号全部显示和订单号不自动去0
- Android抽象布局——include、merge 、ViewStub
- logstash快速入门
- 编程学悲伤
- 64bit Centos6.4编译hadoop-2.5.1
- iOS之使用Xcode和Instruments调试解决iOS内存泄露
- VMware 出现If this virtual machine is not in use...问题解决
- AICPA后续教育没这么复杂,美国CPA后续教育CPE规则
- WPF-嵌套控件 按键事件顺序