DeVexpress XTRA 보고서 : 세부 사항 대역에 데이터가 없을 때 Group Footer에 레이블을 표시하는 방법은 무엇입니까?

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

  •  11-09-2019
  •  | 
  •  

문제

A가 Lable Warning이라고 부르는 경우. 디테일 밴드에 레코드가 없으면 표시하고 싶습니다 (Visible = true). 레이블은 그룹 바닥 글에 있습니다.

도움이 되었습니까?

해결책

이 이벤트는 보고서 자체에 첨부되어 있습니다 (내 예에서는 xtrareport1이라고합니다). GetCurrentRow() 방법입니다 XtraReportBase 이는 기본 보고서 바인딩 소스에서 현재 데이터를 반환합니다. 데이터가 존재하지 않으면 NULL을 반환합니다.

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

다른 팁

현재 내 Dev 기계 앞에 있지 않지만 이와 같은 것이 작동 할 수 있습니다.

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