如何把FastReport VCL 6中的數(shù)據(jù)組生成直觀圖表
在文章“如何在FastReport VCL 6中的數(shù)據(jù)組標(biāo)題中顯示總計”中,我們研究了如何使用Processing屬性作為“Text”對象。但是,該屬性對于其他對象也很典型:圖表、量表和條形碼。今天,我們將著眼于在Chart對象的上下文中應(yīng)用Processing屬性。使用Processing屬性,我們可以使用稍后將要檢索的數(shù)據(jù)。這種機制被稱為“延期處理”。這個想法是,打開Processing屬性的對象不像往常一樣按優(yōu)先級順序處理。當(dāng)在此對象的ProcessAt屬性中選擇的事件被觸發(fā)時,它將被處理。因此,根據(jù)報告末尾獲得的數(shù)據(jù),我們可以在報告的開頭創(chuàng)建一個圖表。
但是在本文中,我們將看看來自交付FastReport VCL 6的“Expressions processing”演示。我們的目標(biāo)是顯示按大洲分組的各國人口圖。
我們來創(chuàng)建一個新的報告。在“Data”選項卡上添加數(shù)據(jù)源。創(chuàng)建一個到數(shù)據(jù)庫的連接。為此,從工具欄中拖動ADO數(shù)據(jù)庫組件并創(chuàng)建連接:
交付FR VCL 6具有演示數(shù)據(jù)庫demo.mdb。我們使用它?,F(xiàn)在您需要從數(shù)據(jù)庫中獲取數(shù)據(jù)。我們可以在兩個組件之間進行選擇:ADO Table和ADO Query。第一個允許你選擇一個表來顯示,第二個是寫一個SQL查詢。由于數(shù)據(jù)沒有排序,我們將不得不通過排序來編寫我們的查詢。將ADO查詢組件拖到工作區(qū)中。在添加的對象的屬性檢查器中,我們找到SQL。雙擊打開SQL查詢編輯器旁邊的字段:
SELECT * FROM Country ORDER BY Continent, Name
轉(zhuǎn)到報告頁面。在“Data”band上,我們放置字段:
Name,Area,Population。
我們添加“Group header”band。分組條件是Continent字段。另外,添加該組的基礎(chǔ)值。這種模式如下:
在小組頁腳中,我們將構(gòu)成總數(shù):
[SUM(< ADOQuery1."Population">,MasterData1)]
現(xiàn)在將Chart對象添加到“Group Header”band。通過雙擊它來調(diào)用圖形的編輯器。添加一個新系列 - Bar - Normal。在系列設(shè)置中,選擇數(shù)據(jù)源 - Band源 - MasterData1。對于Label - 值Name,對于Y軸 - Population。
由于非洲大陸可能有很多國家,我們沒有能力推導(dǎo)出所有的東西。因此,我們只限于10個值。為此,請將TopN參數(shù)設(shè)置為10。最后一步是彩色列。在左邊你看到該系列的屬性檢查器。啟用ColorEachPoint屬性。
關(guān)閉圖表編輯器。
現(xiàn)在只需點擊它來選擇圖表對象。在左側(cè)的屬性檢查器中,您可以找到Processing。展開此屬性并查看另外兩個:GroupLevel和ProcessAt。第一個對我們不感興趣,它適用于具有多個嵌套層次的分組。第二個通過對象來指定事件,它將被處理。我們選擇paGroupFinished。這意味著我們的圖表只會在顯示組后顯示數(shù)據(jù)。對于每個組都是如此。我們來看看最終報告模板:
正如您已經(jīng)注意到的那樣,我將Continent字段和底部的列標(biāo)題添加到“Group Header”band。接著,讓我們運行報告:
按字母順序排列的第一組是非洲。該圖顯示按降序排列的國家/地區(qū)的9列。最右邊的列顯示了其他國家的人數(shù)總數(shù),不在圖表中。如果您只想顯示圖表,請將MasterData和“Group Cell”的bands的Visible屬性設(shè)置為“false”:
由于Processing屬性,數(shù)據(jù)分組可以直觀地顯示在圖表上。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服 | 聯(lián)系Elyn