使用现有的水晶报表与一个新的数据集

本文关键字:一个 数据集 水晶 报表 | 更新日期: 2023-09-27 18:11:55

我正试图绑定已经创建的水晶报告,这意味着我有.rpt文件。现在我使用添加-报告-现有项目将其添加到我的应用程序中。该报表是基于oracle表视图创建的。在我的程序中,我创建了一个动态数据集,该数据集具有此报告所需的所有字段。现在我需要找到一种方法来使用这个现有的.rpt文件,并从数据集解析我的数据,以创建pdf格式的报告。
我知道如何将报告导出到pdf。但是我不知道如何使用这个.rpt文件并通过它解析我的数据集数据。

这是我到目前为止写的代码

using System;
using  System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using System.Data;
using CrystalDecisions.CrystalReports.Engine;

namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string connetionString = null;
        OracleConnection connection;
        OracleDataAdapter OracleAdapter;
        DataSet ds = new DataSet();
        string firstSql = null;
       // string secondSql = null;
        connetionString = "blah blah
        firstSql = "select * from STATEMENT_DomESTIC";
       // secondSql = "Select * from DOM_DETAILS";
        connection = new OracleConnection(connetionString);
        try
        {
            connection.Open();
            OracleAdapter = new OracleDataAdapter(firstSql, connection);
            OracleAdapter.Fill(ds, "domestic_header");
            OracleAdapter.SelectCommand.CommandText = secondSql;
            OracleAdapter.Fill(ds, "domestic_detail");
            OracleAdapter.Dispose();
            connection.Close();
           // GridView1.DataSource = ds;
           // GridView1.DataBind();

        }
        catch (Exception ex)
        {

        }
    }
}
}

我做了这方面的研究,但是,无法找到一个很好的例子,这可以做到。

使用现有的水晶报表与一个新的数据集

您需要使用Crystal提供的ReportDocument对象。例如…

ReportDocument reportDoc = new ReportDocument();
reportDoc.Load("YourReportName");  //or path to your report
reportDoc.SetDataSource(ds);

这个做你想要的吗?