첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ PivotGridControl 클래스 : CustomFieldValueCells 이벤트를 사용해 특정 조건을 만족하는 필드 값 셀 배치하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainForm.cs

 

 

using System;

using System.Globalization;

 

using DevExpress.XtraEditors;

using DevExpress.XtraPivotGrid;

 

namespace TestProject

{

    /// <summary>

    /// 메인 폼

    /// </summary>

    public partial class MainForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - MainForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainForm()

        {

            InitializeComponent();

 

            ControlHelper.Initialize(this.pivotGridControl);

 

            this.radioGroup.SelectedIndexChanged        += radioGroup_SelectedIndexChanged;

            this.pivotGridControl.CustomFieldValueCells += pivotGridControl_CustomFieldValueCells;

            this.pivotGridControl.FieldValueDisplayText += pivotGridControl_FieldValueDisplayText;

 

            this.pivotGridControl.DataSource = ControlHelper.GetDataTable();

 

            this.pivotGridControl.BestFit();

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region 라디오 그룹 선택 인덱스 변경시 처리하기 - radioGroup_SelectedIndexChanged(sender, e)

 

        /// <summary>

        /// 라디오 그룹 선택 인덱스 변경시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void radioGroup_SelectedIndexChanged(object sender, EventArgs e)

        {

            this.pivotGridControl.LayoutChanged();

        }

 

        #endregion

        #region 피벗 그리드 컨트롤 필드 값 셀 커스텀 설정하기 - pivotGridControl_CustomFieldValueCells(sender, e)

 

        /// <summary>

        /// 피벗 그리드 컨트롤 필드 값 셀 커스텀 설정하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void pivotGridControl_CustomFieldValueCells(object sender, PivotCustomFieldValueCellsEventArgs e)

        {

            PivotGridControl pivotGridControl = sender as PivotGridControl;

 

            if(pivotGridControl.DataSource == null)

            {

                return;

            }

 

            if(this.radioGroup.SelectedIndex != 1)

            {

                return;

            }

 

            FieldValueCell cell = e.FindCell

            (

                true,

                new Predicate<object[]>

                (

                    delegate(object[] valueArray)

                    {

                        foreach(object value in valueArray)

                        {

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

                            {

                                return false;

                            }

                        }

                        return true;

                    }

                )

            );

 

            if(cell != null)

            {

                e.Remove(cell);

            }

        }

 

        #endregion

        #region 피벗 그리드 컨트롤 필그 값 디스플레이 텍스트 설정하기 - pivotGridControl_FieldValueDisplayText(sender, e)

 

        /// <summary>

        /// 피벗 그리드 컨트롤 필그 값 디스플레이 텍스트 설정하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void pivotGridControl_FieldValueDisplayText(object sender, PivotFieldDisplayTextEventArgs e)

        {

            PivotGridControl pivotGridControl = sender as PivotGridControl;

 

            if(e.Field == pivotGridControl.Fields[ControlHelper.Month])

            {

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

            }

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

'DevExpress > WinForm' 카테고리의 다른 글

[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : FieldFilterChanging 이벤트를 사용해 필터 조건 변경 방지하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridField 클래스 : CustomGroupInterval 이벤트를 사용해 그룹 간격 커스텀 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridField 클래스 : GroupInterval 속성을 사용해 날짜/시간 값 그룹 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFieldSort 이벤트를 사용해 히든 필드로 출력 필드 정렬하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridField 클래스 : SortBySummaryInfo 속성을 사용해 필드 값을 정렬하기 위한 정렬 조건 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFieldValueCells 이벤트를 사용해 특정 조건을 만족하는 필드 값 셀 배치하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomCellValue 이벤트를 사용해 커스텀 SUMMARY 타입을 갖는 다수 커스텀 총계 계산하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : LINQ to SQL 서버 모드 사용하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomUnboundFieldData 이벤트를 사용해 그룹 간격 커스텀 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridField 클래스 : 엑셀 데이터 소스 바인딩하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridCells 클래스 : CopySelectionToClipboard 메소드를 사용해 데이터를 클립보드에 복사하기  (0) 2020.05.09
Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요