コード例 #1
0
        /// <summary>
        /// 포커스가 가 있는 그리드의 정보를 데이터 테이블로 변환한다.
        /// </summary>
        /// <param name="pGrid">그리드.</param>
        /// <returns>리턴값</returns>
        public static DataTable GetPivotFocusedCellInfo(PivotGridControl pGrid, DataReturnType type)
        {
            try
            {
                DataTable table = new DataTable();

                if (type == DataReturnType.FocusedCell)
                {
                    PivotSummaryDataSource dataSource = pGrid.Cells.GetFocusedCellInfo().CreateSummaryDataSource() as PivotSummaryDataSource;
                    ITypedList             list       = dataSource as ITypedList;
                    foreach (PropertyDescriptor property in list.GetItemProperties(null))
                    {
                        table.Columns.Add(property.Name, property.PropertyType);
                    }

                    for (int rowIndex = 0; rowIndex < dataSource.RowCount; rowIndex++)
                    {
                        object[] values = new object[table.Columns.Count];
                        for (int columnIndex = 0; columnIndex < table.Columns.Count; columnIndex++)
                        {
                            values[columnIndex] = dataSource.GetValue(rowIndex, /*rowIndex*/ columnIndex);
                        }
                        table.Rows.Add(values);
                    }
                }
                else if (type == DataReturnType.All)
                {
                    PivotSummaryDataSource dataSourceAll = pGrid.CreateSummaryDataSource() as PivotSummaryDataSource;
                    ITypedList             listAll       = dataSourceAll as ITypedList;
                    foreach (PropertyDescriptor property in listAll.GetItemProperties(null))
                    {
                        table.Columns.Add(property.Name, property.PropertyType);
                    }
                    for (int rowIndex = 0; rowIndex < dataSourceAll.RowCount; rowIndex++)
                    {
                        object[] values = new object[table.Columns.Count];
                        for (int columnIndex = 0; columnIndex < table.Columns.Count; columnIndex++)
                        {
                            values[columnIndex] = dataSourceAll.GetValue(rowIndex, /*rowIndex*/ columnIndex);
                        }
                        table.Rows.Add(values);
                    }
                }


                return(table);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }