当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 开发WEB应用系统通常
 

 

    摘要: 转自大富翁论坛,至于如何重新编译可以参考《fastreport 3.07 专业的安装及中文化》q:fastreport 3.x导出pdf乱码怎么解决?(中文乱码,英文没问题). a:用下面这代码替换 frxpdffile.pas 中原来的代码就可以了已在enterprise(应该说是professional) 3.07下测试通过;注意事项:字体内嵌的复选框不可选。procedure tfrxpd......
    摘要:2005-6-23 fh@mail.trisunwyse.com技术原理 通过在tppreport的beforeprint事件中对tprinterdevice的pagesetting属性和pagelist属性进行赋值为何要如此处理?根据分析reportbuilder源码,我们得到如下的调用顺序tppviewer -> tppproducer -> tppprinterdevice -&......


用FASTREPORT实现WEB应用中自定义报表
 开发web应用系统通常都会遇到报表打印问题.简单应用可利用ie的页面打印功能,利用html标签控制格式来实现.但复杂的业务型应用系统,报表不仅是组成应用的重要部分,还常常是相当复杂的.现在很多应用系统都要求提供自定义报表的功能——即客户可以自行设计.修改报表.

在c/s结构系统中,报表问题有很多成熟的解决方法.如delphi开发工具不仅自带有报表控件,还可以利用第三方控件来实现快速灵活的报表制作与打印,其中有名的控件是fr-software & a.tzyganenko 的fastreport.fastreport提供了能与delphi无缝集成的从设计到打印的完整控件包,提供的设计界面友好灵活,对于开发可让用户自定义报表的c/s应用来说,是一种很好的解决方式.

【程序编程相关:在Delphi中使用CreateOleO

【推荐阅读:BORLAND第三方组件安装方法

在b/s结构应用中,crystal report是一种大型报表系统常用与推荐的解决方案.但crystal report目前价格昂贵,而且该系统相当庞大.它的可定制性及精确控制打印效果方面尚不够完善.当然,在目前市场上,它仍是一种首选的web应用的报表解决方案.

【扩展信息:扫雷外挂的设计与实现(一)

如果能将c/s应用中成熟的报表解决方案搬到b/s应用中,相信对于大部分开发人员来说,都是非常欢迎的.本文将讲述一个在java环境中利用fastreport实现b/s应用中用户可自定义的报表解决方案.因为笔者近段时间正用delphi.java做一些项目,所以样例代码就以delphi.java编写.

本解决方案样例的基本环境是:windows 2000 server+sql server 2000+tomcat 4.0.开发工具:intellij idea 3.0,delphi 5.0.客户端为ie 5.0浏览器.

方案共要求用delphi编写两个程序,一个是将被包含在网页中并在浏览器中运行的activex(.ocx),一个是运行在服务器端的报表处理程序,中间通过java程序连接——或任何其他web语言都可以,如asp.php等.方案的基本原理图如下:

报表设计过程

 

 

报表打印过程

 

 

report server:可以做成一个普通的windows程序,也可以做成一个com程序(automation object).在报表设计过程中,用户端(activex)向web server发送报表设计请求,请求中包含要设计报表的名称;web server 收到该请求后,调用report server请求设计的报表文件;report server收到请求后,先装载报表的数据环境,然后将报表设计文件(.frf)与该报表的数据环境文件压缩成一个包文件(.zip),将该包文件的完整路径名返回给web server调用程序;web server将包文件回送给用户端(activex),用户端将接收到的包文件保存到本地硬盘上,并解压缩,从数据环境文件中恢复数据环境,通过fastreport的相应控件打开报表文件给用户提供可视化设计.用户在activex中设计报表时,虽然不能与数据库连接,但因数据环境已存在,所以用户仿如在通常的c/s应用结构下设计报表,能正常地看到报表的数据字典信息.在报表打印过程中,用户端(activex)向web server发送报表打印/预览请求,请求中包含要打印/预览的报表名称;web server 收到该请求后,调用report server请求打印或预览的报表文件;report server收到请求后,先装载报表的数据环境,然后装载报表文件(.frf),接着在无界面状态下运行报表,最后将生成的已准备的报表文件(.frp)压缩成一个包文件(.zip),将该包文件的完整路径名返回给web server调用程序;web server将包文件回送给用户端(activex),用户端将接收到的包文件保存到本地硬盘上,并解压缩,通过fastreport的相应控件打开报表文件(.frp)给用户预览或打印或重新调整格式或输出为其他格式文件.用户在activex中预览报表,仿如在通常的c/s应用结构下预览报表.

web server:提供通常的web服务功能.

activex:activex是microsoft提出的一组使用com(component object model,部件对象模型)使得软件部件可在网络环境中进行交互的技术集.它与具体的编程语言无关.作为针对internet应用开发的技术,activex被广泛应用于web服务器以及客户端的各个方面.本方案中的activex控件主要做两方面的事情,一是利用fastreport控件进行报表处理,包括报表设计(.frf文件)与报表打印(.frp文件).一是与web server进行通信,请求与接收包文件.本文样例的activex采用delphi 5.0编写.

下面分述各部分的一例具体实现(因为仅为说明方案的实现,所以很多代码细节都进行了简省).

一.             report server

report server既可以做成一个普通的windows程序,也可以做成一个com程序(automation object).本例中为简化见,采用普通的windows程序实现.

在delphi中new一个应用程序.在form中加入tfrreport.tfrdbdataset.adoconnection.tadoquery等控件——为了使用fastreport的控件,需要安装该控件包,可从站点http://www.fast-report.com 下载,国内很多软件站点都提供该控件包的下载.其中tfrdbdataset.tadoquery控件视应用需要可加入多个,另外为了压缩文件,还要加入一个压缩控件,本例使用vclzip.
...   下一页
 ·怎样做sql server数据库的还原     »显示摘要«
    摘要: 今天由于毕业设计要做一个数据库备份和还原的页面。我参考了一段代码后实现了功能但是我发现这段程序有一个比较麻烦的地方,就是数据库的还原的时候会遇到排它性问题。在网上搜索了找到了小白的blog上转了一个大富翁论坛上的讨论,看了讨论后发现里面提供的方法还不能直接用于asp.net。我对代码进行了稍稍的改动 void restorebutton_click(object sender, system.e......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE