在网上查了半天,写了一个通过.xsd文件动态绑定数据的水晶报表,很简单的例子。
Default.aspx
<%@ Page Language=
"C#" AutoEventWireup=
"true" CodeBehind=
"Default.aspx.cs" Inherits=
"WebAppReport._Default" %>
<%@ Register assembly= "CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace= "CrystalDecisions.Web" tagprefix= "CR" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="True" Height="1121px" ReportSourceID="CrystalReportSource1"
Width="894px" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>
</div>
</form>
</body>
</html>
<%@ Register assembly= "CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace= "CrystalDecisions.Web" tagprefix= "CR" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="True" Height="1121px" ReportSourceID="CrystalReportSource1"
Width="894px" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebAppReport
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
//----------------------------------------------------------
// CREATE TABLE
//----------------------------------------------------------
DataTable dt = new DataTable();
dt.TableName = "TABLE1";
dt.Columns.Add( "X", System.Type.GetType( "System.Int32"));
dt.Columns.Add( "Y1", System.Type.GetType( "System.Double"));
dt.Columns.Add( "Y2", System.Type.GetType( "System.Double"));
//----------------------------------------------------------
// SET DATA
//----------------------------------------------------------
for ( int i = 1; i < 100; i++)
{
DataRow dr = dt.NewRow();
dr[ "X"] = i * 0.2;
dr[ "Y1"] = Math.Log(i * 0.2, 5);
dr[ "Y2"] = Math.Log(i * 0.2, 10);
dt.Rows.Add(dr);
}
DataSet ds = new DataSet();
ds.Tables.Add(dt);
this.CrystalReportSource1.ReportDocument.SetDataSource(dt);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebAppReport
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
//----------------------------------------------------------
// CREATE TABLE
//----------------------------------------------------------
DataTable dt = new DataTable();
dt.TableName = "TABLE1";
dt.Columns.Add( "X", System.Type.GetType( "System.Int32"));
dt.Columns.Add( "Y1", System.Type.GetType( "System.Double"));
dt.Columns.Add( "Y2", System.Type.GetType( "System.Double"));
//----------------------------------------------------------
// SET DATA
//----------------------------------------------------------
for ( int i = 1; i < 100; i++)
{
DataRow dr = dt.NewRow();
dr[ "X"] = i * 0.2;
dr[ "Y1"] = Math.Log(i * 0.2, 5);
dr[ "Y2"] = Math.Log(i * 0.2, 10);
dt.Rows.Add(dr);
}
DataSet ds = new DataSet();
ds.Tables.Add(dt);
this.CrystalReportSource1.ReportDocument.SetDataSource(dt);
}
}
}
转载于:https://blog.51cto.com/jammeswang/278012