运行 结果
设计步骤简单说明
把TcxDBPivotGriD拖到窗口,设置DataSource,在TcxDBPivotGriD右击选择Designer,出现如下图
有几个字段就按几次ADD
选择FieldS下的cxDBPivotGrid1FieldX ,在对象 窗口设置好属性,常见的属性有
Area; Caption,FieldName,DataVisibility ;设置好后 单击CLOSE。即可
代码如下
object cxDBPivotGrid1: TcxDBPivotGrid
Left = 0
Top = 0
Width = 762
Height = 488
Align = alClient
DataSource = DataSource1
Groups = <>
TabOrder = 0
ExplicitWidth = 754
ExplicitHeight = 460
object cxDBPivotGrid1Field1: TcxDBPivotGridField
Area = faRow
AreaIndex = 0
IsCaptionAssigned = True
Caption = #35838#31243
DataBinding.FieldName = 'Cname'
Visible = True
UniqueName = #35838#31243
end
object cxDBPivotGrid1Field2: TcxDBPivotGridField
Area = faRow
AreaIndex = 1
IsCaptionAssigned = True
Caption = #23398#29983
DataBinding.FieldName = 'Sname'
Visible = True
UniqueName = #23398#29983
end
object cxDBPivotGrid1Field3: TcxDBPivotGridField
Area = faData
AreaIndex = 0
IsCaptionAssigned = True
Caption = #25104#32489
DataBinding.FieldName = 'score'
DataVisibility = dvCrossAndTotalCells
Visible = True
UniqueName = #25104#32489
end
end
object TestdbConnection: TFDConnection
Params.Strings = (
'ConnectionDef=testdb')
Connected = True
LoginPrompt = False
Left = 269
Top = 377
end
object FDQuery1: TFDQuery
Active = True
Connection = TestdbConnection
SQL.Strings = (
''
'select Student.Sname, dbo.Course.Cname,dbo.sc.score from dbo.SC'
' join dbo.Course on dbo.SC.CID=dbo.Course.CID'
' join dbo.Student on sc.SID=Student.SID'
' ')
Left = 376
Top = 176
end
object DataSource1: TDataSource
DataSet = FDQuery1
Left = 224
Top = 176
end
{--1.学生表
Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表
Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号
--3.教师表
Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名
--4.成绩表
SC(SID,CID,score) --SID 学生编号,CID 课程编号,score 分数
*/
--创建测试数据
create table Student(SID varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10));
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙风' , '1990-05-20' , '男');
insert into Student values('04' , '李云' , '1990-08-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '女');
insert into Student values('06' , '吴兰' , '1992-03-01' , '女');
insert into Student values('07' , '郑竹' , '1989-07-01' , '女');
insert into Student values('08' , '王菊' , '1990-01-20' , '女');
create table Course(CID varchar(10),Cname nvarchar(10),TID varchar(10));
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');
create table Teacher(TID varchar(10),Tname nvarchar(10));
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');
create table SC(SID varchar(10),CID varchar(10),score decimal(18,1));
insert into SC values('01' , '01' , 80);
insert into SC values('01' , '02' , 90);
insert into SC values('01' , '03' , 99);
insert into SC values('02' , '01' , 70);
insert into SC values('02' , '02' , 60);
insert into SC values('02' , '03' , 80);
insert into SC values('03' , '01' , 80);
insert into SC values('03' , '02' , 80);
insert into SC values('03' , '03' , 80);
insert into SC values('04' , '01' , 50);
insert into SC values('04' , '02' , 30);
insert into SC values('04' , '03' , 20);
insert into SC values('05' , '01' , 76);
insert into SC values('05' , '02' , 87);
insert into SC values('06' , '01' , 31);
insert into SC values('06' , '03' , 34);
insert into SC values('07' , '02' , 89);
insert into SC values('07' , '03' , 98);}