FastReport報表系統的使用?

fastreport是一個功能強大的報表系統,c/s運用的比較多,這次我來介紹下b/s下使用fastreport。網上有部分說明,可能是技術保守性,只有寥寥幾筆。這次手把手叫大家在intraweb中使用fastreport,應該會很快學會的。

工具/原料

delphi2010

intraweb

方法/步驟

網上大家都是建議用ocx開發報表控制元件。介面雖然直觀,但是這個方法有侷限性,它只支援IE,不支援谷歌,火狐等瀏覽器,我這就是直接轉換打印出來的。

首先要確保你的電腦上安裝了fastreport控制元件。高版本的delphi xe系列自帶了。低版本還是需要自己安裝了。下載地址:

FastReport報表系統的使用

在介面上新增四個控制元件frxDBDataset1、frxReport1、frxHTMLExport1、ADOQuery1。個控制元件分別的作用:frxDBDataset1是報表控制元件和intraweb連線的紐帶。frxReport1是報表編輯控制元件。frxHTMLExport1都出表格成html格式,為什麼不用pdf呢?不是所用人的電腦上都裝有pdf的。ADOQuery1資料控制元件。

FastReport報表系統的使用

把個控制元件的關係弄一下。frxReport1.DataSet := frxDBDataset1。frxDBDataset1.DataSet := ADOQuery1。所以說frxDBDataset1是紐帶作用。ADOQuery連線IWUserSession.aConn。

FastReport報表系統的使用

FastReport報表系統的使用

為增加程式的可讀性,我們再增加幾個控制元件。IWTabControl1Page0(分頁使用)、IWLabel1(標籤時間)、TIWDateSelector1(時間選擇)、btnPreview(預覽按鈕)、btnPrint(列印按鈕)。

FastReport報表系統的使用

在程式目錄下建兩個資料夾,用於存放編輯的報表和快取檔案,我們定義他們的名字分別為reports,files。

FastReport報表系統的使用

開始用frxReport1編輯報表。在介面上雙擊frxReport1。彈出個介面。

FastReport報表系統的使用

先幫frxReport1選擇資料來源。【報表】→【資料】→勾上frxDBDataset1

FastReport報表系統的使用

編輯一個報表,儲存在安裝目錄的reports裡,命名為Day.fr3。其中每個小單元格里都是這樣的:[frxDBDataset1."F_CarNO"]

FastReport報表系統的使用

接下來就是在預覽的按鈕裡寫程式碼了。程式碼如下:

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;

相關問題答案