Delphi中用服务器组件解决WEB交叉报表问题(1)2011-12-12 csdn博客 编程手札web开发最麻烦的是做报表,特别是交叉报表。要将查询得到的看起来平淡无奇的数据展开成复杂的报表不知要费煞多少周张。下次维护时看到冗长的SQL语句或长达数页的程序代码,都有种快要晕厥的感觉。最近,这种好事又让我碰上。公司因为费用统计的需要,要开发一份各分公司之间调货量的统计表,如下图所示。表中坚向为分公司帐套名称(调出方),横向为帐套中的客户名称(调入方),这是一份典型的交叉报表。

制作这份报表有两个难点:一、每一个分公司帐套对应数据库服务器上一个数据库,并分别存放在两台以上的数据库服务器中,因此报表数据必须跨服务器查询得到。二、将查询得到的数据展开。如果直接用SQL语句来完成这查询和数据展开显得太复杂,而且效率会很低。如果只通过SQL语句来查询数据则会简单很多,撇开安全问题不考虑,完全可以用SQL Server提供的Open系列函数来完成。展开数据如果通过代码来完成,实在是一件很痛苦的事情,每当这时候我就会想起C/S开发中的报表控件,遗憾的是公司并没有购买任何的WEB报表控件,只好自己来打制一个了.说话间,我就拿出了我的看家宝贝:Delphi+Fast Report2.5(很久没用了一直没更新),东西虽旧但好用。首先,创建一个ActiveX Library和Active Server Object。