December 30,2005

[ASP.Net]以Pull模式連結Crystal Report

建立xsd檔  

設定「所需要」的資料欄位

以ADO.Net資料庫連結*.rpt與*.xsd


大致上三個部份:

一、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();
   }
}

容後補齊。(這句話通常沒有意義......囧)



Posted by soboring at 樂多Roodo! │23:58 │引用(0)
樂多分類:網路/3C 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/921294