2015-04-02 2 views
2

Я использую TcxGrid с группировкой. Я хочу узнать, сколько там группируемых строк, но я не могу найти подходящее свойство. Существует <mytableview>.GroupedItemCount, но это просто означает, сколько столбцов группируется сетью.TcxGrid найти количество сгруппированных строк

В принципе, я просто хочу знать, все ли группы рухнули. Я мог бы держать подсчет расширенных групп, наблюдая за событиями GroupRowExpanded и GroupRowCollapsed, но кажется, что должен быть лучший способ.

Мой текущий план - сравнить количество групп с <mytableview>.ViewData.RowCount. Если они разные, я должен иметь расширенную группу.

Я предполагаю, что ответ прост. Но у TcxGrid так много вариантов, что мне не очень повезло найти правильный.

+0

Try " .DataController.Groups.GroupingItemCount ", но вы хотите знать, есть ли группы, расширенные путем сравнения количества групп с RowCount? Если сетка имеет одинаковое количество записей и групп, какая точка группировки? – oPsDCadarn

+0

Это похоже на значение '.GroupedItemCount', или, по крайней мере, оно также возвращается как 1 - я группирую только по одному столбцу. В сетке нет одинакового количества записей и групп. Если 'ViewData.RowCount' совпадает с количеством групп, тогда я буду знать, что все группы рухнули. Проблема в том, что я не могу найти число групп. – Sentient

+0

Похоже, вы используете только одноуровневую группировку (но это не указано непосредственно в вопросе). Вероятно, DataController.Groups.ChildCount [-1] - это то, что вам нужно. Если вы используете иерархическую группировку, то, вероятно, вам придется перечислить и проверить все подгруппы рекурсивно. –

ответ

0

Я думаю, что вы ищете:

level0GroupCount := gridview.DataController.Groups.ChildCount[-1]; 

Это число групп данных на уровне 0.

Чтобы проверить, если каждые группы полные разрушились:

function AreGridGroupsCollapsed(_gridView : TcxGridDBTableView): Boolean; 
var 
    level0GroupCount : Integer; 
begin 
    level0GroupCount := _gridView .DataController.Groups.ChildCount[-1]; 
    Result := groupCount = _gridView.ViewData.RowCount; 
end; 
Смежные вопросы