الحصول على قيم من الصف الحالي عندما ربط البيانات

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