Отчет DevExpress Xtra: Как отобразить метку в нижнем колонтитуле группы, если у полосы данных нет данных? - PullRequest
0 голосов
/ 01 декабря 2009

Если есть ярлык с именем: lblWarning. Я хотел бы отобразить его (Visible = True), когда на полосе детализации нет записей. Метка находится в нижнем колонтитуле группы.

Ответы [ 2 ]

1 голос
/ 11 февраля 2010

Это событие прикреплено к самому отчету (в моем примере оно называется XtraReport1). GetCurrentRow() - это метод на XtraReportBase, который возвращает текущие данные из первичного источника привязки отчета. Если данные не существуют, возвращается ноль.

private void XtraReport1_BeforePrint(object sender, PrintEventArgs e)
{
    bool noDataFound = GetCurrentRow() == null;

    lblWarning.Visible = noDataFound;
}

Тот же обработчик в VB:

Private Sub XtraReport1_BeforePrint(ByVal sender As System.Object, ByVal e As PrintEventArgs) Handles MyBase.BeforePrint
    Dim noDataFound As Boolean = GetCurrentRow() Is Nothing

    lblWarning.Visible = noDataFound
End Sub
0 голосов
/ 03 декабря 2009

В данный момент не перед моей машинкой, но что-то подобное может работать

Dim HadRecords As Boolean = False

Private Sub GroupFooter1_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles GroupFooter1.BeforePrint
    If HadRecords = False Then
        lblWarning.visible = True
    Else
        lblWarning.visible = False
        HadRecords = False ' reset the flag '
    End If
End Sub

Private Sub Detail_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles Detail.BeforePrint
    HadRecords = True ' set the flag '
End Sub
...