我学习做一个由DevExpress 14.1.4的分报告
我有XtraReport1,用Orders表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'.
发布于 2014-10-31 06:09:31
原因:
您处理了错误控件的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"));
}
我建议您按照下面的文档链接正确地进行主详细报告:
https://stackoverflow.com/questions/26665772
复制相似问题