ireport?

Tags: 數據, 公務, 圖表,

ireport 5.1.0 入門教程之圖表詳解,本文介紹ireport 的圖表以及圖表的實現方法

工具/原料

ireport

方法/步驟

iReport很多的圖表(Chart)類型可提供使用。iReport現在支持Pie,Pie 3D,Bar,Bar 3D,XY Bar,Stacked Bar,Stacked Bar 3D,Line,XY Line,Area,XY Area,Scatter Plot,Bubble,Time Series,High Low Open Close和Candlestick 多種類型圖表。

iReport使用jfreechart作為其圖表引擎,jfreechart是一個強大的chart 生成工具。

創建chart的機制是建立在dataset的概念之上的,這就使得數據的管理和對更多複雜圖表類型如High Low 之類實現可視化。

第一個圖表

在這一章節裡我們將來學習如何使用chart 工具一步一步在一個報表裡創建一個Pie3D的chart。在這個例子中我們將使用doradosample裡的數據庫作為數據源。

建立一個空白的文檔,點擊 打開查詢窗口並且寫下如下查詢語句:

select employee_department,count(*) count from tb_employee group by employee_department

ireport 5.1.0 入門教程之圖表詳解

報表的查詢窗口

這裡我們想生成一個chart用來顯示根據學歷員工數目。點擊OK確認,iReport將註冊查詢得到的fields。同時把這些fields從objects library裡拖出放入detail的band裡。

ireport 5.1.0 入門教程之圖表詳解

選擇chart tool 在summary裡放置一個新的chart。

ireport 5.1.0 入門教程之圖表詳解

從charts窗口裡我們選擇pie3D圖標並按OK按鈕。

要配置chart,雙擊chart打開屬性窗口,同時你可以通過右鍵菜單的方式打開chart的屬性窗口。

ireport 5.1.0 入門教程之圖表詳解

ireport 5.1.0 入門教程之圖表詳解

點擊“Edit chart properties”按鈕出現的chart屬性窗口。

ireport 5.1.0 入門教程之圖表詳解

這個窗口包含兩個標籤:“Chart properties”和“Chart Data”。第一個標籤包含控件的parameters列表;第二個標籤是用來決定和當前圖片關聯的數據。修改圖形的不同樣式,設置背景的alpha和前景的alpha為0.5和depth factor(深度因子)為0.2。

下一步定義和圖形關聯的data。切換到“Chart Data”標籤。

ireport 5.1.0 入門教程之圖表詳解

在“Type of dataset”列表框中允許你指定一個dataset用來生成圖形。在“dataset”標籤裡你可以在報表的上下文裡指定一個dataset。Reset type和Reset group 允許你對dataset進行重置。

為了我們的需要,我們設置Reset type 為“Report”。當我們不想數據被重置時。同時我們設置Increment type 為None,這樣每一條記錄都將被附加到我們的dataset裡。

在Detail標籤裡允許你鍵入一個表達式和每一個在datasource裡單獨的值關聯。針對Pie 圖表類型,有三個表達式需要我們輸入:Key,Value和Label。

表達式Key允許你標識Pie圖裡的一塊。如果Key的值出現重複,那麼Label和Value的值會關聯起來用來覆蓋Key的值。一個Key值不能為null。Value的表達式值指定這個Key的數字值。

Label表達式的值允許你為並圖中每一塊指定一個標籤。這個表達式的值是可選的,同時默認值為“ = ”,例如:“A=100”,A是並圖中一個塊的Key同時100是它的值。

ireport 5.1.0 入門教程之圖表詳解

確認對chart的修改,保存文件並且點擊 按鈕啟動報表。在圖14.9裡我們可以看到最後的效果。

ireport 5.1.0 入門教程之圖表詳解

數據集

當報表生成的時候,chart會去收集數據然後存儲在相關的dataset裡。Dataset類型有:

Pie

Category

Time period

Time series

XY

XYZ

High-Low

可以把dataset想成是一個表格,每一個dataset都有不同的列(fields)。當一條新記錄插入到dataset裡時值將會被添加到fields裡。

圖表屬性

我們可以通過圖顯示的窗口來管理chart的外觀。在這個窗口裡你可以查看並編輯charts和graphs的通用屬性(如title,圖例等)。

你可以使用表達式編輯框來更改Chart title 和Chart subtitle表達式

ireport 5.1.0 入門教程之圖表詳解

JasperReports只是利用了JFreeChart圖表庫的一小部分功能。如果你想自定義一個圖表你可以寫一個實現下面的接口的類:

Net.sf.jasperreports.engine.JRChartCustomizer

從這個接口中我們只需要實現一個方法:

Public void customize(JFreeChart chart,JRChart jasperChart);

在這個方法裡用JFreeChart和JRChart作為它的參數。JFreeChart作為第一個參數通常是用來產生圖片的,第二個參數包含用戶在設計階段一些參數。

同為比較常用的java報表生成工具,FineReport對圖表的解決方案和實現方法與ireport有所不同,具體實現思路和步驟如下,供ireport使用者借鑑:

FineReport中的圖表是用帆軟自主研發的HTML5圖表技術實現的,並不是靠第三方插件實現的,目前FineReport實現了:柱形圖、折線圖、條形圖、餅圖、面積圖、散點圖、氣泡圖、雷達圖、股價圖、儀表盤、全距圖、組合圖、地圖、甘特圖、gis地圖、圓環圖等樣式的圖表,同時提供了多種圖形組合設計。

具體的圖表製作方法如下:

1. 圖表製作流程

圖表製作流程如下圖:

ireport 5.1.0 入門教程之圖表詳解

該章節我們以下圖所示的柱形圖為例,展示各個地區產品類型的銷量情況,為大家簡單的介紹下圖表的製作流程。

ireport 5.1.0 入門教程之圖表詳解

. 示例

2.1 準備數據

在製作圖表前,需要先定義圖表的數據來源。

在上面的圖表製作流程中提到數據來源有兩種類型,數據集數據源和單元格數據源,本章節使用數據集作為數據源,如果需要使用單元格數據源,可查看定義圖表單元格數據源。

新建工作薄,添加數據集,SQL語句為SELECT * FROM [銷量],使用銷量表作為圖表的數據來源。

2.2 插入圖表並選擇圖表類型

圖表有兩種插入方式:單元格圖表與懸浮圖表,該例中我們以懸浮圖表為例,單元格圖表的插入方式請查看單元格圖表。

點擊工具欄中的插入>懸浮元素>插入圖表,彈出圖表嚮導,選擇圖表類型如柱形圖,如下圖:

注:插入圖表和選擇圖表類型一般性是在一起完成的。

ireport 5.1.0 入門教程之圖表詳解

2.3 定義圖表數據

選擇完圖表類型後,點擊確定,返回報表主體界面,選中懸浮圖表,在報表主體右側上方的圖表屬性表中設置圖表屬性,選擇圖表屬性表-數據,設置柱形圖的數據,如下圖:

ireport 5.1.0 入門教程之圖表詳解

設置圖表數據,首先要選擇數據來源,前面我們新建了一個數據集ds1,這張圖表的數據來源於數據集數據,選擇好數據來源之後,為分類軸、系列名、系列值綁定數據集中的字段,用圖表來展示數據集中的數據。

分類軸:就是圖表的橫軸,即x軸,表示數據是按照什麼分類顯示的;

系列名:系列就是圖表的縱軸,即y軸,系列名稱表示每個分類下數據是按照什麼順序顯示的;

系列值:就是每個系列的值;

彙總方式:對系列值的計算方式。

2.4 圖表樣式設置

· 標題設置

選中圖表,在設計器右側上方會出現圖表屬性表,選擇圖表屬性表-樣式>標題,增加圖表標題為:地區產品銷量,如下圖:

ireport 5.1.0 入門教程之圖表詳解

· 系列標籤設置

選擇圖表屬性表-樣式>標籤,勾選標籤,顯示出每個系列的值:

注:還可以給圖表設置其它圖表樣式。

ireport 5.1.0 入門教程之圖表詳解

2.5 保存模板

保存模板,預覽便可以看到效果如上圖。

相關問題答案