DevExpress Xtra Relazione: come visualizzare un'etichetta nel piè di pagina gruppo quando la band dettaglio non ha dati?

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

  •  11-09-2019
  •  | 
  •  

Domanda

Se un avere un'etichetta chiamata: LBL Attenzione. Mi piacerebbe visualizzarlo (Visible = True) quando la banda di dettaglio non ha alcun record. L'etichetta è nel piè di pagina del gruppo.

È stato utile?

Soluzione

Questo evento è allegato alla relazione stessa (nel mio esempio, è chiamato XtraReport1). GetCurrentRow() è un metodo su XtraReportBase che restituisce i dati correnti dalla sorgente vincolante report principale. Se i dati non esiste, restituisce null.

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

    lblWarning.Visible = noDataFound;
}

Lo stesso gestore in 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

Altri suggerimenti

Non di fronte a mia macchina dev al momento però qualcosa di simile può funzionare

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top