Beispiel #1
0
    private object GetTotalValue(PivotGridCellTemplateItem c, ASPxPivotGrid sourcePivotGrid)
    {
        List <PivotGridField> columnFields      = pivotGrid.GetFieldsByArea(DevExpress.XtraPivotGrid.PivotArea.ColumnArea);
        List <PivotGridField> rowFields         = pivotGrid.GetFieldsByArea(DevExpress.XtraPivotGrid.PivotArea.RowArea);
        List <object>         rowFieldValues    = new List <object>();
        List <object>         columnFieldValues = new List <object>();

        if (c.ColumnField != null)
        {
            foreach (PivotGridField field in columnFields)
            {
                if (field.AreaIndex > c.ColumnField.AreaIndex)
                {
                    continue;
                }
                object currentValue = c.GetFieldValue(field);
                if (currentValue != null)
                {
                    columnFieldValues.Add(currentValue);
                }
            }
        }
        if (c.RowField != null)
        {
            foreach (PivotGridField field in rowFields)
            {
                if (field.AreaIndex > c.RowField.AreaIndex)
                {
                    continue;
                }
                object currentValue = c.GetFieldValue(field);
                if (currentValue != null)
                {
                    rowFieldValues.Add(currentValue);
                }
            }
        }
        sourcePivotGrid.EnsureRefreshData();
        object res = sourcePivotGrid.Data.GetCellValue(columnFieldValues.ToArray(), rowFieldValues.ToArray(), c.DataField);

        return(res);
    }