Как узнать количество развернутых / свернутых основных строк и сгруппированных строк в DevExpress GridView? - PullRequest
1 голос
/ 19 января 2012

В настоящее время я использую DevExpress 10.2 в Visual Studio 2010. В предыдущем вопросе я пытался напечатать текущее пользовательское представление DevExpress GridControl с выбором пользователем развернутых или свернутых основных строк и / илигрупповые разделы.Мне сказали, что это было невозможно в это время.Теперь я решил использовать следующий код:

gvPOinvoiceBanded.OptionsPrint.ExpandAllGroups = False
gvPOinvoiceBanded.OptionsPrint.ExpandAllDetails = False

, когда я хочу, чтобы он полностью свернулся во время печати, поскольку по умолчанию они установлены на true.

Мне просто интересно, есть ли какой-нибудь способ проверить общее количество развернутых мастер-строк или общее количество свернутых мастер-строк.Я также хотел бы сделать то же самое для групп, поскольку вы можете расширить группы, в то время как мастер-строки нет.

1 Ответ

4 голосов
/ 20 января 2012

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

    Dim ExpandedGroupCount As Integer = 0
    Dim Handle As Integer = -1  'group rows have negative row handles
    Do Until GridView1.GetRow(Handle) Is Nothing
        If GridView1.GetRowExpanded(Handle) Then
            ExpandedGroupCount += 1
        End If
        Handle -= 1
    Loop
    'Do whatever with expanded group count
    MsgBox(String.Format("Number of Expanded Group Rows: {0}{2}Number of Group Rows: {1}",
          ExpandedGroupCount, Math.Abs(Handle + 1), Environment.NewLine))

Аналогично, вы можете сделать это, чтобы получить счетчик расширенных основных строк:

    Handle = 0
    Dim ExpandedMasterRowCount As Integer = 0
    Do Until GridView1.GetRow(Handle) Is Nothing
        If GridView1.IsMasterRow(Handle) Then
            If GridView1.GetMasterRowExpanded(Handle) Then
                ExpandedMasterRowCount += 1
            End If
        End If
        Handle += 1
    Loop
    MsgBox(String.Format("Number of Expanded Master Rows: {0}", ExpandedMasterRowCount))

Конечно, если вы только проверяете, чтобы увидеть, нужно ли вам устанавливать коллапс, это, вероятно, не стоит усилий. Прямой собственности, предоставляющей счет, который вы ищете, не существует.

Возможно, вы также можете использовать события, которые возникают, когда строки свернуты и расширены, чтобы отследить счетчик при его изменении. Вы должны быть осторожны с этим, потому что событие происходит только один раз, когда все разворачивается или разворачивается. Поэтому, если вы используете этот метод, обязательно проверьте rowHandle в параметре аргументов события для GridControl.InvalidRowHandle. Это значение используется в случае свертывания или развертывания всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...