private bool HaveSingleChild(PivotGridData data, PivotFieldValueItem valueItem) { if (valueItem.MinLastLevelIndex == valueItem.MaxLastLevelIndex) { return(true); } else { var nestedField = data.GetFieldByArea(valueItem.Area, valueItem.Field.AreaIndex + 1); IEnumerable <DevExpress.XtraPivotGrid.PivotDrillDownDataRow> rows = valueItem.CreateDrillDownDataSource().Cast <DevExpress.XtraPivotGrid.PivotDrillDownDataRow>(); return(rows.Select(row => row[nestedField]).Distinct().Count() == 1); } }
protected void ASPxPivotGrid1_CustomCellValue(object sender, DevExpress.Web.ASPxPivotGrid.PivotCellValueEventArgs e) { if (e.DataField.ID == "fieldAmountCustomPercent" && e.RowField != null) { PivotGridData data = ((ASPxPivotGrid)sender).Data; PivotFieldValueItem parentValueItem; if (GetParentItem(data, e.RowIndex, e.RowField.AreaIndex, out parentValueItem)) { PivotGridField[] columnFields = e.GetColumnFields() ?? new PivotGridField[0]; PivotGridField[] rowFields = e.GetRowFields() ?? new PivotGridField[0]; e.Value = e.GetCellValue(columnFields.Select(cf => e.GetFieldValue(cf)).ToArray(), rowFields.Where(rf => rf.AreaIndex <= parentValueItem.Field.AreaIndex).Select(rf => e.GetFieldValue(rf)).ToArray(), e.DataField); } } }
public XtraReport CreatePivotGridReport() { XtraReport1 report = new XtraReport1(); XRPivotGrid pivotGrid = report.xrPivotGrid1; var session = HttpContext.Current.Session; byte[] collapsedState = (byte[])session["CollapsedState"]; byte[] layout = (byte[])session["Layout"]; if (collapsedState != null && layout != null) { using (MemoryStream collapsedStateMS = new MemoryStream(collapsedState)) using (MemoryStream layoutMS = new MemoryStream(layout)) { PivotGridData data = ((IPivotGridDataContainer)pivotGrid).Data; new DevExpress.Utils.Serializing.XmlXtraSerializer().DeserializeObject(pivotGrid, layoutMS, "PivotGrid"); data.LoadCollapsedStateFromStream(collapsedStateMS); } } return(report); }
private bool GetParentItem(PivotGridData data, int rowIndex, int level, out PivotFieldValueItem parentValueItem) { parentValueItem = null; if (level < 1) { return(false); } PivotFieldValueItem valueItem = data.VisualItems.GetItem(false, rowIndex, level - 1); if (valueItem != null && valueItem.Field != null && HaveSingleChild(data, valueItem)) { parentValueItem = valueItem; if (level > 1 && GetParentItem(data, rowIndex, level - 1, out valueItem)) { parentValueItem = valueItem; } return(true); } else { return(false); } }
public MyPrintCellSizeProvider(PivotGridData data, PivotVisualItemsBase visualItems, PivotGridPrinterBase printer) : base(data, visualItems, printer) { }
public MyPivotPrintBestFitter(PivotGridData data, PivotGridPrinterBase printer) : base(data, printer, new MyPrintCellSizeProvider(data, data.VisualItems, printer)) { }
public MyPivotGridFieldCollection(PivotGridData data) : base(data) { }
public MyPivotGridField(PivotGridData data) : base(data) { }
public MyPrintCellSizeProvider(PivotGridData data, PivotVisualItemsBase visualItems, PivotGridPrinterBase printer) : base(data, visualItems, printer) { imageHeight = ((ImageList)data.HeaderImages).ImageSize.Height; }