300分寻求服务器端生成报表的解决方法(100分)

  • 主题发起人 主题发起人 topbad
  • 开始时间 开始时间
T

topbad

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有一个考试系统地c/s架构的开发,系统流程如下:
1、用户下载客户端,参加考试,提交数据到服务器端的sql server2000的数据库之中;
2、服务器端实时扫描sql server2000数据库,在服务器端生成报表文件,请注意,是报表文件,而不是报表;
3、然后,用户通过客户端下载服务器端已经生成好的报表文件就可以了。
报表文件可以是doc格式,也可以是pdf格式、rtf格式,或者其他格式,都无所谓,但是,现在有几个难题,需要各位指教:
1、服务器端如何实时地生成报表文件,并且占用资源较少。
2、报表文件如何包括图表?图表是通过sql server数据库中的数据生成的。
3、客户端如何顺利阅读并且打印报表文件。如果使用doc格式或者pdf格式,用户不可能安装word或者adobe阅读器。
在线等待!请各位指教!如有其他解决方法也可以!
 
建议用ReportBuild!
每隔一定时间查询数据库,如果数据有变化,则重新生成报表,保存为一个报表文件.
客户端需要时下载报表文件打开即可.
这个控件不错的哦(最好有Server版).
 
正学这个,研究研究
 
我做了一个,跟你的需求差不多:
http://jngs.3322.org/webreport
 
建议用ReportBuild!
每隔一定时间查询数据库,如果数据有变化,则重新生成报表,保存为一个报表文件.
客户端需要时下载报表文件打开即可.
这个控件不错的哦(最好有Server版).

唉,兄弟,这种方法不行,我们试了,用ReportBuild处理非常麻烦,实时等众多条件没法满足。
 
我做了一个,跟你的需求差不多:
http://jngs.3322.org/webreport
唉,兄弟,你这个更加初级,骗骗刚入门的孩子还可以。我们为什么要用报表文件呢?在我的问题里面,还特别强调了,是用报表文件而非报表。
我们最开始开发的流程是这样的,用户从客户端提交数据到远程的sql server数据库之中之后,然后,客户端用quick report从远程的数据库提取数据之后生成报表,请注意,这里,用的是报表,而非报表文件。
然而,我们的系统,每一个客户端的用户每次提交数据都是至少在一千条左右,并且,所有这些数据都是保存在远程的sql server数据库的一个表里面,这样一来,一旦有一万个用户提交数据之后,将在远程的sql server数据库的那个表里面生成1亿条数据,在客户端,查询数据,然后在客户端生成报表的工作量将非常庞大,速度非常慢。
因此,我们改变思路了,就是,一旦用户在客户端提交数据之后,服务器端,直接生成了报表文件,然后,在服务器端增加一个新的表,保存的是哪个用户对应的那个报表文件在服务器端的存储地址。这样,当服务器端的那个保存客户端提交数据的表里面的数据一旦达到一定程度,我们就手工备份清空。而客户端直接下载报表文件,然后阅读、打印与保存就可以了。
 
呵呵,我看你的想法有些问题:
1。每次你不会打印1亿条记录吧?这样的应用正是c/s的强项啊,每个用户只打印自己感兴趣的记录,我的这个东西正符合这种需要:客户端提交查询后,所有的数据处理都在服务器端处理,只把处理后的数据(应该很少了)压缩后传输到客户端
2。目前的报表控件无论rb,qr等生成的报表文件都要比原始数据容量更大(毕竟除了保存数据外,还要保存显示格式等等信息,否则报表就无法显示了),这样只能对网络的带宽需求更高,你的思路错了!
 
唉,whf,
说你你还不服气。
你的两个问题都犯了一些基本错误:
1、每次你不会打印1亿条记录吧?这样的应用正是c/s的强项啊
你尝试过从一个几亿的表里面读取数据,并且加以计算吗?
你能保证执行效率吗?我不能保证。所以,我才采取我的这种解决方法。
问题并不是读取数据的多少,而是,一个sql server2000的数据库里面的数据如果都保存在一个表格里面,一旦达到几百亿的大容量的时候,本身的执行效率将非常低了。
2、你的第二个问题更加不是问题。使用一个简单的winrar压缩算法就可以解决了。
 
呵呵,没考虑到计算,但计算可以不用报表本身的计算功能,可以用存储过程等方法在服务器端实现。
 
后退
顶部