1. 程式人生 > >【FastReport教程】將數據字段添加到矩陣行的方法

【FastReport教程】將數據字段添加到矩陣行的方法

例子 target while rod 運行 插入數據 records 數據集 row

下載FastReport.Net最新版本

在本文中,我們將介紹創建從報表的腳本代碼填充的動態矩陣的方法。該矩陣的特點是,除了從腳本添加的數據外,我們還將使用文本對象在報表單元格中插入數據字段。

假設您創建了一個具有可變列數的矩陣,這將根據任何條件添加,但您擁有的某些數據是不變的。他們總是被填滿。將這些數據字段簡單地放在矩陣中會很好,剩下的單元格應該從代碼中填充。盡管矩陣數據的填充僅以兩種方式提供(從代碼或自動,數據字段),我們將匹配它們。

實際上,該技術非常簡單。數據字段只是作為單獨的文本對象插入到單元格中。但是,這還不是全部。將數據添加到報表中的矩陣時,必須添加數據集中的行號。

我們來看看這個例子。 創建報表並將矩陣添加到“Data”區域。連接數據源-來自交付的演示數據庫Employees表。 矩陣模板如下所示:

技術分享圖片

在值為2的單元格中,我們添加了一個文本對象。在其中,選擇Employees.LastName字段。這正是我們上面所說的“static”字段。

技術分享圖片

為矩陣創建AfterData事件處理程序。

private void Matrix1_AfterData(object sender, EventArgs e)
 {
 DataSourceBase rowData = Report.GetDataSource("Employees"); // we get the data source Employees.
 Matrix1.DataSource = rowData; // assign it to the DataSource matrix property 
 
 rowData.Init(); // initialize the data source
 // we go through all records of the data source
 while (rowData.HasMoreRows)
 { 
 Matrix1.Data.AddValue(new Object[] {"Phone" }, new Object[] { (string)Report.GetColumnValue("Employees.City"), (string)Report.GetColumnValue("Employees.FirstName")}, new Object[] {(string)Report.GetColumnValue("Employees.HomePhone") }, Report.GetDataSource("Employees").CurrentRowNo); // add another record
 rowData.Next(); //get the next record
 }
 }

從評論中可以清楚地看到,當您添加數據字符串時,我們定義了Phone的標題。然後我們按順序插入數據:城市,名稱和電話。而且,我們需要傳輸數據行號以插入當前數據記錄中的姓氏。 現在運行報表:

技術分享圖片

如您所見,您可以使自己更容易,而不是在報表腳本中添加所有必要的數據,而只需使用文本對象將它們放在矩陣模板中。

【FastReport教程】將數據字段添加到矩陣行的方法