提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2012-09-06 10:14:58.000|阅读 421 次
概述:
前面我们讲到FASTREPORT实现WEB应用中自定义报表,会用到REPORT SERVER、WEB SERVER、ACTIVEX三部分内容,现在就来说一下里面的REPORT SERVER部分
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
如何用FASTREPORT实现WEB应用中自定义报表(一)
如何用FASTREPORT实现WEB应用中自定义报表(三)
前面我们讲到FASTREPORT实现WEB应用中自定义报表,会用到REPORT SERVER、WEB SERVER、ACTIVEX三部分内容,现在就来说一下里面的REPORT SERVER部分:
REPORTSERVER既可以做成一个普通的WINDOWS程序,也可以做成一个COM程序(Automation Object)。本例中为简化见,采用普通的WINDOWS程序实现。
在DELPHI中NEW一个应用程序。在FORM中加入TfrReport、TfrDBDataSet、ADOConnection、TADOQuery等控件——为了使用FASTREPORT的控件。其中TfrDBDataSet、TADOQuery控件视应用需要可加入多个,另外为了压缩文件,还要加入一个压缩控件,本例使用VCLZip。在Form1中加入三个函数:preDesignReport(rpFileName:String),prePrintReport(rpFileName:String),zipReportFiles(rpFileName:String),分别用于准备报表设计文件、准备报表打印文件、压缩报表文件 。Form1.Create方法为:
procedure TForm1.FormCreate(Sender: TObject);
var
rpFileName,mode:String;
begin
if paramCount>1 then
begin
mode:=paramStr(1);
rpFileName:=paramStr(2);
if mode='d' then //设计报表
if preDesignReport(rpFileName) then
zipReportFiles(rpFileName);
if mode='r' then //打印报表
if prePrintReport(rpFileName) then
zipReportFiles(rpFileName);
end;
Application.Terminate;
end;
程序根据调用参数判断是准备报表设计文件还是准备报表打印文件,接着调用相应的过程来实现。最后的Application.Terminate 是让程序执行功能后即退出——因为这是服务端程序,是不能与用户交互的。
preDesignReport(rpFileName:String)方法:
function TForm1.preDesignReport(rpFileName:String):boolean;
var
…… //其他变量
dtfFileName:String;
begin
……
dtfFileName:=StringReplace(rpFileName, ExtractFileExt(rpFileName),'.dtf',
[rfReplaceAll, rfIgnoreCase]);
try
rpAdoquery.SQL.Add('…');
rpAdoquery.open;//打开报表的数据环境
rpAdoquery.FieldList.SaveToFile(dtfFileName);
result:=true;
except
on Exception do
result:=false;
end;
end;
函数preDesignReport的作用是准备报表设计文件。报表中可以引用多个DataSet,本例假设报表只引用一个名为rpAdoquery的DataSet。rpFileName 为报表文件名(.frf),DtfFileName为保存数据环境的文件名(.dtf)。因为用户端不能连接数据库,所以将DataSet中的Fileds通过rpAdoquery.FieldList.SaveToFile(dtfFileName)保存到文件,和报表文件一起传送给用户端的ACTIVEX,ACTIVEX利用.dtf文件复现报表的数据环境。
prePrintReport(rpFileName:String)方法:
function TForm1.prePrintReport(rpFileName:String):boolean;
var
repFileName:String;
begin
……
repFileName:=StringReplace(rpFileName, ExtractFileExt(rpFileName),'.frp',
[rfReplaceAll, rfIgnoreCase]);
try
rpAdoquery.SQL.Add('…');
rpAdoquery.open;//打开报表的数据环境
frReport1.ShowProgress:=False;
frReport1.Clear;
frReport1.LoadFromFile(rpFileName);
frDBDataSet1.DataSet :=rpAdoquery;
frReport1.Dataset :=frDBDataSet1;
frReport1.PrepareReport;
frReport1.SavePreparedReport(repFileName);
result:=true;
except on Exception do
result:=false;
end;
end;
函数prePrintReport的作用是准备打印的报表文件,即先在服务器端装载报表并运行,将运行好的报表保存为文件,用于传送到用户端进行预览或打印。RepFileName是已准备好的报表文件名(.frp)。同样假设报表只引用一个名为rpAdoquery的DataSet。frReport1.ShowProgress:=False 使报表运行过程中不显示进度窗口(服务器端不能显示与用户交互的界面);接下来frReport1.Clear;…装载报表文件及设置相关数据属性;frReport1.PrepareReport 是在不显示预览窗口的情况下运行报表;frReport1.SavePreparedReport(repFileName) 将运行好的报表保存到文件,该文件传送给用户端的ACTIVEX,ACTIVEX可以直接预览或显示该报表。
zipReportFiles(rpFileName:String)方法:
function TForm1.zipReportFiles(rpFileName:String):boolean;
var
……
zipFileName,fileName:String;
zipCount:Integer;
begin
……
zipFileName:=StringReplace(rpFileName, ExtractFileExt(rpFileName),'.zip',
[rfReplaceAll, rfIgnoreCase]);
fileName:= ExtractFileName(rpFileName);
fileName:= ChangeFileExt(fileName,'.*');
try
VCLZip1.ZipName:= zipFileName;
VCLZip1.RootDir:= '.\';
VCLZip1.FilesList.Add(fileName);
zipCount:= VCLZip1.Zip;
if zipCount = 0 then
result:=false
else
result:=true;
except on Exception do
result:=false;
end;
end;
函数zipReportFiles的作用是把要传送给用户端的报表文件压缩为一个.zip文件,简化文件传送过程,而且压缩了数据量。ACTIVEX接收到.zip文件后,先解压出包中文件,再进行处理。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
用于快速高效地生成报表的附加组件
FASTREPORT SERVERFastReport Server是一个全方位的公司报表解决方案,它包括所有创建和提供报表的必要工具。
FastReport .Net一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢