您的位置首页百科知识

FastReport报表系统的使用

FastReport报表系统的使用

fastreport是一个功能强大的报表系统,c/s运用的比较多,这次我来介绍下b/s下使用fastreport。网上有部分说明,可能是技术保守性,只有寥寥几笔。这次手把手叫大家在intraweb中使用fastreport,应该会很快学会的。

网上大家都是建议用ocx开发报表控件。界面虽然直观,但是这个方法有局限性,它只支持IE,不支持谷歌,火狐等浏览器,我这就是直接转换打印出来的。

首先要确保你的电脑上安装了fastreport控件。高版本的delphi xe系列自带了。低版本还是需要自己安装了。下载地址:http://download.csdn.net/detail/bjcee/8873503

在界面上添加四个控件frxDBDataset1、frxReport1、frxHTMLExport1、ADOQuery1。个控件分别的作用:frxDBDataset1是报表控件和intraweb连接的纽带。frxReport1是报表编辑控件。frxHTMLExport1都出表格成html格式,为什么不用pdf呢?不是所用人的电脑上都装有pdf的。ADOQuery1数据控件。

把个控件的关系弄一下。frxReport1.DataSet :=frxDBDataset1。frxDBDataset1.DataSet := ADOQuery1。所以说frxDBDataset1是纽带作用。ADOQuery连接IWUserSession.aConn。

为增加程序的可读性,我们再增加几个控件。IWTabControl1Page0(分页使用)、IWLabel1(标签时间)、TIWDateSelector1(时间选择)、btnPreview(预览按钮)、btnPrint(打印按钮)。

在程序目录下建两个文件夹,用于存放编辑的报表和缓存文件,我们定义他们的名字分别为reports,files。

开始用frxReport1编辑报表。在界面上双击frxReport1。弹出个界面。

先帮frxReport1选择数据源。【报表】→【数据】→勾上frxDBDataset1

编辑一个报表,保存在安装目录的reports里,命名为Day.fr3。其中每个小单元格里都是这样的:[frxDBDataset1."F_CarNO"]

接下来就是在预览的按钮里写代码了。代码如下:

procedure TiwfrmReport.btnPreviewClick(Sender: TObject);

var

sSql:String;

Lfile,webpath,LWindowName,LOptions ,lurl,surl:string;

SelectTime:string;

SeYear:string;

YMDTime: TDateTime;

begin

YMDTime := TIWDateSelector1.Date;

SelectTime := FormatDateTime('yyyy-mm-dd',YMDTime);

sSql:=' select * from T_Standard ';

sSql := sSql + ' where F_Iscancel=0 and F_IsFinish=1 and F_EndTime like '''+selecttime+'%'' ';

sSql := sSql + ' order by F_EndTime asc ';

ADOQuery1.Connection:=dm.aConn;

ADOQuery1.Close();

ADOQuery1.SQL.Clear();

ADOQuery1.SQL.Add(sSql);

ADOQuery1.Open();

webpath:=ExtractFilePath(Paramstr(0))+'reports\Day.fr3';//报表路径

frxReport1.LoadFromFile(webpath);//加载报表

Lfile:='printat'+FORMATDATETIME('hhmmss',NOW)+'.htm';//报表名

frxhtmlexport1.FileName:=ExtractFilePath(Paramstr(0))+'files\'+webapplication.AppID+'\'+LFILE ;//报表输出路径

ForceDirectories(ExtractFileDir(frxhtmlexport1.FileName));//强制创建文件夹

frxreport1.PrepareReport();

frxreport1.Export(frxHTMLExport1);//报表导出html格式

LWindowName := '日报表';//页面名

LOptions := 'scrollbars=yes,width=900,height=1058';//页面大小

LURL := 'files/'+webapplication.AppID+'/'+LFile;//生产Url

AddToInitProc('NewWindow("' + LURL + '", "' + LWindowName + '","' + LOptions + '");');//打开报表

end;