Получить значения из текущей строки при привязке данных
-
22-08-2019 - |
Вопрос
Я использую 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;
}
}