FastReport教程将数据字段添加到矩阵行的方法

Posted wxchuachua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastReport教程将数据字段添加到矩阵行的方法相关的知识,希望对你有一定的参考价值。

下载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教程将数据字段添加到矩阵行的方法的主要内容,如果未能解决你的问题,请参考以下文章

delphi7的fastreport5版本的二维码怎么添加多个内容?

我想在FastReport 中用到两个数据源,可以吗

fastreport打印预览里的数据怎么和dbgrid中查询出来的数据不一样

使用FastReport设计分组汇总及合计报表(图文)

Django:如何根据来自行的数据和来自另一个模型的数据将聚合字段添加到查询集中?

求教delphi 中fastreport报表的问题