如何基於自定義變量繪製圖表

報表的重要部分是圖形組件,即圖形和圖表。它們使您能夠快速分析數據以評估增長或下降的趨勢,或者只是快速讀取信息。這就是人類感知的工作方式,即圖形信息的接收速度更快。因此,在路標上,您可以立即看到大腦可以理解和解釋的圖像。

圖表基於統計數據。通常,它們是從數據庫中獲取的。但是在某些情況下,有必要根據轉換後的數據構建時間表。例如,使用執行的初始數據計算。一些報表生成器僅允許使用現成的數據源。這不方便,因爲轉換數據是執行報表所必需的。

讓我們看一下List & Label報表生成器用戶在其問題中提出的困難:

嗨,我有一個報表,我在其中聲明瞭一堆具有各種計算的用戶變量。我試圖在餅圖中顯示這些變量,這可能嗎?我似乎不知道該怎麼做?

如何基於自定義變量繪製圖表

要在List & Label中實現此目的,您將必須創建一箇中間表並將變量中的數據寫入其中。事實是,餅圖類型圖表僅適用於表格數據源。圖表段是通過彙總數據來計算的。

生成器FastReport.Net報表可以在圖表中使用來自源的數據,並且可以在編輯器中手動添加數據。但是,FastReport報表具有內置的腳本,可以“聯手”並提供自定義代碼中圖形的功能。這意味着我們可以“滑動”圖中的任何數據。例如,您在報表中執行計算,然後將結果保存在報表變量中,然後希望基於它們建立圖形。它很容易實現。

如何基於自定義變量繪製圖表

您還可以在報表頁面上添加MSChart對象,並創建事件處理程序BeforePrint:

private void MSChart1_BeforePrint(object sender, EventArgs e)
 {
 MSChart1.DeleteSeries(0); //Delete default series
 MSChart1.AddSeries(SeriesChartType.Pie); //Add new series with pie-chart
 MSChart1.Series[0].SeriesSettings.Points.Clear(); //Wipe series data
 //Look through all parameters in the report
 foreach (Parameter param in Report.Parameters)
 {
 //Add to a series a point on Y axis. For the pie-chart Y axis are enough
 MSChart1.Series[0].SeriesSettings.Points.AddY(param.Value);
 }
 //Enable the legend
 MSChart1.Chart.Legends[0].Enabled = false;
 //Set series labels of the pie-chart
 MSChart1.Series[0].SeriesSettings.Label = "#VALY";
 //Set height of the MSChart object
 MSChart1.Height = 500;
 //Set width of the MSChart object
 MSChart1.Width = 500;
 }

結果,我們將得到這樣的餅圖:

如何基於自定義變量繪製圖表

在此示例中,我們將報表的參數用作數據源,但您也可以在報表的腳本、數組、集合中使用變量。

不幸的是,在FastReport.Net的官方文檔中,沒有MSChart對象的屬性和方法的描述。該組件非常複雜,需要進行很多設置,因此您必須花一些時間通過實驗找到合適的屬性。在此示例中,我展示了使用最小設置快速創建圖形的最簡單方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章