繁体   English   中英

如何将具有多个表的DataSet分配给CrystalViewer?

[英]How assign DataSet with many Tables to CrystalViewer?

我需要将一个DataSet(具有许多表)分配给ReportDocument,然后将其分配给CystalReportViewer。

但是使用此代码,我无法显示报告。 我怎样才能做到这一点??

protected void btnGenerarErrores_Click(object sender, EventArgs e)
{
    if (txtNumeroBoleta.Text.Trim().Length > 0)
    {
        ReportDocument reporte = new ReportDocument();
        var ruta = Server.MapPath("ReporteErroresPorBoleta.rpt");
        reporte.Load(ruta);
        string parametro = txtNumeroBoleta.Text;

        clsReportesBoletaDat reportesBoleta = new clsReportesBoletaDat();
        DataSet setErrores = reportesBoleta.RetornarBoletasPorASA(parametro);

        DataSet dsNuevo = setErrores.Copy();
        reporte.SetDataSource(dsNuevo.Tables.ToString());

        CrystalReportViewer1.ReportSource = reporte;

        //if (setErrores.Tables.Count > 0)
        //{          
        //    CrystalReportViewer1.ReportSource = reporte;               
        //}
        txtNumeroBoleta.Text = "";
    }
}

首先清除报表对象的现有数据源连接:

reporte.DataSourceConnections.Clear();

您无需复制数据集,只需将数据源设置为原始数据集即可:

reporte.SetDataSource(setErrores);

如果数据集中的表名与报表中的表名/别名不匹配,则可能需要单独设置它们:

reporte.Tables["ReportTable"].SetDataSource(setErrores.Tables["DataSetTable"]);

然后将查看器的报告源设置为您的报告并刷新:

CrystalReportViewer1.ReportSource = reporte;
CrystalReportViewer1.RefreshReport();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM