彩票走势图

如何把FastReport VCL 6中的数据组生成直观图表

原创|使用教程|编辑:郑恭琳|2018-06-14 15:13:55.000|阅读 677 次

概述:今天,我们将着眼于在Chart对象的上下文中应用Processing属性。使用Processing属性,我们可以使用稍后将要检索的数据。这种机制被称为“延期处理”。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

在文章“如何在FastReport VCL 6中的数据组标题中显示总计”中,我们研究了如何使用Processing属性作为“Text”对象。但是,该属性对于其他对象也很典型:图表、量表和条形码。今天,我们将着眼于在Chart对象的上下文中应用Processing属性。使用Processing属性,我们可以使用稍后将要检索的数据。这种机制被称为“延期处理”。这个想法是,打开Processing属性的对象不像往常一样按优先级顺序处理。当在此对象的ProcessAt属性中选择的事件被触发时,它将被处理。因此,根据报告末尾获得的数据,我们可以在报告的开头创建一个图表。

但是在本文中,我们将看看来自交付FastReport VCL 6的“Expressions processing”演示。我们的目标是显示按大洲分组的各国人口图。

我们来创建一个新的报告。在“Data”选项卡上添加数据源。创建一个到数据库的连接。为此,从工具栏中拖动ADO数据库组件并创建连接:

GroupChart1

交付FR VCL 6具有演示数据库demo.mdb。我们使用它。现在您需要从数据库中获取数据。我们可以在两个组件之间进行选择:ADO Table和ADO Query。第一个允许你选择一个表来显示,第二个是写一个SQL查询。由于数据没有排序,我们将不得不通过排序来编写我们的查询。将ADO查询组件拖到工作区中。在添加的对象的属性检查器中,我们找到SQL。双击打开SQL查询编辑器旁边的字段:

SELECT *
FROM Country
ORDER BY Continent, Name

转到报告页面。在“Data”band上,我们放置字段:

Name,Area,Population。

我们添加“Group header”band。分组条件是Continent字段。另外,添加该组的基础值。这种模式如下:

GroupChart2

在小组页脚中,我们将构成总数:

[SUM(< ADOQuery1."Population">,MasterData1)]

现在将Chart对象添加到“Group Header”band。通过双击它来调用图形的编辑器。添加一个新系列 - Bar - Normal。在系列设置中,选择数据源 - Band源 - MasterData1。对于Label - 值Name,对于Y轴 - Population。

由于非洲大陆可能有很多国家,我们没有能力推导出所有的东西。因此,我们只限于10个值。为此,请将TopN参数设置为10。最后一步是彩色列。在左边你看到该系列的属性检查器。启用ColorEachPoint属性。

GroupChart3

关闭图表编辑器。

现在只需点击它来选择图表对象。在左侧的属性检查器中,您可以找到Processing。展开此属性并查看另外两个:GroupLevel和ProcessAt。第一个对我们不感兴趣,它适用于具有多个嵌套层次的分组。第二个通过对象来指定事件,它将被处理。我们选择paGroupFinished。这意味着我们的图表只会在显示组后显示数据。对于每个组都是如此。我们来看看最终报告模板:

GroupChart4

正如您已经注意到的那样,我将Continent字段和底部的列标题添加到“Group Header”band。接着,让我们运行报告:

GroupChart5

按字母顺序排列的第一组是非洲。该图显示按降序排列的国家/地区的9列。最右边的列显示了其他国家的人数总数,不在图表中。如果您只想显示图表,请将MasterData和“Group Cell”的bands的Visible属性设置为“false”:

GroupChart6

由于Processing属性,数据分组可以直观地显示在图表上。


产品介绍 | 下载试用 | 优惠活动 | | 联系Elyn


6月年中大促

标签:VCL报表解决方案图表报表数据可视化数据分析FastReport

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP