Frage

Ich bin mit DevExpress XtraReports in einer WinForms-Anwendung, könnte aber auch für andere Reporting-Tools anwenden.

würde Ich mag eine gewisse Logik pro-Zeile im Bericht auszuführen, wie es „gemacht“ wird, auf einer Zeile-für-Zeile-Basis. Insbesondere würde Ich mag einen Barcode verstecken, wenn die Daten für den Barcode nicht verfügbar ist.

Zur Zeit mache ich folgendes:

private void xrBarCode2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
    var barcode = (XRBarCode)sender;

    if (barcode.Text.Trim() == "")
    {
        barcode.Visible = false;
        lblWarning.Visible = true;
    }
    else
    {
        barcode.Visible = true;
        lblWarning.Visible = false;
    }
}

Aber das einfach nur schlecht riecht. Ich mag die aktuelle Datenzeile in diesem Verfahren für den Zugriff auf und die „echten“ Eigenschaften des Objekts arbeiten, aber nicht kann. Was ist das typische Muster für diesen in anderen Reportgeneratoren? Verwende ich auch die richtige Veranstaltung? Ich habe versucht, Detail_BeforePrint, aber das hatte keine zusätzliche Informationen.

War es hilfreich?

Lösung

Verwendung in Verbindung mit Detail_BeforePrint GetCurrentColumnValue () wie folgt:

private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
    if (string.IsNullOrEmpty(GetCurrentColumnValue("BarcodeColumnName"))) {
        barcode.Visible = false;
        lblWarning.Visible = true;
    } else {
        barcode.Visible = true;
        lblWarning.Visible = false;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top