彩票走势图

logo FastReport中文文档
文档彩票走势图>>FastReport中文文档>>示例 8.手动填充矩阵

示例 8.手动填充矩阵


在我们看过的所有示例中,矩阵都是自动填充数据的,因为它连接了数据源。矩阵的数据源在 "DataSource "属性中显示。虽然我们没有手动设置该属性的值,但在向矩阵添加数据列时,数据源会隐式出现。

使用脚本可以手动填充矩阵。为此,需要创建矩阵的 "ManualBuild "事件处理程序。在处理程序代码中调用 "AddValue "方法来添加数值。让我们演示如何创建一个矩阵,打印出以下 10х10 表格:

                                       1                                 2                                3                               ...                                        

1                                     1                                                                                                                                               

2                                                                        2                                                                                                            

3                                                                                                          3                                                                          

...                                                                                                                                          ...                                        

请执行以下操作:

  • 在报告中添加一个空矩阵;
  • 将 "Data "窗口中的任意元素放入矩阵的行、列和单元格中。然后双击矩阵元素,调用表达式编辑器,清除表达式;
  • 清除矩阵的 "DataSource"属性。

这些步骤都是为了创建一个只有一行、一列和一个单元格的 "虚拟 "矩阵。因此,矩阵将如下所示:

fastreport

现在建一个 "ManualBuild "事件处理程序。为此,选择矩阵,进入 "Properties "窗口并按下按钮。双击 "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 类型的数组。第一个参数是列值,第二个参数是行值,第三个参数是单元格值。请注意,每个数组中值的数量应符合对象的设置!在我们的例子中,一个对象在列、行和单元格中都有一个级别,因此我们为列、行和单元格分别提供一个值。

运行报告时,我们将看到以下内容:

fastreport

让我们演示如何在矩阵的第 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);
}
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP