protected override TAggregateRow GetAggregateRow(RenderContext context, TRow row) { if (CrossTable == null && context != null && row != null && !IsCrossColumn) { return((TAggregateRow)BaseCrossTable.GetGroupDataItem(context)); } return(base.GetAggregateRow(context, row)); }
public override int GetRowsCount(RenderContext context) { var row = context.GetDataRow <TRow>(); if (CrossTable == null && row != null && !IsCrossColumn && context.GroupValues == null) { return(BaseCrossTable.GetGroupRowsCount(context)); } return(base.GetRowsCount(context)); }
protected virtual TAggregateRow GetAggregateRow(RenderContext context, TRow row) { CurrentRow = row; if (row == null) { return(null); } if (CrossTable != null) { context.LoadData(CrossTable); if (CrossTable.RowValues.ContainsKey(row)) { return(CrossTable.RowValues[row]); } if (CrossTable.CurrentValuesRows != null && CrossTable.CurrentValuesRows.ContainsKey(row) && CrossTable.CurrentValuesRows[row].Count > RowIndex) { var key = CrossTable.CurrentValuesRows[row][RowIndex]; return(CrossTable.CurrentValues[row][key]); } if (CrossTable.RowGroupedValues.ContainsKey(row)) { var rowValues = CrossTable.RowGroupedValues[row]; if (rowValues.Count > RowIndex) { return(rowValues[RowIndex]); } } } else if (context != null) { context.LoadData(BaseCrossTable); return((TAggregateRow)BaseCrossTable.GetDataItem(context)); } //Debug.Fail("RowIndex больше чем записей AggregateColumn"); return(new TAggregateRow()); }
public override int GetRowsCount(RenderContext context) { if (context.GroupValues != null) { return(base.GetRowsCount(context)); } int count; if (ExecuteGetRowsCount(context, out count)) { return(count); } var row = context.GetDataRow <TRow>(); if (CrossTable != null) { context.LoadData(CrossTable); if (CrossTable.RowValues.ContainsKey(row)) { return(1); } if (CrossTable.CurrentValuesRows != null && CrossTable.CurrentValuesRows.ContainsKey(row)) { return(CrossTable.CurrentValuesRows[row].Count); } return(CrossTable.RowGroupedValues[row].Count); } if (IsCrossColumn) { return(BaseCrossTable.GetRowsCount(context)); } return(BaseCrossTable.GetRowsCount(context)); }