Отчет DevExpress Xtra:Как отобразить метку в нижнем колонтитуле группы, если в подробной группе нет данных?
-
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
Не связан с StackOverflow