当前位置: 首页 > 编程日记 > 正文

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

相关文章:

JNI与NDK学习第二篇-----应用篇

2019独角兽企业重金招聘Python工程师标准>>> 1.安装配置NDK 1). 解压NDK的zip包到非中文目录(最好英文目录不要带空格) 2). 配置path : 解压后NDK的根目录----->ndk-build 2.给AS关联NDK 1). local.properties中添加配置 ndk.dirE\:\\Android\\sdk\\android-…

数据结构与算法课程的代码链接

VS2005版本 http://download.csdn.net/detail/lsgo_myp/9713329 VS2015版本 http://download.csdn.net/detail/lsgo_myp/9730592

leetcode--字符串转换为整数--python

文章目录题目题目详情说明示例解题代码思路代码运行结果最佳方案题目 题目详情 请你来实现一个 atoi 函数&#xff0c;使其能将字符串转换成整数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的…

什么是自组织特征映射网络?

什么是自组织特征映射网络&#xff1f;

理解jQuery对象$.html

如果要比喻jQuery和原生javascript的关系&#xff0c;我个人认为是自动档和手动档汽车的区别。使用原生javascript&#xff0c;可以知道离合器以及档位的作用&#xff1b;而使用jQuery&#xff0c;则把离合器和手动档位封装到函数&#xff0c;直接前进、后退或驻车即可。所以&a…

精通ASP.NET中弹出窗口技术

本文讨论如何以ASP.NET中的CodeBehind方式实现各种弹出窗口&#xff0c;实现与弹出窗口的交互。并探讨常用非标准IE浏览器对弹出的窗口的各种过滤行为及使用弹出窗口相应对策&#xff0c;以期给出使用弹出窗口的一个通用较优方案。 关键词&#xff1a;ASP.NET、CodeBehind、过滤…

leetcode--删除排序数组中的重复项--python

文章目录题目题目详情示例说明解题代码思路代码运行结果最佳方案题目 题目详情 给定一个排序数组&#xff0c;你需要在原地删除重复出现的元素&#xff0c;使得每个元素只出现一次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改…

转换人民币大小金额

1 usingSystem; 2 3 namespaceTest 4 { 5 /**////<summary>6 ///Rmb 的摘要说明。 7 ///</summary>8 publicclassRmb 9 { 10 /**////<summary>11 ///转换人民币大小金额 12 ///</summary>13 ///<param name"num">金额</param>14…

偏执却管用的 10 条 Java 编程技巧

经过一段时间的编码&#xff08;咦&#xff0c;我已经经历了将近20年的编程生涯&#xff0c;快乐的日子总是过得很快&#xff09;&#xff0c;我们开始感谢那些好习惯。因为&#xff0c;你知道… “任何可能出错的事情&#xff0c;最后都会出错。” 这就是人们为什么喜欢进行“…

如何利用SOM网络进行柴油机故障诊断

如何利用SOM网络进行柴油机故障诊断

leetcode--删除排序链表中的重复元素--python

文章目录题目题目详情示例解题代码思路代码运行结果最佳方案题目 题目详情 给定一个排序链表&#xff0c;删除所有重复的元素&#xff0c;使得每个元素只出现一次。 示例 输入: 1->1->2 输出: 1->2输入: 1->1->2->3->3 输出: 1->2->3解题代码 …

如何使用 UserAccountControl 标志操纵用户帐户属性

转载&#xff1a; http://support.microsoft.com/kb/305144 概要 在打开用户帐户的属性后&#xff0c;单击帐户选项卡&#xff0c;然后选中或清除“帐户选项”对话框中的复选框&#xff0c;则会将数值分配给 UserAccountControl 属性。分配给该属性的值通知 Windows 已启用了哪…

程序员 专属的新年祝福原来是这样的! (附中奖名单)

程序员的新年祝福会是什么样的&#xff1f;我们共收到了97位 OSCer 的回复&#xff0c;以下为支持数排名前十的祝福语&#xff1a; yale8848&#xff08;支持数&#xff1a;10&#xff09; document.write("") &#xff08;小编&#xff1a;捂脸&#xff0c;不过不知…

LSGO代码小组第16周复盘日志

LSGO代码小组第16周复盘日志&#xff0c;汇报人&#xff1a;高勇

leetcode--买股票的最佳时机II--python

文章目录题目题目详情注意示例代码思路解题代码运行结果最佳方案题目 题目详情 给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。…

我的广州生活~

步入11月份&#xff0c;天气逐渐转冷&#xff01;本以为广东的冬天是永远的裤头T恤&#xff0c;看来我错了。。。在凉席上抗争了一周&#xff0c;我感冒了两次&#xff0c;看来人毕竟斗不过天&#xff0c;还是乖乖的铺上褥子&#xff0c;等待南国的冬天。他们都说广州的冬天是种…

苹果手表可以运行 ruby 脚本了

不得不佩服啊&#xff01; 各位看下载地址吧https://itunes.apple.com/cn/app/ruby-2.0-for-ios-yun-xing/id727047729?mt8https://yqfile.alicdn.com/d0403806fdff7411060f9b0b059d1f9966c19447.png" >https://yqfile.alicdn.com/5dbd9a02e4252465b9896713a592e092ca…

Matlab与线性代数--广义逆矩阵

本微信图文详细介绍了Matlab中求解广义逆矩阵的方法。

leetcode--无重复字符的最长子串--python

文章目录题目题目详情示例解题代码思路代码运行结果最佳方案题目 题目详情 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长…

TOP语句与Order By语句

默认情况下&#xff0c;如果在子查询&#xff0c;函数&#xff0c;视图中尝试去使用ORDER BY&#xff0c; CREATE VIEW dbo.VSortedOrders ASSELECT orderid, customerid FROM dbo.Orders ORDER BY orderid GO 那么可能会遇到下面的错误 消息 1033&#xff0c;级别 15&#xff…

利用“队列”解决“窗口混乱”问题

本图文利用队列这种数据结构以及多线程技术模拟了银行排队&#xff08;叫号&#xff09;软件的工作流程。

MySQL操作数据库--与MySQL零距离接触1-7

第一章 1-7操作数据库 数据库是一个集合&#xff1a;表 索引等。 MySQL语句规范&#xff1a; 关键字与函数名称全部大写 数据库名称、表名称、字段名称全部小写 SQL语句必须以分号结尾 语法结构&#xff1a; {}&#xff1a;代表必选项 …

leetcode--盛最多水的容器--python

文章目录题目题目详情说明示例解题代码思路代码运行结果最佳方案题目 题目详情 给定 n 个非负整数 a1&#xff0c;a2&#xff0c;…&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (…

创意海报生成器

今天无意中看到一个网站,用来生成一些好玩的图片. http://www.photofunia.com 转载于:https://www.cnblogs.com/victorxu/archive/2008/11/17/1334779.html

基于Go语言来理解Tensorflow

Tensorflow并非一套特定机器学习库——相反&#xff0c;其属于一套通用型计算库&#xff0c;负责利用图形表达计算过程。其核心通过C语言实现&#xff0c;同时亦绑定有多种其它语言。与Python绑定不同的是&#xff0c;Go编程语言绑定不仅允许用户在Go环境当中使用TensorFlow&am…

如何利用BP网络进行神经网络变量筛选

如何利用BP网络进行神经网络变量筛选

校园ACM--总结

文章目录题目1--字母矩阵题目详情示例解题代码思路代码运行结果题目2--二进制反转题目详情示例解题代码思路代码运行结果体会题目1–字母矩阵 题目详情 n阶字母矩阵是由n*n的英文小写字母组成的方阵&#xff0c;满足&#xff1a; 每一条副对角线上的字母相同 不同对角线上的…

阅读笔记 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network

总结 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network Yuxin Peng, Jinwei Qi, Xin Huang and Yuxin Yuan 常见方法 使用深度神经网络&#xff08;DNN&#xff09;的跨模态检索大体分为两个步骤&#xff1a; 1 The first learning s…

Matlab与线性代数--矩阵的LU分解

本图文详细介绍了Matlab中有关矩阵LU分解的操作。

Silverlight的企业应用

今天在Terry Lee的博客中看到《Silverlight 3 &#xff0d;瞥》&#xff0c;之后找到Scott的原文《Update on Silverlight 2 - and a glimpse of Silverlight 3》&#xff0c;发现在Scott的文章里提到了K2的Blackpoint。 Silverlight已经发布了一段时间&#xff0c;但很少听说…