现在的项目中所使用的报表都是每三方的控件,报表系统完成后如果用户经常要求修改报表(我做过一个项目因没有通一确定的报表每个用户对报表的要求都不同)是很麻烦的事情,如果考虑的不周到,报表的每个小小变化都会让你重新编译一遍程序。 最近学习了XML,只是简单的了解,但已发现它的描述能力确实是超强,于是有一个设想:
1:用XML文件描述报表格式模板,例我们先用将EXCEL报表做好在XML中对整个报表进行描述如下。
<A2 BLABEL="A2" ELABEL="L2" HEIGHT="19" WIDTH="33" TEXT="承包单位:" />
上面的意思是说A2单元格的开始位置是A2单元格,结束单元格是L2单元格,这是最主要的描述,我们可以通过程序将这个描述文件在生成一个EXCEL文件。 2:针对上面的XML文件写一样式样,转换成一个在浏览器中显示的表单,这样也就实现了报表在B/S系统中的应用, 3:通过XSL:FO 可以将此描述转换成PDF文件,然后进行打印。也可生成SVG图形。
当然报表的元素很多,有图形还可能有斜线,这些都可以通过在XML文件中增加描述信息来解决,最少我觉的这样的方法可以用在80%的比较简单的报表中,这样做出来的报表系统修改起来也很方便。 请大家想想这样的设计可以吗是否能实现呢?
我现在做到的是华表和XML描述可以互相转换。
报表在以后修改变化大吗?有没有考虑用华表。我现在想将报表用XML描述出来然后用XSL转换在浏览器上显示。我现在觉得如果能行的通是一个很好的解决方案不用任何第三方控件。我的设想是用XML将报表描述,用XSL:FO和FOP将之转换成可在浏览器上显示和PDF格式或SVG。正在学XSL中。有什么好意见或实现方法请回赐教。
1:用XML文件描述报表格式模板,例我们先用将EXCEL报表做好在XML中对整个报表进行描述如下。
<A2 BLABEL="A2" ELABEL="L2" HEIGHT="19" WIDTH="33" TEXT="承包单位:" />
上面的意思是说A2单元格的开始位置是A2单元格,结束单元格是L2单元格,这是最主要的描述,我们可以通过程序将这个描述文件在生成一个EXCEL文件。 2:针对上面的XML文件写一样式样,转换成一个在浏览器中显示的表单,这样也就实现了报表在B/S系统中的应用, 3:通过XSL:FO 可以将此描述转换成PDF文件,然后进行打印。也可生成SVG图形。
当然报表的元素很多,有图形还可能有斜线,这些都可以通过在XML文件中增加描述信息来解决,最少我觉的这样的方法可以用在80%的比较简单的报表中,这样做出来的报表系统修改起来也很方便。 请大家想想这样的设计可以吗是否能实现呢?
我现在做到的是华表和XML描述可以互相转换。
报表在以后修改变化大吗?有没有考虑用华表。我现在想将报表用XML描述出来然后用XSL转换在浏览器上显示。我现在觉得如果能行的通是一个很好的解决方案不用任何第三方控件。我的设想是用XML将报表描述,用XSL:FO和FOP将之转换成可在浏览器上显示和PDF格式或SVG。正在学XSL中。有什么好意见或实现方法请回赐教。
使用自定义脚本解释器的话最好以图形方式输出,可以省去很多麻烦。
不过如果你能这样实现,至少能满足简单的报表显示方面的功能和调整,看功能,应该比较简单,而且TClientDataSet就支持xml文件。
支持一下!
:)
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
下个月也许可以帮你提点意见..*^_^*先挂号一个.呵呵..
Rave报表都是可以在系统完成后允许用户经常要求修改报表的,只有Dev版本的可以,Delphi自带的标准版还不能支持!XML和XSL都不复杂的,到完整的报表系统就不容易开发的
我自己做了一个一维报表生成器(和业务结合在一起的),但只能处理单条查询(可以自动生成外部条件),而且报表只能是普通表的样式。
本来打算继续开发二位报表生成器的,领导没眼光,也就懒得动了。
个人以为要想偷懒,必须要绑定业务。
没有万能的报表处理方案的!
MSN:[email protected]
MSN:[email protected]
然后开发一个报表内容定制工具,将定制的信息写入数据表!现在你做的只是将数据表变成XML文件
祝你成功完成先! 这方面的东西我好久没弄了,不过还是知道一些原理的