找回密码
 立即注册

QQ登录

只需一步,快速开始

NF.Elitel

中级会员

2

主题

7

帖子

724

积分

中级会员

积分
724

微信认证勋章

最新发帖
NF.Elitel
中级会员   /  发表于:2015-12-12 10:38  /   查看:4139  /  回复:1
问题描述:利用RDL报表实现后台绑定数据集,一个数据集按照官方教程绑定运行时数据源可以时间,但报表绑定多个DataSet,则提示”报表存在问题“
protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }
            GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport();
            report1.Load(new System.IO.FileInfo(Server.MapPath("../") + "\\Report\\PageReport_DataSource_DesignTime.rdlx"));
            report1.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
            report1.Report.ReportParameters[0].DefaultValue.Values.Clear();
            report1.Report.ReportParameters[0].DefaultValue.Values.Add("1");
            WebViewer1.Report = report1;
        }
        void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSourceName == "DataSource1")
            {
                if (args.DataSetName == "DataSet1")
                {
                    args.Data = GetDataSource();
                }
            }
        }
        private DataTable GetDataSource()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("产品编号");
            dt.Columns.Add("产品名称");
            dt.Columns.Add("单价");
            dt.Columns.Add("库存量");
            dt.Rows.Add("A10002", "苹果", 20, 50);
            dt.Rows.Add("A15681", "香蕉", 20, 50);
            dt.Rows.Add("A15681", "菠萝", 20, 50);
            return dt;
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-12-14 10:10:00
沙发
您好,

如果您的两个数据集都需要后台赋值的后,您的代码中,没有对DataSet2进行赋值
需要增加对DataSet2的赋值
                if (args.DataSetName == "DataSet2")
                {
                    args.Data = XXXX();
                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部