logo Teechart应用技术详解——快速图表制作工具 我也要发布文档

第七章之交叉表图表应用


Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一共汉化2000个词条(17000个单词),汉化文档35000个单词,包括控件设计时与运行时的界面汉化以及控件使用向导文档的汉化,总汉化90%以上!

TeeChart for .NET中文版让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。TeeChart for .NET中文版具有易上手,使用方便,稳定性好,性价比高,价格优惠等优势,并且针对Web应用提供无限制服务器分发授权方式,非常有利于产品集成。

点击下载TeeChart for .NET最新试用版


交叉表图表应用(Cross Tab Charts)

所谓交叉式图表是指在程序运行中可以对一个数据库表中的两个字段的值进行分组求和或计数,利用该功能使得图表的显示动态交叉进行。这里仍以Delphi7自带的数据库DBDEMOS的定单表Orders.db为例说明。

实例组件属性设置

实例设计阶段的界面如下图所示,组件属性设置如下表所示。在这个例子中有两个最关键问题:一是如何设置交叉源;二是如何在系统运行中动态切换分组。前者可在程序设计阶段实现,也可在程序运行阶段实现。在设计阶段可以通过图表编辑器在Series选项卡的DataSourc选项卡中手动设置,也可在对象观察窗口Object Inspector中实现。

交叉式图表演示设计阶段界面

交叉式图表演示有关属性

组件 属性 设定值 说明
TDBChart Name
DBChart1
图表组件
TBarSeries Name
Series1

Datasource DBCrossTabSource1 序列的数据源是由组件DBCrossTabSource提供
ParentChart DBChart1 表示该序列属于DBChart1组件
TTable Name Table1
数据库别名,Delphi自带数据库
DatabaseaName DBDEMOS
TableName Orders.db 有关定单信息的表
TDataSource Name DataSource1

为DBNavigator提供数据源

为DBGrid提供数据源

DataSet Table1
TDBGrid Name DBGrid1 用于显示定单信息
DataSource DataSource1
TDBNavigator Name DBNavigator1 数据导航
DataSource DataSource1
Series1
DataSource
参看下图
参看在图表编辑器中设置
TDBCrossTableSource Name
DBCrossTableSource1

DataSet
Table1
交叉源
Formula gfSum
计算公式
GroupField Terms 分组字段
LabelField ShipVIA 序列显示时横轴标签
ValueField AmountPaid 计算使用字段
Series Series1
显示计算结果的序列
Active false 交叉源初始状态为关闭
TRadioGroup
Name
RadioGroup
计算选择(计数、求和)
Item 计数,求和
ItemIndex
1
TCheckBox Name
CheckBox1
打开数据库
Checked
false
TButton Name
Nutton1
退出按钮
Caption
&E.退出


在图表编辑器中设置

在程序设计阶段,双击图表组件DBChart1打开图表编辑器,然后选择Series选项卡中的DataSource选项卡,按如下图所示进行设置。在这里,当选择组合框的CrossTab之后,就需要设置使用的数据集、计算种类(求和、计数)、计算字段、分组字段和标签字段以及是否大小写敏感、是否打开表等。

在设计阶段设置Data Source

在对象观察窗口设置

实际中,当在图表编辑器中选择CrossTab之后,系统就自动在窗口放置了TDBCrossTabSource组件。在选中该组件后,在对象观察窗口就可看到需要设置的一些属性了如下图所示。在这里要注意领会计算字段、分组字段、标签字段以及计算公式等属性的含义。可以看出,有了TDBCrossTabSource组件后,不仅可以使用户在设计阶段改变分组、计算、标签字段的选择,更为在程序运行中动态地改变分组、计算、标签字段和计算公式提供了方便。


在Object Inspector窗口设置交叉表属性

编写代码

在CheckBox1组件的OnClick事件中根据选择确定DBCrossTabSource1的打开与关闭,且处于关闭状态时计算公式选择框和交换按钮Button是不可用的,代码如下:

procedure TForml.CheckBox1Click(Sender: TObject);
begin
DBCrossTabSource1.Active:=CheckBox1, Checked;
RadioGroup1.Enabled:=CheckBox1.Checked;
Button2.Enabled:=CheckBox1.Checked;
end;

在RadioGroup1组件的OnClick事件中根据选择确定分组计算公式,在公式改变后立即激活组件起到刷新数据的效果:

procedure TForm1.RadioGroup1Click(Sender:TObject);
begin
case RadioGroup1.ItemIndex of
0:DBCrossTabSource1.Formula:=gfCount;
1:DBCrossTabSource1.Formula:=gfSum;
end;
DBCrossTabSource1.ValueField:='AmountPaid';
DBCrOssTabSource1.Active:=TRUE;

在Button按钮的OnClick事件中加入下列代码,用于实时切换分组方式。由于采用按钮进行切换,所以需要设置一个逻辑变量进行区分,代码如下:

procedure TForm1.Button2Click( Sender:Tobject);
begin
if not bswap then
begin
DBCrossTabSource1.GroupField:='Terms';
DBCrossTabSource1.LabelField:='ShipVIA';
bswap:=not bswap;
end
else
begin
DBCrossTabSource1.GroupField:='ShipVIA';
DBCrossTabSource1.Labeleield:='Terms';
bswap not bswap;
end;
DBCrossTabSource1.ValueField :='AmountPaid';
DBCrossTabSource1.Active:=TRUE;
end;

本例运行阶段的界面如图1所示,图2是求和计算分组字段交换后的效果图。

图1:

交叉式图表应用举例运行时的效果

图2:

求和计算时分组字段交换后的效果比较

相关资料推荐:

上一章:主明细式图表应用

下一章:TeeChart Pro ActiveX组件的安装

Teechart 2019资源合集

=====================================

TeeChart for .NETTeeChart for JavaScript/HTML5TeeChart for Xamarin.Android等均已加入在线订购,现在抢购可立享优惠!

关注慧聚IT微信公众号???,了解产品的最新动态及最新资讯。

慧聚IT