原創|其它|編輯:郝浩|2012-11-05 13:17:05.000|閱讀 700 次
概述:本文的示例演示了如何運用CustomFieldValueCells事件找到一個特定的行/列標頭,這個行/列標頭是根據其列/行的匯總值確定的。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文的示例演示了如何運用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<object[]>( // 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
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網