TeeChart Pro VCL/FMX教程之访问数据库(文长,建议先码后看)

    TeeChart Pro VCL/FMX是一款主流的图表制作工具。提供了数百种用于可视化的2D、3D图形样式、56种数学、统计和金融函数,以及不限数量的坐标轴和30种调色板组件。TeeChart Pro VCL/FMX教程将会以连载的形式持续为大家带来TeeChart Pro VCL/FMX的使用方法。

点击下载TeeChart Pro VCL/FMX最新试用版 


    本篇教程为大家带来的是TeeChart Pro VCL/FMX中数据库的访问这一节,主要分为以下几个部分:

  1. 介绍

    在设计时连接到TData组件 

    在运行时连接到TData组件

  2. 扩展功能

    Single Record

    摘要分组数据

  3. Events

    OnProcessRecord事件


    介绍

    在设计时连接到数据源——将TeeChart控件连接到数据库可以在设计时使用图表编辑器完成,并在运行时仅仅使用几行代码就完成。使用TDBChart组件, TDBChart安装在Component Palette的Data Controls部分。TDBChart继承了所有TChart属性和方法,关键的区别在于它还包括访问Borland的数据库引擎,从而增加了使用此组件编译项目的大小,一般除非是直接连接到数据源,否则建议使用TChart组件。 

    TeeChart连接到Borland的所有TData组件,包括TTable,TQuery和TClientDataset。连接到 Tables或者Queries 时,不必使用TDataset组件,因为TeeChart将直接建立连接。 

    可以使用图表编辑器将任何Series连接到Tables或者Queries。每个系列都可以在相同或不同的数据库中连接到相同或不同的Tables或者Queries。 

    此设计为您提供了将图表连接到数据库的完全灵活性,因为您不仅限于一个数据库,也不仅限于一个Tables或者Queries,还可以在设计时检索数据,以便在开发期间查看实际数据。 

    在设计时连接到TData组件 

    以下步骤假定您已在表单上放置了TTable,TQuery或TClientDataset。 

    对于此示例,您可以在安装TeeChart Pro期间将TTable连接到安装为ODBC v3 DSN的TeeChart Pro数据库,并选择Employee Table。    

    在设计时,将Series连接Datasource所需的步骤是: 

DB2.png

    每个Series都有一个Label字段(应该是String或Char类型)和一个值字段(Bar Series的Bar字段),它应该是整数,浮点数或日期时间 字段类型。

    在此示例中,我们从Employee表中为Series标签选择LASTNAME字段,为Bar point值选择了SALARY数字字段。

    请参见上图中的DataSet组合框。 此组合框显示您创建的可用的Table or Query。 您可以进入此对话框并选择其他数据集,或单击Edit..按钮进行编辑

    现在我们已经分配了适当的字段,是时候查看结果了。

  1. 在表格上放置一个TDBChart控件。

  2. 双击TDBChart控件以显示图表编辑器。

  3. 将系列添加到图表控件(例如条形系列。)

  4. 单击Series选项卡和DataSource选项卡。

  5. 现在单击组合框并选择Dataset 此时您将看到此屏幕:

    datasource1.gif

  6. 选择Dataset...组合框以显示可用数据源列表:

  7. 在Combobox中选择一个项目,可以将Series连接到指定的Table or Query

  8. 在这个例子中,我们将Table1连接到TeeChart Pro Database和Employee表,如上图所示。

        选择定义检索Table or Query中的一些字段并将其添加到Series中。 这是通过图表编辑器完成的,是为了每个Series部件选择适当的字段。请参见下图,显示图表编辑器DataSource选项卡,其中包含我们的示例选定字段。

    db3.png

  9. 单击Close按钮以关闭图表编辑器并返回编程环境。

此时,TChart控件将尝试打开所选的Datasource数据的Table or Query,并将开始检索记录并向所选Series添加值。

在我们的示例中,您将在设计时看到以下图表:

ODBC4.gif

    现在,如果运行项目,Chart将从Datasource检索所有记录,并将向Series添加值。 在运行项目之前,您将看到在设计时看到的相同图表。

    最后运行应用程序。

在运行时连接到TData组件

    上述设计时步骤可以用几行代码以编程方式再现。这使您可以更自由地控制数据库操作。

    在新项目和新表单上重复上面的前3个步骤。

    每个Series都有DataSource属性,它确定数据库值的来源(Table or Query),以及YValues.ValueSource和LabelsSource属性,以指定我们要绘制的字段。

    LabelsSource和YValues.ValueSource属性的语法是:

Series1.YValues.ValueSource := 'SALARY';
Series1.XLabelsSource := 'LASTNAME';

Series DataSource的语法是:

Series1.DataSource := Table1;

//or

Series1.DataSource := Query1;

    建议您按顺序设置上述属性。首先设置XLabelsSource和YValues.ValueSource,然后设置DataSource属性。

    如果数据库值已更改,并且您想要refresh连接并再次检索值,则应执行以下操作:

Series1.CheckDataSource;

    CheckDataSource方法将强制Series再次检索所有记录。

    所有系列都有XValues.ValueSource属性。此属性仅用于XY图表(当您为每个点设置X坐标时)。如果TeeChart无法找到数据源,或者无法打开您指定的表或SQL Query,则会引发错误。请记住将数据源设置为Active。

扩展功能

Single Record

    Single Record数据图表允许从数据源记录中水平检索数据。 从TeeChart Editor数据源组合框中选择Single Record选项。

例:

single_r.png

    上面的定义从TeeChart示例Stock表中获取第一条记录,并将Open,High,Low和Close值绘制为一个系列的不同点。

摘要分组数据

    TeeChart数据集中连接检索的数据可以按数据集的不同字段来分组,这是为了通过所选字段创建摘要。 从TeeChart Editor数据源组合框中选择Summary

例:

summary.png

    上面的选择绘制了Bar Series of Delphi / C ++ Builder的Orders表的AmountPaid字段,再按客户编号CustNo对结果进行分组。

    如果数据集包含日期时间字段,您可以从第一个Group by组合框中选择分组条件作为DateTimeStep。 以下使用Saledate将按季度的平均AmountPaid分组。

例:

summarydate.png

代码如下所示:

  With Series1 do
  Begin
    DataSource:=Table1;

    YValues.ValueSource:='#AVG#AmountPaid';

    XLabelsSource:='#QUARTER#SaleDate';
  end;

Events

OnProcessRecord事件

    TChart控件提供了一个事件,每次检索记录并将其添加到Series时都会调用该事件。此事件是OnProcessRecord,并带有以下语法:

procedure TForm1.DBChart1ProcessRecord(Sender: TCustomDBChart;
  DataSet: TDataSet);
begin
end;

    您可以使用此事件引发静默Abort以停止检索数据。

转载于:https://my.oschina.net/u/4141014/blog/3072822

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值