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