Teechart图表应用技术详解—第七章之如何与任意数据集相连
Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一共汉化2000个词条(17000个单词),汉化文档35000个单词,包括控件设计时与运行时的界面汉化以及控件使用向导文档的汉化,总汉化90%以上!
TeeChart for .NET中文版让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。TeeChart for .NET中文版具有易上手,使用方便,稳定性好,性价比高,价格优惠等优势,并且针对Web应用提供无限制服务器分发授权方式,非常有利于产品集成。
TeeChart pro不仅可以以手工( Manual)、随机( Random)、函数( Function)、文本文件( Text File)、XML文件( XML File)、交叉表( CrossTab)的形式为序列( Series)提供数据源,当采用Delphi7数据控制组件板( Data Controls)上的组件TDBChart时,序列的数据源还可以是交叉表( CrossTab)、单个记录( Single Record)、摘要( Summary)、数据集( DataSet)等。 TDBChart源自TChart组件,它继承了TChart的所有特性,当图表的序列连接到TDBChart时,序列中就增加了Data Source属性,如下图所示。
序列的数据源是由序列( Series)而不是由图表( Chart)确定的,一个数据库图表( TDBChart)中的多个序列可以访问不同的数据源。如果这些序列相互没有关联,可通过设定序列的ParentChart属性实现,也就是说通过ParentChart指定该序列隶属于哪个Chart, Parent Chart属性如下图所示。
创建数据集( Creating the Dataset)
TeeChart可以与不同类型的数据集组件建立连接,如 TTable、 TQuery、 TClientDataset、TADOTable、 TADOQuery等。在连接这些数据集组件时,有些需要一个数据库表名( TTable:TableName),有些需要查询的SQL串( TQuery:SQL)。
序列数据源与数据库表的连接( Connecting Series to a database Dataset)
- 在程序设计阶段
当在图表编辑器中选择一个新的序列时,在Series选项卡中可以看到 Data Source选项卡,这时可以将指定的序列与下拉列表框( ListBox)中的一个数据库表相关联,此时需要对这个数据集给出一个新的定义,如下图所示。
当设置好有关属性以后,TDBChart在程序设计阶段看到的效果和程序执行阶段基本一致,如下图所示。
- 在程序运行阶段
TDBChart中序列的数据源不仅可以在程序设计阶段进行设定,也可以在程序运行锅中通过编写代码的方式进行设定。若设窗体中的数据库表组件为Table1,有Name和Amount两个字段,可以通过下列代码实现程序运行过程中的设定:
Var MySeries:TLineSeries://定义一个 TLineSeries类型的序列MySeries begin MySeries:=TLineSeries.Create( Self );//在内存中创建Myseries实例 With MySeries do begin ParentChart:=DBChart1;//设定序列的ParentChart属性为DBChart1 DataSource:=Table1;//设定序列的DataSource为Table1 XLabelsSource:='Name';//设定序列的XLabelsSource属性为表中Name字段的值 YValues.ValueSource:='Amount';//设定YValues.ValueSource的属性为Amount字段的值
应用实例
下图是该实例设计阶段界面,各组件属性设置如下表所示。值得注意的是组件CheckBox1的Checked属性与Table1的Active属性相对应,Checked属性的True与False确定了数据库表Table1的打开与关闭。
组件 | 属性 | 设定值 | 说明 |
TDBChart | Name |
DBChart1 |
图表组件 |
TTable | Name |
Table1 |
表组件名称 |
DatabaseName | DBDEMOS | 数据库别名,Delphi自带 | |
TableName | animals.dbf | 数据库表明,有关动物表 | |
Active | true | 数据库表初始处于打开状态 | |
TBarSeries |
Name |
Series1 |
序列组件名称 |
Datasource |
Table1 |
设置序列的数据源是Table1 | |
ParentChart |
DBChart1 |
表示该序列属于DBChart1组件 | |
TCheckBox |
Name |
CheckBox1 |
用于控制Table1的打开和关闭 |
Checked |
true |
||
TButton |
Name |
Button1 |
该按钮用于在程序运行时增加序列 |
Caption |
&A.增加序列 |
为了在程序运行期间能够控制数据库表的打开与关闭,需要在 CheckBox1的OnClick事件中加入下列代码:
Table1.Active:=CheckBox1.Checked;
当需要动态即程序运行过程中增加序列时,可在按钮 Button的OnClick事件中加入上面在程序运行阶段中的代码,当单击该按钮后程序界面变换为下图所示的外观,可以看出在图表组件中增加了一个TLineSeries对象MySeries。
相关资料推荐:
上一章:以数据形式导出
下一章:按组摘要与排序
=====================================
现TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在线订购,现在抢购可立享优惠!
关注慧聚IT微信公众号???,了解产品的最新动态及最新资讯。