报表生成器FastReport .Net用户指南:带图表的报告(图表编辑器)
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。
FastReport.NET官方版下载https://www.evget.com/product/1861/download
"Chart"对象包含许多可在图表编辑器中处理的设置。要调用编辑器,请双击 "Chart"对象:
处理系列
"Chart "对象可以包含一个或多个系列。系列列表显示在编辑器中:
要添加新系列,请按 "Add... "按钮。您将看到 "Gallery "对话框:
择需要的类别,然后选择 - 需要的系列类型。如果想将序列放在自己的图表区域中,请选中 "Add new chart area for this series "复选框。对于某些系列类型(如饼图、圆图、金融图、金字塔图),无论复选框状态如何,都会自动添加新的图表区域。
要删除序列,请按 "Delete "按钮。要更改序列顺序,请使用 "Up"和 "Down "按钮。
设置外观
使用图表编辑器,您可以设置每个图表元素的外观。所有属性(超过 100 个)分为几类。其中一些是 "Chart "对象特有的,而另一些则系列的一部分。
如果从系列列表中选择 "Chart "对象,则会看到以下属性页面:
- "Appearance" - 图表的边框和填充;
- "Chart area" - 边框、填充、阴影;
- "3D" - 3D 设置;
- "Axes"- 设置轴的外观、标题、标签、网格、标记、自定义标签和条带;
- "Legend" --图例样式、停靠、边框、填充、阴影和字体;
- "Title"- 标题、停靠、边框、填充、阴影和字体的样式。
如果从系列列表中选择系列对象,则会看到以下属性页面:
- "Appearance"--针对所选系列类型的一些特定设置;
- "Fill & border"--系列值的填充和边框;
- "Labels"--系列标签。您可以选择标签类型、字体、颜色和填充;
- "Markers"--系列标记。可以选择标记类型、颜色和边框。
连接图表和数据
您可以通过多种方式在图表中填充数据:
- 使用数据源。为 "Chart "对象指明数据源,并将每个系列连接到数据列。
- 每个系列使用固定。
- 使用脚本为对象填充数据。
要将图表连接到数据源,请按照以下步骤操作:
- 在系列列表中选择 "Chart "对象;
- 切换到 "Data"选项卡;
- 选择数据源:
- 设置数据筛选表达式。该过滤器将应用于所有图表系列;
- 在系列列表中选择系列;
- 切换到 "Data"选项卡;
- 为每个系列值选择数据列。根据系列类型,它可能有两个或多个值。大多数系列类型都有两个值 - X 值和 Y 值:
需要时,设置数据筛选表达式。该过滤器将只应用于当前系列;
在 "Color "控件中,您可以指明返回颜色值的数据列。
您也可以为系列提供值列表。在这种情况下,不需要数据连接。请在系列列表中选择一个系列,然后切换到 "Values "选项卡。在表中填入数值:
数据排序
默认情况下,图表对象按自然顺序显示数据。您可以更改排序顺序;要更改排序顺序,请从系列列表中选择系列,然后切换到 "Dataprocessing "选项卡:
您可以选择其中一种排序模式--不排序、按 X 值排序和按 Y 值排序。
数据分组
当序列中的数据包含多个相同的 X 值时,我们会遇到一个问题。例如,用于演示图表的 MatrixDemo 表中有以下数据:
Name | Year | Monh | ItemsSold | Revenue |
---|---|---|---|---|
Andrew Fuller | 2002 | 1 | 2 | 1800 |
Andrew Fuller | 1999 | 10 | 2 | 1900 |
Andrew Fuller | 1999 | 11 | 2 | 2000 |
Andrew Fuller | 2000 | 2 | 2 | 2100 |
Janet Leverling | 1999 | 10 | 3 | 3000 |
Janet Leverling | 1999 | 11 | 3 | 3100 |
Janet Leverling | 2000 | 3 | 3 | 3200 |
... |
如果我们尝试根据这些数据制作图表(例如,员工的销售额--将 X 值设置为 Name 列,Y 值设置为 ItemsSold 列),我们将得到以下错误结果:
在这种情况下,我们需要将相同的雇员分组为一个值。为此,请在系列列表中选择系列,然后切换到 "Data processing"选项卡。选择分组类型--"X 值",并选择 "Sum "作为分组函数:
所有相同的员工将被归类为一个值,他们的销售额将被汇总。您将看到以下结果:
收集数据
该数据处理工具可将多个序列值合并为一个值。您可以选择以下算法之一:
Algorithm | Description |
---|---|
TopN | 所有其他值都会被收集并显示为 "others "值(您可以为该值选择标签)。 |
BottomN | 如果未设置收集值的文本,则不显示该值。 |
Less than value | 收集小于指定值的系列值,并显示为 "others"值。 |
Less than percent | 收集小于指定百分比的系列值,并显示为 "others "值。 |
Greater than value | 大于指定值的系列值被收集并显示为 "others "值。 |
Greater than percent | 收集大于指定百分比的系列值,并显示为 "others "值。 |
若显示前 5 个值,可按以下方式设置系列:
您将得到以下结果:
Exploding the values
对于饼型序列,可以对某些值进行Explod处理。请在系列列表中选择系列,然后切换到 "Data processing "选项卡:
您可以使用以下一种爆炸类型:最大值、最小值和特定值。如果选择后一种模式,则必须指定要爆炸的值。它可以是任何表达式(详见 "表达式 "章节)。例如,如果要explode Andrew Fuller's value,请使用以下表达式:
"Andrew Fuller"
您将得到以下结果:
设置自动系列
您可以对图表进行设置,使其能够根据数据源中的数据自动创建新系列。要设置自动序列,请执行以下操作:
- 创建一个序列并设置其属性。该系列将作为所有新系列的模板;
- 选择"Chart" 对象并设置自动序列数据列。该列的值将是新系列的名称。如果还没有具有此类名称的系列,则将添加新系列。
让我们演示一下如何创建自动序列。我们将使用 MatrixDemo 数据表获取员工每年销售额的图表。一个序列代表一年。具体操作如下
- 将图表连接到 MatrixDemo 数据源;
- 创建一个序列并设置其数据:
在 "Data processing "选项卡上,选中 "Group by X value "复选框。这是必要的,因为我们的数据源中有多个同名雇员;
在系列列表中选择图表,并在 "Data "选项卡上设置其自动系列列:
- 我们的系列值数量可能不同(因为有些员工在这一特定年份没有销售额)。要对齐序列值,请选中 "Align X values "复选框。
我们将得到以下结果: