DevExpress XtraReport Исключение подотчета Master-detail при передаче параметра из основного отчета

Я изучаю сделать дополнительный отчет DevExpress 14.1.4

У меня есть XtraReport1, связал его с таблицей заказов XtraReport2, привязал его к таблице OrderDetails. XtraReport2 имеет параметр oID, детали фильтра по порядку

В событии beforePrint XtraReport1 мне понравилось руководство:

private void xrLabel1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            int n = Convert.ToInt32(GetCurrentColumnValue("MaKhoa"));
            ((XtraReport2)((XRSubreport)sender).ReportSource).MK.Value = n;
        }

но его бросок

An unhandled exception of type 'System.InvalidCastException' occurred in WindowsFormsApplication1.exe

Additional information: Unable to cast object of type 'DevExpress.XtraReports.UI.XRLabel' to type 'DevExpress.XtraReports.UI.XRSubreport'.

person Andiana    schedule 31.10.2014    source источник


Ответы (1)


Причина:
Вы обработали событие BeforePrint неправильного элемента управления. Вы обрабатываете событие xrLable1, поэтому отправителем будет XRLabel, и вы пытаетесь передать его в XRSubReport, поэтому вы получаете эту ошибку:

private void xrLabel1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
    int n = Convert.ToInt32(GetCurrentColumnValue("MaKhoa"));
    ((XtraReport2)((XRSubreport)sender).ReportSource).MK.Value = n; // you have error here
}

Вы должны обработать событие SubReport BeforePrint, чтобы установить значение, проверьте следующий фрагмент кода:

using System.Drawing.Printing;
// ... 

private void xrSubreport1_BeforePrint(object sender, PrintEventArgs e) {
    ((XtraReport2)((XRSubreport)sender).ReportSource).CatID.Value = 
        Convert.ToInt32(GetCurrentColumnValue("CategoryID"));
}

Я предлагаю вам воспользоваться приведенными ниже ссылками на документацию, чтобы правильно составить подробный сводный отчет:
Подробный сводный отчет
Как: создать основной подробный отчет с использованием вложенных отчетов
Урок 3 - Создание подробного отчета

person Niranjan Singh    schedule 31.10.2014
comment
Да, я тоже следил за ним, но я не смотрю внимательно на владельца beforePrint, поэтому сделал ошибку: 3 - person Andiana; 31.10.2014