现在的项目中所使用的报表都是每三方的控件,报表系统完成后如果用户经常要求修改报表(我做过一个项目因没有通一确定的报表每个用户对报表的要求都不同)是很麻烦的事情,如果考虑的不周到,报表的每个小小变化都会让你重新编译一遍程序。  最近学习了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.   

    大家好好想想,我也在想,在想法实现,可对XSL不熟悉,很慢的。
      

  2.   

    可以做到,不用XML的话可自行定义脚本解释器,方法不一定相同,原理同XML是一样的。
    使用自定义脚本解释器的话最好以图形方式输出,可以省去很多麻烦。
      

  3.   

    我想还是用吧!最少根据报表的描述文件可以将报表转换成任意的其它格式。不知有没有专门描述报表的XML格式。
      

  4.   

    你这个只是记录了报表的显示格式,相当于把已经做好的报表另存为xml文件,而报表复杂的在于它的统计算法,而并不是简单的显示。
    不过如果你能这样实现,至少能满足简单的报表显示方面的功能和调整,看功能,应该比较简单,而且TClientDataSet就支持xml文件。
    支持一下!
    :)
    Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
      

  5.   

    呵呵..兄弟...要不是说我不会XML..不然一定和你聊聊..最近一同事大说XML很好..因为他比偶牛多了..没敢多说..
    下个月也许可以帮你提点意见..*^_^*先挂号一个.呵呵..
      

  6.   

    这个想法很好
    Rave报表都是可以在系统完成后允许用户经常要求修改报表的,只有Dev版本的可以,Delphi自带的标准版还不能支持!XML和XSL都不复杂的,到完整的报表系统就不容易开发的
      

  7.   

    就像firetoucher(风焱) 兄讲的一样,报表处理最麻烦的不是固定大小的报表,而是有统计、排序并且宽度和高度都不定的报表。这类报表往往也是客户经常要求改变的。
    我自己做了一个一维报表生成器(和业务结合在一起的),但只能处理单条查询(可以自动生成外部条件),而且报表只能是普通表的样式。
    本来打算继续开发二位报表生成器的,领导没眼光,也就懒得动了。
    个人以为要想偷懒,必须要绑定业务。
    没有万能的报表处理方案的!
      

  8.   

    这方面的内容我没做过,但接错过不少,以前有个同事写了个模板,可以根据客户的要求生成各样的统计项目。当时是因为赶时间,客户要求的报表格式太多,就写了个相当于报表生成器的东西,和楼主说的不太相象。只说个思路:是在文本框中输入SQL语句,然后根据输入生成报表。对于维护很好用,至于楼主说的写入excel,我想只是后期工作吧。
      

  9.   

    呵呵,com+组件,b/s,c/s都可以用。
      

  10.   

    我也想做这样一个报表的想法,希望能交流
    MSN:[email protected]
      

  11.   

    我也有做这样一个报表的想法,希望能交流
    MSN:[email protected]
      

  12.   

    应该可以行得通,不过对于复杂的报表比较难处理!以前我们做的报表模板是把单元格的信息保存在数据表里,现在把它放到XML文件中也未尝不可!直接在EXCEL中定义报表格式!
    然后开发一个报表内容定制工具,将定制的信息写入数据表!现在你做的只是将数据表变成XML文件
    祝你成功完成先! 这方面的东西我好久没弄了,不过还是知道一些原理的