Отчет DevExpress Xtra:Как отобразить метку в нижнем колонтитуле группы, если в подробной группе нет данных?

StackOverflow https://stackoverflow.com/questions/1828308

  •  11-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Это событие прикрепляется к самому отчету (в моем примере оно называется 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

Другие советы

На данный момент не перед моей машиной разработчика, однако что-то вроде этого может сработать

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top