Получить значения из текущей строки при привязке данных

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

Вопрос

Я использую 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, но там не было никакой дополнительной информации.

Это было полезно?

Решение

Используйте 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;
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top