图表
# 图表
# 1. 创建图表
FastReport可以将图表插入报表中。使用的图表对象来源于TeeChart库。我们用简单的图表来制作一份示例报表。使用以下SQL生成数据集并将其引入。
SELECT 5 AS Num,'衬衫' AS Name
UNION
SELECT 25 AS Num,'羊毛衫' AS Name
UNION
SELECT 36 AS Num,'雪纺衫' AS Name
UNION
SELECT 15 AS Num,'裤子' AS Name
UNION
SELECT 10 AS Num,'高跟鞋' AS Name
UNION
SELECT 20 AS Num,'袜子' AS Name
2
3
4
5
6
7
8
9
10
11
打开报表设计器,并在报表-数据...
对话框中连接数据源将图表对象添加到报表设计页面,并将其大小设置为18厘米宽x 8厘米高。双击打开其对象编辑器。
图示说明如下:
- 图表结构; 图表可以包含一个或多个系列。
- 对象检查器,显示在窗口中选择的元素的属性,在此处设置图表属性。
- 用于连接系列和数据的选项区域一旦选择了区域1中的系列,它就会被激活。
首次打开时,图表编辑器将显示在上图所示的图像中。第一个任务是向图表添加一个或多个系列(在我们的示例中只是一个系列)。通过单击添加按钮,并在库中选择饼图来执行此操作:
垂直箭头更改列表中序列的顺序。要更改系列的名称,请选择系列,然后再过一秒钟再次单击它(请注意,这不是双击)。
有许多不同类型的系列可供选择。添加一系列后,选项区域3变为活动状态。在此处指定应使用哪些数据绘制图表。首先,让我们在“DataSet”下拉列表中选择数据集。然后使用各自的下拉列表选择Label
和Pie
字段,如下所示:
单击[确定]
关闭编辑器并预览报表:
本报表中可以改进哪些内容?按降序对群体进行排序会很不错。再次打开图表编辑器,在图表结构中选择系列,并将排序顺序从无
更改为递减
:
如果我们现在预览报表,我们会看到图例表中的数据已按降序排序。
# 2. 限制图表值的数量
在设计图表时,如果有许多较小数值的项目会导致图表变得零碎,FastReport允许您限制图表中显示的值的数量。超过设定数量的所有值都会显示为单个复合值,由所有这些值的总和组成。
比如我们的例子中有6个数值,如果设置为只显示前四个,打开图表编辑器,将限制设置为3:
如果前N名的值
设置为零,则没有限制。应在前N名的标题
中输入名称,以便在图例列表中正确标识聚合值。排序模式无关紧要,因为默认情况下值始终按降序排序。该报表将如下所示:
# 3. 其他设置
让我们看一下控制图表外观的一些有用设置。只能通过图表编辑器的对象检查器访问这些设置。
在图表结构中选择“图表”时,这些基本属性可用:
Gradient
:渐变背景填充的设置。启用Gradient.Visible
属性以显示渐变效果。Legend
:图例列表的设置。可以通过Legend.Visible
属性隐藏List,并通过Legend.Alignment
属性设置其位置。
选择系列后,可以使用以下属性:
ColorEachPoint
:使用不同的颜色为每个值着色。ExplodeBiggest
:开始处使用最大值(仅适用于饼图)。Marks
:图表标记外观的设置。ValueFormat
:格式化值的行。
关于图表的其他功能说明可以参考TeeChart说明。
# 4. 手动输入值的图表
在前面的示例中,我们使用数据库表中的数据创建了一个图表。也可以从手动输入的数据创建图表。如果图表很小,这种方法很方便。让我们用一个简单的例子演示它是如何工作的。在报表设计页面上放置图表并打开图表编辑器。添加一系列“条形图”类型并设置这些属性,使用分号分隔各个值。
结果图表是:
# 5. 通过脚本创建图表
让我们看看如何使用脚本构建上一个图表。在图表编辑器中将Label和Y字段留空。在报表脚本中输入以下代码:
begin
Chart1.SeriesData[0].XSource := 'Jan;Feb;Mar;Apr';
Chart1.SeriesData[0].YSource := '31;28;31;30';
end.
2
3
4
在这种情况下,SeriesData[0]
允许我们为图表中的第一个系列设置参数。如果图表有多个系列,则用SeriesData[1]
等引用它们。