Devexpress最终用户报表设计器:从数据库检索报表时,数据源绑定为空

时间:2014-06-03 00:28:07

标签: devexpress devexpress-windows-ui devexpress-mvc

我正在使用asp.net mvc web api创建报告服务器。我正在使用devexpress的XRDesignForm对象从web api reiving报告中检索数据。我将报告数据发布回web api。我面临的问题是,如果我使用xtrareport obejct并手动绑定数据源,它就可以正常工作。

            XtraReport report = new XtraReport();
            report.DataSource = setupSummary.FillDataSet();

            report.DataMember = ((DataSet)report.DataSource).Tables[0].TableName;
            designForm.OpenReport(report);

            //designForm.Show();


            designForm.ShowDialog(this);

我可以成功地编制此报告,并可以保存到数据库中,

但是如ReportStorage的文章中所示,如果我只使用来自服务器的报告名称从数据库检索报告,则数据源始终为null.i.e。

      XRDesignForm designForm = new XRDesignForm();

        string url = GetSelectedUrl();
        if (!string.IsNullOrEmpty(url))

            designForm.OpenReport(url);
        designForm.ShowDialog(this);

似乎在将动态报告保存到数据库(作为二进制文件)时,它会丢失数据源绑定。 请帮帮我。 感谢

2 个答案:

答案 0 :(得分:2)

Aqdas,非常感谢你。

报告布局中存在类似的错误,

我的解决方案是,在布局后再次设置DataSource

XtraReport rep = null;

rep = new rptReqVac();

Stream layoutStream = null;

layoutStream = mGetLoyoutStream(id);

rep.LoadLayout(layoutStream);

rep.DataSource = new dsREQPrintVac();

reportDesigner.OpenReport(rep);

希望它会帮助某人: - )

答案 1 :(得分:0)

最后花了很多时间后,我已经解决了这个问题,问题实际上当你将报告保存到数据库中时,它会跳过DataAdapter报告。因此,在保存之前,您需要先对数据适配器或报告执行null操作,然后在获取缓冲区进行报告布局之前再次进行操作。

希望它会帮助某人:-)