fastreport中文版教程之圖表,FastReport允許使用者插入chart製表元件到報表中,這樣,在FastReport面板上的“TfrxCharObject” 元件就必須應用上。這個元件基於“TeeChart”動態庫,在delphi中需要將它包含在工程中。
工具/原料
fastreport
方法/步驟
FastReport允許使用者插入chart製表元件到報表中,這樣,在FastReport面板上的“TfrxCharObject” 元件就必須應用上。這個元件基於“TeeChart”動態庫,在delphi中需要將它包含在工程中。
我們通過以下示例先進行簡單說明,連線DBDemos中的countory表,資料內容如下:
在delphi環境中建立一個新的工程,新增“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”元件,並設定屬性值:
Table1:
DatabaseName = 'DBDEMOS'
TableName = 'country.db'
frxDBDataSet1:
DataSet = Table1
UserName = 'Country'
進入到報表設計器頁面,並連結設定資料來源。在報表的設計頁上放置一個“chart”元件,並調整其大小(18X200px)。雙擊元件,開啟元件的編輯器視窗。
char編輯器區域說明:
1:chart結構,一個chart包含有幾個製表系統。
2:元件監視器,顯示所選元件的屬性。
3:連結chart的series的資料屬性。
開始的介面顯示如上,首先新增一個或幾個series,在1區點選按鈕,新增一個Pie。
有許多可用的不同的型別的series。新增一個系列之後,3區被啟用。首先選擇資料來源,設定Label和pie欄位。
點選確定按鈕,關閉編輯器視窗,然後預覽。
還如何改良以下報表呢?首先,將資料按升序方式進行排序。再次進入編輯器,選擇要設定的series,在3區設定選項。
1、chart資料中數字的限制
上面的製表看上去非常擁擠,在chart中有特別多的值,而有些看不見。FastReport可以設定顯示資料的限制性。因此不被限制的值可以在製表中顯示。
在我們的示例中,包含18個數值,而最多友8個能顯示,鍵入編輯器,進行設定。
前幾個如果不等於0。則顯示在報表中,如果排序沒有設定,則採用預設排序。
結果如下:
2、設定
下面說明一下幾個有用的設定。這些屬性只能在物件監視器中進行設定。
以下幾個屬性可用:
——Gradient:設定背景填充顏色。
——Legend : 圖例
一下是series的屬性:
——ColorEachPoint:設定每個部分一種顏色
——ExplodeBiggest:設定最大部分分出。
——ValueFormat:數字監視格式。
3、指定數字製表
在上面的製表中,我們使用的是資料表中資料進行建立的圖表。還可以通過手動輸入進行製表。這對建立一個小的製表系統是非常方便的。
讓我們示範一下如何工作?在報表設計器中新增一個製表系統,進入編輯器,新增一個“bar chart”型別series,並設定屬性:
4、利用指令碼進行製表
將上面的xvalue和yvalue屬性值取消掉,並在報表中新增如下程式碼:
PascalScript:
begin
Chart1.SeriesData[0].XSource := 'Jan;Feb;Mar;Apr';
Chart1.SeriesData[0].YSource := '31;28;31;30';
end.
C++Script:
{
Chart1.SeriesData[0].XSource = "Jan;Feb;Mar;Apr";
Chart1.
}
SeriesData[0]允許使用者設定第一個series引數,如果製表中有多個series,可以通過SeriesData[Data_Number]進行設定。
5、在delphi環境中建立的報表的列印
如果用delphi的程式碼建立一個報表,並想著列印報表,這需要一個“Picture”元件。在報表設計器的相應位置新增一個“Picture”元件。在delphi環境中,在frxReport.OnBeforePrint事件中新增如下程式碼:
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
if Sender.Name = 'Picture1' then
TfrxPictureView(Sender).Picture.Assign(
Chart1.TeeCreateMetafile(False,
end;
Picture1是報表中Tpicture元件,chart1是delphi中的Tchart元件名稱。
同為比較常用的報表工具,FineReport對圖表的解決方案與FastReport有所不同,具體如下:
1. 圖表製作流程
圖表製作流程如下圖:
該章節我們以下圖所示的柱形圖為例,展示各個地區產品型別的銷量情況,為大家簡單的介紹下圖表的製作流程。
2. 示例
2.1 準備資料
在製作圖表前,需要先定義圖表的資料來源。
在上面的圖表製作流程中提到資料來源有兩種型別,資料集資料來源和單元格資料來源,本章節使用資料集作為資料來源,如果需要使用單元格資料來源,可檢視定義圖表單元格資料來源。
新建工作薄,新增資料集,SQL語句為SELECT * FROM [銷量],使用銷量表作為圖表的資料來源。
2.2 插入圖表並選擇圖表型別
圖表有兩種插入方式:單元格圖表與懸浮圖表,該例中我們以懸浮圖表為例,單元格圖表的插入方式請檢視單元格圖表。
點選工具欄中的插入>懸浮元素>插入圖表,彈出圖表嚮導,選擇圖表型別如柱形圖,如下圖:
注:插入圖表和選擇圖表型別一般性是在一起完成的。
2.3 定義圖表資料
選擇完圖表型別後,點選確定,返回報表主體介面,選中懸浮圖表,在報表主體右側上方的圖表屬性表中設定圖表屬性,選擇圖表屬性表-資料,設定柱形圖的資料,如下圖:
設定圖表資料,首先要選擇資料來源,前面我們新建了一個數據集ds1,這張圖表的資料來源於資料集資料,選擇好資料來源之後,為分類軸、系列名、系列值繫結資料集中的欄位,用圖表來展示資料集中的資料。
分類軸:就是圖表的橫軸,即x軸,表示資料是按照什麼分類顯示的;
系列名:系列就是圖表的縱軸,即y軸,系列名稱表示每個分類下資料是按照什麼順序顯示的;
系列值:就是每個系列的值;
彙總方式:對系列值的計算方式。
2.4 圖表樣式設定
· 標題設定
選中圖表,在設計器右側上方會出現圖表屬性表,選擇圖表屬性表-樣式>標題,增加圖表標題為:地區產品銷量,如下圖:
· 系列標籤設定
選擇圖表屬性表-樣式>標籤,勾選標籤,顯示出每個系列的值:
注:還可以給圖表設定其它圖表樣式。
2.5 儲存模板
儲存模板,預覽便可以看到效果如上圖。