|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2015/5/29 16:14:13 |
标题: |
FastReport 5.X for Delphi 7的报表格式存储文件fr3的中文存储奇葩格式 |
浏览:1794 |
|
加入我的收藏 |
楼主: |
从FR3开始,报表格式从二进制编码的frf改为文本格式XML编码的fr3,但在Delphi7下编译的版本存储的fr3格式在中文处理上一直有个问题: 格式开头申明<?xml version="1.0" encoding="utf-8"?> 用UTF-8编码,而实际上 <Variables> <item Name="..." Value="..."/> </Variables> 使用ANSI编码,<TfrxMemoView Font.Name="..."/>也使用ANSI编码。 要是全部采用ANSI编码也就罢了,然而<TfrxMemoView Text="..."/>又采用UTF-8编码, 这样的结果就是在D7下保存的报表无法在XE8下打开。
如何验证上面奇葩现象?用UltraEdit打开fr3,通过UltraEdit编码切换查看。
此帖子包含附件:
大小:109.1K |
----------------------------------------------
- |
作者: |
|
2015/5/29 16:33:27 |
1楼: |
确实有这个问题,可以下个小工具给批量处理下,哈哈
----------------------------------------------
向你学习
|
作者: |
|
2015/5/29 17:12:02 |
2楼: |
我在12年写了一个程序,将整个文件夹下的所有文件全部转换: http://download.csdn.net/detail/c5soft/4827987 现在琢磨的是彻底的解决方案,改FR的源代码。让D7保存为UTF8格式,让d7/XE+都能读取奇葩格式与UTF8格式,这项工程,不知道有人做了没有?
这样,对于一些简单的修改,替换操作,就可以使用UltraEdit直接修改报表格式,而不用进入报表设计器。
初步猜测应该是从frxXML.pas动手,一千多行代码需要完全搞懂蛮费功夫。
----------------------------------------------
-
|
作者: |
|
2015/5/30 0:12:52 |
3楼: |
frxXML.pas代码修改成功。在Delphi7下打开原来的老格式自动保存为UTF8编码的新格式, D7与XE8共享一套报表格式,XE8下打开再也不会出现乱码了。未做严格测试,试用前请先将原来的报表做好备份。
----------------------------------------------
-
|
作者: |
|
2015/5/30 13:51:23 |
4楼: |
FastReports 5.2.12 Fix By Flying Wang FS V2015.05.30 D7 XE2-XE8 Just Add Files
http://pan.baidu.com/s/1pJ3KfrX
已加入 c5soft 的 D7 兼容 和 D7 保存 fr3 fix 的修改。
----------------------------------------------
(C)(P)Flying Wang
|
|