Получить значения из текущей строки при привязке данных - PullRequest
0 голосов
/ 01 апреля 2009

Я использую DevExpress XtraReports в приложении WinForms, но в равной степени применим и к другим инструментам отчетности.

Я бы хотел выполнить некоторую логику для каждой строки в отчете, так как он «визуализируется», построчно. В частности, я хотел бы скрыть штрих-код, если данные для штрих-кода недоступны.

В настоящее время я делаю следующее:

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;
    }
}

Но это просто пахнет плохо. Я хотел бы получить доступ к текущей строке данных в этом методе и работать с «реальными» свойствами объекта, но не могу. Каков типичный шаблон для этого в других генераторах отчетов? Я даже использую правильное событие? Я пытался Detail_BeforePrint, но у меня не было никакой дополнительной информации.

1 Ответ

4 голосов
/ 07 мая 2009

Используйте Detail_BeforePrint в сочетании с GetCurrentColumnValue () примерно так:

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;
    }
}
...