如何基于自定義變量繪制圖表
報表的重要部分是圖形組件,即圖形和圖表。它們使您能夠快速分析數據以評估增長或下降的趨勢,或者只是快速讀取信息。這就是人類感知的工作方式,即圖形信息的接收速度更快。因此,在路標上,您可以立即看到大腦可以理解和解釋的圖像。
圖表基于統計數據。通常,它們是從數據庫中獲取的。但是在某些情況下,有必要根據轉換后的數據構建時間表。例如,使用執行的初始數據計算。一些報表生成器僅允許使用現成的數據源。這不方便,因為轉換數據是執行報表所必需的。
讓我們看一下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對象的屬性和方法的描述。該組件非常復雜,需要進行很多設置,因此您必須花一些時間通過實驗找到合適的屬性。在此示例中,我展示了使用最小設置快速創建圖形的最簡單方法。