首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DevExpress XtraReport母版-从主报表传递参数时的详细子报表异常

DevExpress XtraReport母版-从主报表传递参数时的详细子报表异常
EN

Stack Overflow用户
提问于 2014-10-31 00:38:13
回答 1查看 4.6K关注 0票数 0

我学习做一个由DevExpress 14.1.4的分报告

我有XtraReport1,用Orders表XtraReport2绑定它,将它绑定到OrderDetails表XtraReport2有参数oID,按顺序登记详细信息。

在beforePrint的XtraReport1事件中,我确实喜欢这个教程:

代码语言:javascript
运行
复制
private void xrLabel1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            int n = Convert.ToInt32(GetCurrentColumnValue("MaKhoa"));
            ((XtraReport2)((XRSubreport)sender).ReportSource).MK.Value = n;
        }

但它的投球

代码语言:javascript
运行
复制
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'.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 06:09:31

原因:

您处理了错误控件的BeforePrint事件。您正在处理xrLable1事件,因此发送方将是一个XRLabel,并且试图将其转换为XRSubReport,因此您将得到以下错误:

代码语言:javascript
运行
复制
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事件来设置值,检查下面的代码片段:

代码语言:javascript
运行
复制
using System.Drawing.Printing;
// ... 

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

我建议您按照下面的文档链接正确地进行主详细报告:

主详细报告

如何:使用子报表创建主详细报告

第3课-创建主详细报告

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26665772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档