ERP的报表,输出格式是EXCEL的,经常会出现数字长度超15位导致精度丢失的问题。
目前发现的解决办法有2个。
方法1:可以将报表改为XML标准开发,就是产生XML,再开发一个Template的方式。这样子XML处理引擎会自动处理数字格式。当超出15位会自动帮我们转格式。你们可以自己测试。
方法2:但是,我们更常用的开发方式是写一个PLSQL,输出HTML格式的代码,再用XLS打开,输出EXCEL。解决方法如下。
首先我们看看问题:
如下图所示,这个HTML脚本的文件,输出的内容是没问题的,料号为:16025020213000124
但是,如果用Excel打开,这时候格式就变了,最重要的是,超出15位的精度会丢失。这个是很严重的问题。
明明是16025020213000124,这里就变为了16025020213000100。这个根本不是同一个料号啊,精度"24"丢失了!!!!
解决办法:
还是得用文本来存储这个数值内容。
所以,在HTML加一个class:.txt{mso-number-format:"\@";}
然后,在型号那里,指向这个class作为格式控制(注意是每一个型号的td标签都要加这个txt类),即可:
效果:
上图可以看出,物料编码就是完全没问题了。和输出的内容一致了。
对应的PLSQL代码怎么修改,这个,,,不用多说了吧。
(全文完)