使用现有的水晶报表与一个新的数据集
本文关键字:一个 数据集 水晶 报表 | 更新日期: 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);
这个做你想要的吗?