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

■ PivotGridControl 클래스 : CreateDrillDownDataSourceAsync 메소드를 사용해 비동기 기본 데이터 소스 생성하기

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


TestProject.zip


PopupForm.cs

 

 

using System;

 

using DevExpress.Data;

using DevExpress.Utils;

using DevExpress.XtraEditors;

 

namespace TestProject

{

    /// <summary>

    /// 팝업 폼

    /// </summary>

    public partial class PopupForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Property

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

 

        #region 데이터 소스 - DataSource

 

        /// <summary>

        /// 데이터 소스

        /// </summary>

        public object DataSource

        {

            get

            {

                return this.gridControl.DataSource;

            }

            set

            {

                this.gridControl.DataSource = value;

            }

        }

 

        #endregion

 

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

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

 

        #region 생성자 - PopupForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public PopupForm()

        {

            InitializeComponent();

 

            this.gridControl.DataSourceChanged += gridControl_DataSourceChanged;

        }

 

        #endregion

 

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

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

 

        #region 그리드 컨트롤 데이터 소스 변경시 처리하기 - gridControl_DataSourceChanged(sender, e)

 

        /// <summary>

        /// 그리드 컨트롤 데이터 소스 변경시 처리하기

        /// </summary>

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

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

        private void gridControl_DataSourceChanged(object sender, EventArgs e)

        {

            this.gridView.Columns["OrderDate"].SummaryItem.SummaryType  = SummaryItemType.Count;

            this.gridView.Columns["OrderDate"].DisplayFormat.FormatType = FormatType.DateTime;

 

            this.gridView.Columns["Country"].Group();

 

            this.gridView.Columns["City"].Group();

 

            this.gridView.Columns["ProductName"].Group();

 

            this.gridView.ExpandAllGroups();

        }

 

        #endregion

    }

}

 

 

MainForm.cs

 

 

using System.Collections.Generic;

 

using DevExpress.XtraEditors;

using DevExpress.XtraPivotGrid;

 

namespace TestProject

{

    /// <summary>

    /// 메인 폼

    /// </summary>

    public partial class MainForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Field

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

 

        #region Field

 

        /// <summary>

        /// 팝업 폼

        /// </summary>

        private PopupForm popupForm;

 

        #endregion

 

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

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

 

        #region 생성자 - MainForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainForm()

        {

            InitializeComponent();

 

            this.pivotGridControl.CellClick += pivotGridControl_CellClick;

 

            this.linqServerModeSource.QueryableSource = new DataClasses1DataContext().Invoices;

 

            SetPopupForm();

        }

 

        #endregion

 

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

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

        //////////////////////////////////////////////////////////////////////////////// Event

 

        #region 피벗 그리드 컨트롤 셀 클릭시 처리하기 - pivotGridControl_CellClick(sender, e)

 

        /// <summary>

        /// 피벗 그리드 컨트롤 셀 클릭시 처리하기

        /// </summary>

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

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

        private void pivotGridControl_CellClick(object sender, PivotCellEventArgs e)

        {

            PivotGridControl pivotGridControl = sender as PivotGridControl;

 

            if(this.popupForm.IsDisposed)

            {

                SetPopupForm();

            }

 

            if(!pivotGridControl.IsAsyncInProgress)

            {

                pivotGridControl.CreateDrillDownDataSourceAsync

                (

                    e.ColumnIndex,

                    e.RowIndex,

                    25,

                    new List<string> { "ProductName","Quantity" },

                    result => {

                        this.popupForm.DataSource = (PivotDrillDownDataSource)result.Value;

                    }

                );

            }

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////// Function

 

        #region 팝업 폼 설정하기 - SetPopupForm()

 

        /// <summary>

        /// 팝업 폼 설정하기

        /// </summary>

        private void SetPopupForm()

        {

            this.popupForm = new PopupForm();

 

            this.popupForm.Show();

        }

 

        #endregion

    }

}

 

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

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

[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : SaveLayoutToStream/RestoreLayoutFromStream 메소드를 사용해 레이아웃 저장하기/복구하기  (0) 2020.05.13
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFieldValueCells 이벤트를 사용해 특정 행과 컬럼 숨기기  (0) 2020.05.11
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : ShowingCustomizationForm 이벤트를 사용해 피벗 그리드 컨트롤 옆에 Customization 폼 표시하기  (0) 2020.05.11
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFieldValueCells 이벤트를 사용해 필드 값 셀 분리하기  (0) 2020.05.11
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : EditValueChanged 이벤트를 사용해 셀 값 편집하기  (0) 2020.05.10
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CreateDrillDownDataSourceAsync 메소드를 사용해 비동기 기본 데이터 소스 생성하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFilterPopupItems 이벤트를 사용해 필터 드롭 다운 항목 정렬 커스텀 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : Groups 속성을 사용해 그룹 필터 설정하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomFilterPopupItems 이벤트를 사용해 필터 드롭 다운 리스트에서 항목 삭제하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : FieldFilterChanging 이벤트를 사용해 필터 조건 변경 방지하기  (0) 2020.05.09
[DEVEXPRESS/WINFORM] PivotGridField 클래스 : CustomGroupInterval 이벤트를 사용해 그룹 간격 커스텀 설정하기  (0) 2020.05.09
Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요