首页 > DevXpress 控件: 第一篇: 将 Master_Details 关系进行到底--XtraPivotGridControl控件

DevXpress 控件: 第一篇: 将 Master_Details 关系进行到底--XtraPivotGridControl控件

. 控件说明: XtraPivotGridControl;数据控件

 

 

. 控件特点:

1. 支持行, 列字段拖动, 对调

   支持行, 列字段的添加, 移除

   支持数据字段的添加, 移除, 对调

2. 支持以行, 列字段排序

  支持以过滤字段排序

3. 支持行, 列字段过滤                                          

4. 支持行, 列字段的归类, 即形成父子层

横向和竖向同时形成树结构, 可收缩展开

 

.测试数据: 1.数据库: sqlserver2000; Norwind

     2.关联表: Customers; Orders; Order_Details; Products;

     3.DevExpress 版本: V8.1

 

. 运行截图:

1.       行字段: 客户名称;订单号

列字段: 产品名称

数据字段: 商品单价;购买数量

过滤字段: 客户公司名称;所签合同名;订购日期;截止日期;提货日期

 

 2. 以客户名称进行过滤

 

3.   拖动行字段和列字段(此处演示对调)

产品名称作为行, 客户名称作为列显示

同时将过滤区的字段 订购日期作加入列中

这样重构树: 客户名称à订购日期

数据字段移除商品单价, 只保留购买数量

 

 

. 程序代码

1. 此处全部以 RunTime 进行设计

2. 绑定数据源:

(1):selectSql:

 this.sqlstr = "select a.*, b.*, c.*, d.* from Orders a inner join Order_Details b on a.OrderID=b.OrderID "

+ " inner join Customers c on a.CustomerID=c.CustomerID inner join Products d on b.ProductID=d.ProductID;";

(2): DataSource ; DataMember;

this.pivotGridControl1.DataSource = this.database.RunReturnDataSet(this.sqlstr);

this.pivotGridControl1.DataMember = this.database.dataSet.Tables[0].TableName;

3.      运行时添加字段

子逸制作--动态添加字段

///

/// 给消费链添加添加字段

///


private void AddOrdersColumns()

{

//Customers表

PivotGridField customerID = new PivotGridField();

customerID.FieldName
= "CustomerID";

customerID.Caption
= "客户名称";

customerID.Area
= DevExpress.XtraPivotGrid.PivotArea.RowArea;



PivotGridField companyName
= new PivotGridField();

companyName.FieldName
= "CompanyName";

companyName.Caption
= "客户公司名称";

companyName.Area
= DevExpress.XtraPivotGrid.PivotArea.FilterArea;

companyName.Width
= 150;



PivotGridField contactTitle
= new PivotGridField();

contactTitle.FieldName
= "ContactTitle";

contactTitle.Caption
= "所签合同名";

contactTitle.Area
= DevExpress.XtraPivotGrid.PivotArea.FilterArea;





//Orders表

PivotGridField orderID = new PivotGridField();

orderID.FieldName
= "OrderID";

orderID.Caption
= "订单号";

orderID.Area
= DevExpress.XtraPivotGrid.PivotArea.RowArea;



PivotGridField orderDate
= new PivotGridField();

orderDate.FieldName
= "OrderDate";

orderDate.Caption
= "订购日期";

orderDate.Area
= DevExpress.XtraPivotGrid.PivotArea.FilterArea;



PivotGridField requiredDate
= new PivotGridField();

requiredDate.FieldName
= "RequiredDate";

requiredDate.Caption
= "截止日期";

requiredDate.Area
= DevExpress.XtraPivotGrid.PivotArea.FilterArea;



PivotGridField shippedDate
= new PivotGridField();

shippedDate.FieldName
= "ShippedDate";

shippedDate.Caption
= "提货日期";

shippedDate.Area
= DevExpress.XtraPivotGrid.PivotArea.FilterArea;



//OrderDetails

PivotGridField unitPrice = new PivotGridField();

unitPrice.FieldName
= "UnitPrice";

unitPrice.Caption
= "商品单价";

unitPrice.Area
= DevExpress.XtraPivotGrid.PivotArea.DataArea;





PivotGridField Quantity
= new PivotGridField();

Quantity.FieldName
= "Quantity";

Quantity.Caption
= "购买数量";

Quantity.Area
= DevExpress.XtraPivotGrid.PivotArea.DataArea;





//Product表

PivotGridField productName = new PivotGridField();

productName.FieldName
= "ProductName";

productName.Caption
= "产品名称";

productName.Area
= DevExpress.XtraPivotGrid.PivotArea.ColumnArea;



//添加到控制中

this.pivotGridControl1.Fields.Add(customerID);

this.pivotGridControl1.Fields.Add(companyName);

this.pivotGridControl1.Fields.Add(contactTitle);



this.pivotGridControl1.Fields.Add(orderID);



this.pivotGridControl1.Fields.Add(orderDate);

this.pivotGridControl1.Fields.Add(requiredDate);

this.pivotGridControl1.Fields.Add(shippedDate);



this.pivotGridControl1.Fields.Add(unitPrice);

this.pivotGridControl1.Fields.Add(Quantity);



this.pivotGridControl1.Fields.Add(productName);





}

 

 

2.      运行时改变字段的显示区域

 

 customerID.Area = DevExpress.XtraPivotGrid.PivotArea.RowArea;

 

五. 属性

1. 允许拖动

this.pivotGridControl1.OptionsCustomization.AllowDrag = true;

2. 允许排序

this.pivotGridControl1.OptionsCustomization.AllowSort = true;

3. 允许过滤

 this.pivotGridControl1.OptionsCustomization.AllowFilter = true;

 

六: 总结后记

1.      此控件较为灵活;对于 Master_Details 关系表处理的相当好;

2.      此控件数据区只能显示数字类型字段, 类似于统计分析;

3.      后面会有更多的 DevExpress 控件介绍给大家

4.      这里只介绍控件的简单使用;如需更复杂的技术支持或交流请与作者联系;

QQ: 915571300   子逸

5.       版权所有: 子逸(博客园);转载请注明出处;

 

 

 

转载于:https://www.cnblogs.com/ziyiFly/archive/2008/10/21/1315641.html

更多相关:

  • Math.max(...arr);//返回数组最大值 Math.min(...arr);//返回数组最小值Math.max(...objArr.map(o => o.最值字段名));//返回对象数组最大值 Math.min(...objArr.map(o => o.最值字段名));//返回对象数组最小值objArr.sort((pre...

  • 有关函数的官方文档:https://onlinehelp.tableau.com/current/pro/desktop/zh-cn/functions_functions_string.htm 注意事项: 1.记录数:是Tableau自动给每行观测值赋值为1。 2.维度的字段,是不能用于计算的,若是要用于计算,则需要转成度量。 3...

  • 1:删除   连接数据库:新建连接数据库,或者应用转换中已经定义好的数据库。 目标模式:指什么现在还不明确,集群模式?子服务器模式?--要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。  目标表:指定删除记录所对应的表。   提交记录数量:提交之前要改变(删除)的行数   表字段:来源于目标表中的字段。   流字段:...

  • 前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上。 1、Excel配置项 起始行索引、列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱)比如模板里前面是一些说明,中间是列头,下面还带有数据和说明格式。通过配置起始行索引,以及列头跨行数(0或1都代表一行),则可以解决此类...

  • 1.查询频繁 2.区分度高 例如:数据库表字段:sex 存储:男女,区分度就不高。 3.长度小 索引的长度直接影响索引文件的大小,影响增删改的速度,并间接影响查询速度。 4.尽可能覆盖常用字段   转载于:https://www.cnblogs.com/mingliangzhu/p/6972045.html...