- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[Dephi透视表
5.4 透视图表决策分析方案
对数据表中的数据进行分析的时候,有时需要对数据表中的单个字段进行统计,或者是对数据表中的多个字段进行统计,当对数据进行统计后,还可以以图表的形式进行显示。本节将用透视图表来实现以上的功能。
5.4.1 动态透视表分析方案
动态透视表是将透视表的制作过程保存在存储过程中,通过参数传递的形式,将表名及生成透视表的相关字段名传到存储过程中,生成指定样式的透视表。本节主要是利用制作的存储过程,生成多种样式的透视表。
1.方案分析
本方案可以将指定的数据表通过存储过程,动态生成所需要的透视表,并且可以在透视表中选择列中相应的字段,对透视表中的数据进行设置。下面是动态透视表分析方案的制作流程图,如图5.44所示。
图5.44 动态透视表分析方案的制作流程图
2.实施过程
在对数据表进行分析时,可以将数据表中的字段以行、列、数据、统计方式的格式来制作一个透视表,该透视表可以可以根据各列的信息,再次对透视表中的信息进行过滤。下面以生产表为例,来实现一个透视表的制作过程。
实例位置:光盘\mr\5\5.4\5.4.1\01
在如图5.45所示的“产品生产表”窗体中,通过单击“透视表”按钮,可以弹出“制作透视表”窗体,如图5.46所示。
图5.45 产品生产表
图5.46 制作透视表
在该窗体中,可以设置透视表的页、行、列、数据和统计方式,其中页字段是可选字段,其他的都是必选的,在选择完条件后,单击“生成”按钮,将在“产品生产表”窗体中的表中显示透视表的信息,在单击透视表的列标题时,将在右边的文本框中显示当前列的信息,并通过对列信息的选择,可以对透视表中的数据进行筛选如图5.47所示。
图5.47 生成透视表并进行过滤
程序各窗体中相关组件说明,如表5.29所示。
表5.29 各窗体的相关组件
对象名
对象类型
属性
值
DataModule1
TDataModule
Name
DataModule1
ADOConnection1
TADOConnection
ConnectionString
连接数据库
ADOQuery1、ADOQuery2
TADOQuery
Connection
ADOConnection1
DataSource1
TDataSource
DataSet
ADOQuery1
Form1
TForm
Caption
产品生产表
Panel1
TPanel
Align
alBottom
BitBtn1、BitBtn2
TBitBtn
Anchors
[akRight,akBottom]
Panel2
TPanel
Align
alRight
CheckListBox1
TCheckListBox
alClient
DBGrid1
TDBGrid
Form2
TForm
Caption
制作透视表
Image1
TImage
Picture
添加一个图片
本实例主要是对MR_Distribution数据库中的tb_AppearTab数据表进行透视表操作。
在制作本实例前,首先要制作一个存储过程Pro_ClairvoyantTab,该存储过程不但可以生成透视表,还可以根据透视表中的相关信息,对已生成的透视表进行过滤。完整代码如下:
定义向存储过程所传递的参数。
CREATE PROCEDURE Pro_ClairvoyantTab
@TableName as varchar(50), --实现透视表依据的表名
@PageFieldByColumn as varchar(50), --页字段依据的列名
@PageFieldValue as varchar(50), --用来控制透视表页字段的数据
@RowFieldByColumn as varchar(50), --行字段依据的列名
@RowFieldValue as varchar(200), --用来控制透视表行字段的数据
@ColumnFieldByColumn as varchar(50), --列字段依据的列名
@ColumnFieldValue as varchar(200), --用来控制透视表列字段的数据
@DataFieldByColumn as varchar(50
文档评论(0)