报表生成器FastReport .Net用户指南:带图表的报告(图表编辑器)

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。

FastReport.NET官方版下载icon-default.png?t=N7T8https://www.evget.com/product/1861/download

"Chart"对象包含许多可在图表编辑器中处理的设置。要调用编辑器,请双击 "Chart"对象:

fastreport

处理系列

 "Chart "对象可以包含一个或多个系列。系列列表显示在编辑器中:

fastreport

要添加新系列,请按 "Add... "按钮。您将看到 "Gallery "对话框:

fastreport

择需要的类别,然后选择 - 需要的系列类型。如果想将序列放在自己的图表区域中,请选中 "Add new chart area for this series "复选框。对于某些系列类型(如饼图、圆图、金融图、金字塔图),无论复选框状态如何,都会自动添加新的图表区域。

要删除序列,请按 "Delete "按钮。要更改序列顺序,请使用 "Up"和 "Down "按钮。

设置外观

使用图表编辑器,您可以设置每个图表元素的外观。所有属性(超过 100 个)分为几类。其中一些是 "Chart "对象特有的,而另一些则系列的一部分。

如果从系列列表中选择 "Chart "对象,则会看到以下属性页面:

fastreport

  • "Appearance" - 图表的边框和填充;
  • "Chart area" - 边框、填充、阴影;
  • "3D" - 3D 设置;
  • "Axes"- 设置轴的外观、标题、标签、网格、标记、自定义标签和条带;
  • "Legend" --图例样式、停靠、边框、填充、阴影和字体;
  • "Title"- 标题、停靠、边框、填充、阴影和字体的样式。

如果从系列列表中选择系列对象,则会看到以下属性页面:

fastreport

  • "Appearance"--针对所选系列类型的一些特定设置;
  • "Fill & border"--系列值的填充和边框;
  • "Labels"--系列标签。您可以选择标签类型、字体、颜色和填充;
  • "Markers"--系列标记。可以选择标记类型、颜色和边框。
连接图表和数据

您可以通过多种方式在图表中填充数据:

  • 使用数据源。为 "Chart "对象指明数据源,并将每个系列连接到数据列。
  • 每个系列使用固定。
  • 使用脚本为对象填充数据。

要将图表连接到数据源,请按照以下步骤操作:

  • 在系列列表中选择 "Chart "对象;
  • 切换到 "Data"选项卡;
  • 选择数据源:

fastreport

  • 设置数据筛选表达式。该过滤器将应用于所有图表系列;
  • 在系列列表中选择系列;
  • 切换到 "Data"选项卡;
  • 为每个系列值选择数据列。根据系列类型,它可能有两个或多个值。大多数系列类型都有两个值 - X 值和 Y 值:

fastreport

需要时,设置数据筛选表达式。该过滤器将只应用于当前系列;
在 "Color "控件中,您可以指明返回颜色值的数据列。
您也可以为系列提供值列表。在这种情况下,不需要数据连接。请在系列列表中选择一个系列,然后切换到 "Values "选项卡。在表中填入数值:

fastreport

数据排序

默认情况下,图表对象按自然顺序显示数据。您可以更改排序顺序;要更改排序顺序,请从系列列表中选择系列,然后切换到 "Dataprocessing "选项卡:

fastreport

您可以选择其中一种排序模式--不排序、按 X 值排序和按 Y 值排序。

数据分组

当序列中的数据包含多个相同的 X 值时,我们会遇到一个问题。例如,用于演示图表的 MatrixDemo 表中有以下数据:

NameYearMonhItemsSoldRevenue
Andrew Fuller2002121800
Andrew Fuller19991021900
Andrew Fuller19991122000
Andrew Fuller2000222100
Janet Leverling19991033000
Janet Leverling19991133100
Janet Leverling2000333200
...

如果我们尝试根据这些数据制作图表(例如,员工的销售额--将 X 值设置为 Name 列,Y 值设置为 ItemsSold 列),我们将得到以下错误结果:

fastreport

在这种情况下,我们需要将相同的雇员分组为一个值。为此,请在系列列表中选择系列,然后切换到 "Data processing"选项卡。选择分组类型--"X 值",并选择 "Sum "作为分组函数:

fastreport

所有相同的员工将被归类为一个值,他们的销售额将被汇总。您将看到以下结果:

fastreport

收集数据

该数据处理工具可将多个序列值合并为一个值。您可以选择以下算法之一:

AlgorithmDescription
TopN所有其他值都会被收集并显示为 "others "值(您可以为该值选择标签)。
BottomN如果未设置收集值的文本,则不显示该值。
Less than value收集小于指定值的系列值,并显示为 "others"值。
Less than percent收集小于指定百分比的系列值,并显示为 "others "值。
Greater than value大于指定值的系列值被收集并显示为 "others "值。
Greater than percent收集大于指定百分比的系列值,并显示为 "others "值。

若显示前 5 个值,可按以下方式设置系列:

fastreport

您将得到以下结果:

fastreport

Exploding the values

对于饼型序列,可以对某些值进行Explod处理。请在系列列表中选择系列,然后切换到 "Data processing "选项卡:

fastreport

您可以使用以下一种爆炸类型:最大值、最小值和特定值。如果选择后一种模式,则必须指定要爆炸的值。它可以是任何表达式(详见 "表达式 "章节)。例如,如果要explode Andrew Fuller's value,请使用以下表达式:

 
"Andrew Fuller"

您将得到以下结果:

fastreport

设置自动系列

您可以对图表进行设置,使其能够根据数据源中的数据自动创建新系列。要设置自动序列,请执行以下操作:

  • 创建一个序列并设置其属性。该系列将作为所有新系列的模板;
  • 选择"Chart" 对象并设置自动序列数据列。该列的值将是新系列的名称。如果还没有具有此类名称的系列,则将添加新系列。

让我们演示一下如何创建自动序列。我们将使用 MatrixDemo 数据表获取员工每年销售额的图表。一个序列代表一年。具体操作如下

  • 将图表连接到 MatrixDemo 数据源;
  • 创建一个序列并设置其数据:

fastreport

在 "Data processing "选项卡上,选中 "Group by X value "复选框。这是必要的,因为我们的数据源中有多个同名雇员;
在系列列表中选择图表,并在 "Data "选项卡上设置其自动系列列:

fastreport

  • 我们的系列值数量可能不同(因为有些员工在这一特定年份没有销售额)。要对齐序列值,请选中 "Align X values "复选框。

我们将得到以下结果:

fastreport