示例 8.手動填充矩陣
在我們看過的所有示例中,矩陣都是自動填充數據的,因為它連接了數據源。矩陣的數據源在 "DataSource "屬性中顯示。雖然我們沒有手動設置該屬性的值,但在向矩陣添加數據列時,數據源會隱式出現。
使用腳本可以手動填充矩陣。為此,需要創建矩陣的 "ManualBuild "事件處理程序。在處理程序代碼中調用 "AddValue "方法來添加數值。讓我們演示如何創建一個矩陣,打印出以下 10х10 表格:
1 2 3 ...
1 1  
2 2    
3   3  
...   ...
請執行以下操作:
- 在報告中添加一個空矩陣;
- 將 "Data "窗口中的任意元素放入矩陣的行、列和單元格中。然后雙擊矩陣元素,調用表達式編輯器,清除表達式;
- 清除矩陣的 "DataSource"屬性。
這些步驟都是為了創建一個只有一行、一列和一個單元格的 "虛擬 "矩陣。因此,矩陣將如下所示:
	 
 
	現在建一個 "ManualBuild "事件處理程序。為此,選擇矩陣,進入 "Properties "窗口并按下 按鈕。雙擊 "ManualBuild "事件,FastReport 將創建一個空的事件處理程序。在其中寫入以下代碼:
按鈕。雙擊 "ManualBuild "事件,FastReport 將創建一個空的事件處理程序。在其中寫入以下代碼: 
private void Matrix1_ManualBuild(object sender, EventArgs e)
{
  // Our matrix has one level in row, column and cell.
  // Create 3 arrays of object[] type, each with one element 
  // (per number of levels).
  object[] columnValues = new object[1];
  object[] rowValues = new object[1];
  object[] cellValues = new object[1];
  for (int i = 1; i <= 10; i++)
  {
    // Filling arrays
    columnValues[0] = i;
    rowValues[0] = i;
    cellValues[0] = i;
    // Adding data into the matrix
    Matrix1.AddValue(columnValues, rowValues, cellValues);
  }
}
在處理程序中,應使用 "Matrix "對象的 "AddValue "方法來填充數據。該方法有三個參數,每個參數都是 System.Object 類型的數組。第一個參數是列值,第二個參數是行值,第三個參數是單元格值。請注意,每個數組中值的數量應符合對象的設置!在我們的例子中,一個對象在列、行和單元格中都有一個級別,因此我們為列、行和單元格分別提供一個值。
運行報告時,我們將看到以下內容:
 
 
讓我們演示如何在矩陣的第 7 列和第 3 行的交叉點上添加數值 "21"。為此,請按以下方式修改代碼:
private void Matrix1_ManualBuild(object sender, EventArgs e) {
  object[] columnValues = new object[1];
  object[] rowValues = new object[1];
  object[] cellValues = new object[1]; for (int i = 1; i <= 10; i++)
  {
    columnValues[0] = i;
    rowValues[0] = i;
    cellValues[0] = i;
    Matrix1.AddValue(columnValues, rowValues, cellValues);
  }
  columnValues[0] = 7;
  rowValues[0] = 3;
  cellValues[0] = 21;
  Matrix1.AddValue(columnValues, rowValues, cellValues);
}
                
            
 QQ交談
QQ交談 在線咨詢
在線咨詢 
                 
                
 渝公網安備
            50010702500608號
渝公網安備
            50010702500608號
             
            
 客服熱線
客服熱線