December 30,2005 23:58
[ASP.Net]以Pull模式連結Crystal Report
大致上三個部份:
一、ADO.Net連結DataSet:
1.根據要規劃的rpt需求欄位設計一個「空」的DataSet存放設設規格,可透過「加入新項目」→「資料」→「資料集」 建立 xsd檔。
2.取得合適的Table後,若所用到的rpt欄位牽涉兩個以上表格,須自行加入欄位→「加入」→「新增element」,並且設定一致的資料格式(integer, string, DateTime)。
二、編輯*.rpt檔案,設定資料來源為「ADO.NET資料集」→「所建立的*.xsd檔」。
三、ASP.NET的aspx檔案建立CrystalReportViewer,透過ReportDocument連結xsd,並以Pull方式Dump資料給預訂的xsd檔案。
*.aspx.cs
所須命名空間:
using System.Data.SqlClient;
using CrystalDecisions.Shared;
using CrystalDecisions.Web;
using CrystalDecisions.CrystalReports.Engine;
程式碼:
void FillCrystalReport()
{
SqlConnection conn = new SqlConnection(Config.getInstance().DBConnectionString);
DataSet ds = new DataSet()
try
{
conn.Open();
string sql = " "; //查詢字串
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
da.Fill(ds,"crYear");
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("實體路徑")+"/*.rpt 檔名");
rptDoc.SetDataSource(ds.Tables["crYear"]); //設定ReportDocument之DataSource是
crv.ReportSource=rptDoc; //建立之Cystal Report Viewer ID為crv
}
catch(Exception exp)
{
Response.Write(exp.Message);
}
finally
{
conn.Close();
ds.Dispose();
}
}
容後補齊。(這句話通常沒有意義......囧)
引用URL
http://cgi.blog.roodo.com/trackback/921294


