本文的示例演示了如何运用CustomFieldValueCells事件找到一个特定的行/列标头,这个行/列标头是根据其列/行的汇总值确定的。本例中查找只包含列汇总值为零的。本例中的列标头是通过事件参数的FindCell方法添加的,然后再通过 Remove 的方法对其删除。

示例代码如下:

C#

using System;

using System.Globalization;

using System.Windows.Forms;

using DevExpress.XtraPivotGrid;

namespace XtraPivotGrid_FindCells {

public partial class Form1 : Form {

public Form1() {

InitializeComponent();

pivotGridControl1.CustomFieldValueCells +=

new PivotCustomFieldValueCellsEventHandler(pivotGrid_CustomFieldValueCells);

}

void Form1_Load(object sender, EventArgs e) {

PivotHelper.FillPivot(pivotGridControl1);

pivotGridControl1.DataSource = PivotHelper.GetDataTable();

pivotGridControl1.BestFit();

}

// Handles the CustomFieldValueCells event to remove columns with

// zero summary values.

protected void pivotGrid_CustomFieldValueCells(object sender,

PivotCustomFieldValueCellsEventArgs e) {

if (pivotGridControl1.DataSource == null) return;

if (radioGroup1.SelectedIndex == 0) return;

// Obtains the first encountered column header whose column

// matches the specified condition, represented by a predicate.

FieldValueCell cell = e.FindCell(true, new Predicate(

// Defines the predicate returning true for columns

// that contain only zero summary values.

delegate(object[] dataCellValues) {

foreach (object value in dataCellValues) {

if (!object.Equals((decimal)0, value))

return false;

}

return true;

}));

// If any column header matches the condition, this column is removed.

if (cell != null) e.Remove(cell);

}

void pivotGridControl1_FieldValueDisplayText(object sender,

PivotFieldDisplayTextEventArgs e) {

if(e.Field == pivotGridControl1.Fields[PivotHelper.Month]) {

e.DisplayText = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName((int)e.Value);

}

}

void radioGroup1_SelectedIndexChanged(object sender, EventArgs e) {

this.pivotGridControl1.LayoutChanged();

pivotGridControl1.BestFit();

}

}

}

VB

Imports Microsoft.VisualBasic

Imports System

Imports System.Globalization

Imports System.Windows.Forms

Imports DevExpress.XtraPivotGrid

Namespace XtraPivotGrid_FindCells

Partial Public Class Form1

Inherits Form

Public Sub New()

InitializeComponent()

AddHandler pivotGridControl1.CustomFieldValueCells, _

AddressOf pivotGrid_CustomFieldValueCells

End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

PivotHelper.FillPivot(pivotGridControl1)

pivotGridControl1.DataSource = PivotHelper.GetDataTable()

pivotGridControl1.BestFit()

End Sub

' Handles the CustomFieldValueCells event to remove columns with

' zero summary values.

Protected Sub pivotGrid_CustomFieldValueCells(ByVal sender As Object, _

ByVal e As PivotCustomFieldValueCellsEventArgs)

If pivotGridControl1.DataSource Is Nothing Then

Return

End If

If radioGroup1.SelectedIndex = 0 Then

Return

End If

' Obtains the first encountered column header whose column

' matches the specified condition, represented by a predicate.

Dim cell As FieldValueCell = _

e.FindCell(True, New Predicate(Of Object())(AddressOf AnonymousMethod1))

' If any column header matches the condition, this column is removed.

If cell IsNot Nothing Then

e.Remove(cell)

End If

End Sub

' Defines the predicate returning true for columns

' that contain only zero summary values.

Private Function AnonymousMethod1(ByVal dataCellValues() As Object) As Boolean

For Each value As Object In dataCellValues

If (Not Object.Equals(CDec(0), value)) Then

Return False

End If

Next value

Return True

End Function

Private Sub pivotGridControl1_FieldValueDisplayText(ByVal sender As Object, _

ByVal e As PivotFieldDisplayTextEventArgs) _

Handles pivotGridControl1.FieldValueDisplayText

If Object.Equals(e.Field, pivotGridControl1.Fields(PivotHelper.Month)) Then

e.DisplayText = _

CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(CInt(Fix(e.Value)))

End If

End Sub

Private Sub radioGroup1_SelectedIndexChanged(ByVal sender As Object, _

ByVal e As EventArgs) _

Handles radioGroup1.SelectedIndexChanged

Me.pivotGridControl1.LayoutChanged()

pivotGridControl1.BestFit()

End Sub

End Class

End Namespace

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:慧都控件网

0

好文不易,鼓励一下吧!

xtragrid 某个值 查找_XtraPivotGrid根据列(行)的汇总值对列(行)标头进行查找...相关推荐

  1. Excel 查找某值第一次出现和最后一次出现的所在的行,以及对应的某列的值

    有时我们需要找出某值第一次出现或者最后一次出现的所在的行,以及对应的某列的值,并且高亮显示该值所在的行 那我们怎样才能实现这个效果呢? 可以来看一下下面这个例子 测试数据是如下: 实现效果如下: 操作 ...

  2. m行n列最大值和最小值C语言,找数组最值 按如下函数原型编程从键盘输入一个m行n列的二维数...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 找数组最值 按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值.其中,m和n的值由用户键盘输入.已知m和n ...

  3. xtragrid 某个值 查找_二分查找(下):如何快速定位IP对应的省份地址?

    通过IP地址来查找IP归属地的功能,不知道你有没有用过?没用过也没关系,你现在可以打开百度,在搜索框里随便输一个IP地址,就会看到它的归属地. 这个功能并不复杂,它是通过维护一个很大的IP地址库来实现 ...

  4. xtragrid 某个值 查找_Java 经典算法:二分法查找(循环和递归两种方式实现)

    一.二分法查找简介 当数组或者集合中存放的元素数量非常多的时候,想要跟踪具体某个元素的位置或者是否存在,常规方式是循环每一个元素直到找到要查找的元素为止.这样的查找方式效率非常低下,这个时候需要使用二 ...

  5. 修改所有列_哪些数据库是行存储?哪些是列存储?有什么区别?

    大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成.字段是列和行的交集:某种类型的单个值. 属于同一列的字段通常具有相同的数据类型.例如,如果我们定义了一个包含用户数据的表,那么所有的用户名 ...

  6. 哪些数据库是行存储?哪些是列存储?有什么区别?

    导读:本文带你了解面向列与面向行的数据库. 作者:Alex Petrov 来源:大数据DT(ID:hzdashuju) 大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成.字段是列和行的交集 ...

  7. 行存储索引改换成列存储索引_如何使用列存储索引来改善数据仓库登台环境

    行存储索引改换成列存储索引 My team and I were recently tasked with refactoring older data marts, particularly tho ...

  8. 【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符...

    目录 awk基本语法 awk输出某几列 awk遍历文件行处理 awk中运行shell命令 方法1:awk 内置函数system 方法2 通过awk  print 交给bash awk中运行shell命 ...

  9. 一篇文章告诉你哪些数据库是行存储?哪些是列存储?有什么区别?

    导读:本文带你了解面向列与面向行的数据库. 作者:Alex Petrov 来源:大数据DT(ID:hzdashuju) 大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成.字段是列和行的交集 ...

  10. 【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符

    目录 awk基本语法 awk输出某几列 awk遍历文件行处理 awk中运行shell命令 方法1:awk 内置函数system 方法2 通过awk  print 交给bash awk中运行shell命 ...

最新文章

  1. CCNP路由实验---3、人工汇总EIGRP路由
  2. 计算机动画课程设计,计算机动画课程设计.doc
  3. 关于PHP安装扩展pdo_odbc
  4. wc命令统计文件数据数量信息
  5. HTCondor运行Java文件
  6. idea在Sonar中点击exclude后恢复
  7. 爬虫之Requests库入门
  8. js:数据结构笔记10--图和图算法
  9. 文件对应的Content-Type类型
  10. 机器人手眼标定原理介绍(含详细推导过程)使用Tsai-Lenz算法
  11. Linux查 ssh端口号
  12. 自动驾驶仿真相关调研
  13. 手把手教你理解SURF算法的全部过程
  14. android微信打不开怎么办,微信打不开怎么回事 微信打不开怎么办
  15. 项目管理的七个工作法则
  16. c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.
  17. 漫谈 | 据说搞区块链的人都觉得自己是“上帝
  18. 万维钢解读,从数学上解释为什么绝大多数投资者都会输给市场?最可能值,远远小于平均值...
  19. skynet httpc 并发发送消息崩溃问题
  20. Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (checkstyle-vali

热门文章

  1. Android - UI
  2. ORACLE ERP 的前世今生(1)
  3. [导入]在没有 IIS 的条件下运行 ASMX
  4. 轻松掌握namedtuple
  5. 疯狂工作流讲义(第2版)基于Activiti6.x电子书
  6. VISTA组策略中关闭自动播放的位置
  7. MSN Messenger去广告和其他修改方法
  8. (七)洞悉linux下的Netfilteriptables:状态防火墙
  9. Linux内核剖析之回收页框
  10. 具有system权限的进程无法访问sdcard