设为首页 收藏本站
查看: 1471|回复: 0

[经验分享] Oracle EBS R12 XML数据表格的Excel脚本报表

[复制链接]

尚未签到

发表于 2015-9-23 07:01:31 | 显示全部楼层 |阅读模式
之前谈过XML数据表格的Excel脚本报表(原文),是概括性知识性的理解,一些很细的问题没有涉及,这几周实际的开发中发现一些问题,是很关键的细节问题,如果不注意的话,很有可能在实际输出的时候,出现问题,并且作为解释性的脚本,调试起来本身不可能,只可能用Excel的错误信息去缩小范围(不靠谱),但往往Excel的错误信息很有可能是关联引发的,要找到“罪魁祸首”,确实要仔细仔细再仔细的检查,XML本身可以说是很自由的,但是要用Excel这种应用程序打开处理脚本文件,就必须有严格的控制,或许只是一个符号的遗漏,就会导致整个脚本文件的错误,这些在前文中已经说明,不在叙述。



一些问题,在此列出来,一起探讨。



1. Debug

严格意义上说,不能叫真正的Debug, 因为本身输出的就是脚本,不存在编译,所以只有根据打开脚本时Excel解析的结果来判断,还好Excel是会记录错误解析信息的,这点是好事,但是不幸的是,这个日志,并不能那么精确和准确。如下图:

DSC0000.png

我们打开这个log文件





DSC0001.gif
1 在 表 出现 XML 错误  
2 原因:    非法的标记  
3 文件:    C:\Documents and Settings\hand\Desktop\新建 文本文档.xml  
4 组:    Row  
5 标志:    Row  
6   
7 在 表 出现 XML 错误  
8 原因:    非法的标记  
9 文件:    C:\Documents and Settings\hand\Desktop\新建 文本文档.xml
10 组:    Row
11 标志:    Row
12  
13 在 表 出现 XML 错误
14 原因:    非法的标记
15 文件:    C:\Documents and Settings\hand\Desktop\新建 文本文档.xml
16 组:    Row
17 标志:    Row
18  
19 。。。。。。
20 (此处省略N行)
21 。。。。。。
22  
23   此元素堆栈或此元素下面的堆栈发生错误:
24     <ss:Workbook>
25      <ss:Worksheet>
26       <ss:Table>
27        <ss:Row>



很不友好,是吧。一方面,他能告诉我们一些信息,但是无法定位,这点确实很头疼的,另一方面,实际开发的时候很有可能遇到指鹿为马的问题,例如日志告诉我们 "ss:Index" 的值为"10"错误,但是会发现脚本根本没有"ss:Index=10"的脚本。

所以,尽量仔细是惟一的解决吧。





2. <Cell> 的属性 ss:Index



Cell标签的 属性 ss:Index是用来确定Cell的列的位置,即列号。输出的时候,从左往右输出,一般不需要指定这个属性,因为每个Cell 默认增长1, 但是有特殊情况,而且这种情况是十分常见的,如下图: DSC0002.png




对应的脚本应该是 (省略列G之前的脚本)

105行:




1 <Cell ss:Index="7"><Data ss:Type="String">7</Data></Cell>
2 <Cell ss:Index="8"><Data ss:Type="String">8</Data></Cell>
3 <Cell ss:Index="9"><Data ss:Type="String">9</Data></Cell>  
4 <Cell ss:Index="10"><Data ss:Type="String" ss:MergeDown="3" >10</Data></Cell>
5 <Cell ss:Index="11"><Data ss:Type="String">11</Data></Cell>  
6 <Cell ss:Index="12"><Data ss:Type="String">12</Data></Cell>

106行:




1 <Cell ss:Index="7"><Data ss:Type="String">7</Data></Cell>
2 <Cell ss:Index="8"><Data ss:Type="String">8</Data></Cell>
3 <Cell ss:Index="9"><Data ss:Type="String">9</Data></Cell>  
4 <Cell ss:Index="11"><Data ss:Type="String">11</Data></Cell>  
5 <Cell ss:Index="12"><Data ss:Type="String">12</Data></Cell>

其中,105行,106行,107行,除了列"K" ,也就是 ss:Index="11" 的Cell 一定需要 ss:Index之外,其他的Cell都不需要 ss:Index值



也就是说  ss:Index 有跳跃的时候,  ss:Index 属性时必填的



3. <Cell> 属性ss:Formula



cell标签可设置单元格的公式,这是一个非常强大的功能,运用Excel强大的数据计算能力,是Excel 数据脚本的XML报表的关键。

在设置Cell的公式属性时,必须理解这里公式的单元格定位,公式中的含义如下:

R :行

C :列

-   :向左

+  :向右



举个例子就应该知道其中的含义了,例如:

ss:Forluma = "= R[+1]C[+2] + R[+1]C[+3]"

当前单元格为 A1,则A1的公式就是 B3 + B4





ss:Forluma = "= R[-1]C[-2] + R[-1]C[-3]"

当前单元格为 A1,(不正确),单元格定位错误,(超出范围)





ss:Forluma = "= RC[+2] + RC[+3]"

当前单元格为 A1,则A1的公式就是 C1 + D1





ss:Forluma = "= R[+2]C + R[+3]"C

当前单元格为 A1,则A1的公式就是 A3 + D3



注意数字是偏移量,正负代表方向就OK!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117358-1-1.html 上篇帖子: Using Integrated SOA Gateway in Oracle EBS(websevice) 下篇帖子: EBS多OU和多帐套客户化总结上【转载】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表