/// <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; } }