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. 运行时添加字段
/// <summary>
/// 给消费链添加添加字段
/// </summary>
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
DevXpress 控件: 第一篇: 将 Master_Details 关系进行到底--XtraPivotGridControl控件相关推荐
- 内控与IT安全的关系,IT内控与安全审计的关系
随着国内内控的兴起,经常有人会问,内控跟IT安全有什么关系?为什么内控话题总是被搞信息安全的人经常提及?我想,一方面,是因为内控与信息安全存在内在的联系,另一方面,则是信息安全从业人员为了找到体现自身 ...
- 野人学Android基础篇之初探UI控件第一课--TextView动态赋值
除了上节课中讲到的TextView静态赋值,还有一种更加灵活的赋值方法–动态赋值.在app的运行过程中,根据程序的需要可以随时改变TextView的值. 其实现的基本逻辑可以归纳如下: 1.通过id获 ...
- Flutter 布局控件完结篇
本文对Flutter的29种布局控件进行了总结分类,讲解一些布局上的优化策略,以及面对具体的布局时,如何去选择控件. 1. 系列文章 Flutter 布局详解 Flutter 布局(一)- Conta ...
- Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)
文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...
- [密码学基础][信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第一篇]不同类型的处理器
这是每个密码学博士生应该知道的52件事系列的第一篇文章.PhD研究生在第一年结束的时候应该掌握这些问题.并且尽可能早的在他们能放弃的时候放弃(23333)无论怎样,我们会将这些问题在接下来的一年里表达 ...
- .net开发笔记(十三) Winform常用开发模式第一篇
上一篇博客最后我提到"异步编程模型"(APM),之后本来打算整理一下这方面的材料然后总结一下写篇文章与诸位分享,后来在整理的过程中不断的延伸不断地扩展,发现完全偏离了"异 ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...
- 研究生第一篇科研论文常犯问题总结
↑ 点击蓝字 关注视学算法 作者丨喻海良,中南大学教授,博士生导师 来源|http://blog.sciencenet.cn/blog-117889-1018759.html 极市导读 本文作者为中南 ...
- springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务
从今天开始,学习SpringCloud微服务全家桶. 一.引导 1.什么是微服务? 2.微服务之间是如何独立通讯的 3.springCloud和Dubbo有哪些区别? 4.什么是服务熔断?什么是服务降 ...
最新文章
- [unreal4入门系列之三] 初探UE4安装文件目录结构
- nginx 配置并发数限制
- java基础,没事常看看(一)类、对象、引用
- Django报错:ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。...
- WordPress路径相关函数总结
- React开发(116):ant design search引入
- .NET异步编程之新利器——Task与Await、Async
- java的沙盒安全模式_Java沙箱机制
- 死锁(python 版)
- android -------- Data Binding的使用 ( 四 )ListView
- c语言反序数1234变4321,C语言编程题练习
- 读取WIND数据(行情、基金净值等)的SAS程序
- 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
- java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id null 	at org.spr
- javaSwing ATM
- 网络设备配置与管理(华为)基础系列 20190307
- 不是所有物联网平台都适合系统集成
- children和childNodes 的区别
- 方面级情感分析综述论文论文+讲解+复现(ABSA)
- ZEMAX | 如何围绕空间中的任何点旋转任何元素
热门文章
- 软件自动测试框架,软件自动化测试框架的研究和实现
- mongodb java项目 源码_spring项目整合mongodb进行开发
- python3 scrapy中文文档_Scrapy官方文档笔记
- java 定时器获得外部参数_JMeter定时器使用小结
- 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
- C:内存中供用户使用的存储空间
- 红外遥感设计报告论文+电路原理图
- 机器学习(10)随机森林(预测泰坦尼克号旅客存活率)
- dist包编译html_gulp4 多页面项目管理打包(html, es6,less编译压缩版本控制)
- cordova版本更新_ionic4 APP版本更新