六、練習4:把你的水晶報表綁定到 Crystal Report VIEwer
說明 在這個練習中,你將把Stock對象報告綁定 到Crystal Report VIEwer,把報告的數據源設置為一個對象集合,並且用編程 方式來填充一個對象集合。
詳細步驟
1. 把報告綁定到Crystal Report VIEwer。
· 切換到默認的Code-Behind類, Default.ASPx.cs。
· 在類簽名之上,加入對命名空間 System.Collections的引用。
using System.Collections;
· 這個參考使你能夠存取ArrayList類,而 ArrayList實現了ICollection。這使得ArrayList成為用來構建一個為Crystal Reports所識別的對象集合的若干類的類型之一。
· 添加一個新 的類級別的ArrayList,命名為stockValues。
private ArrayList stockValues;
· 為ReportDocument報告包裝類添加一個 新的類級別的聲明,變量名為stockObjectsReport。並把它設置為private型。
private ReportDocument StockObjectsReport;
· 在你在練習1創建的 ConfigureCrystalReports()方法中,聲明一個字符串變量,命名它為 reportPath,並且把一個指向本地報告的運行時刻路徑賦值給它。把本地報告文 件的名字作為一個字符串參考傳遞給Server.MapPath()方法。這樣以來,把本地 報告映射到運行時刻文件路徑。
String reportPath = Server.MapPath("StockObjects.rpt");
· 實 例化ReportDocument類。
StockObjectsReport = new ReportDocument();
· 在下一行中,調用 ReportDocument實例的Load()方法,並且把reportPath字符串變量傳遞給它。
StockObjectsReport.Load (reportPath);
· 這個ReportDocument類是 CrystalDecisions.CrystalReports。Engine命名空間的一個成員。你已經在 “練習1: Web應用程序安裝”中添加了對這個命名空間的聲明(在C# 中是使用“using”)。當你實例化ReportDocument並且加載一個報 告時,你可以通過SDK來存取這個報告。
· 然後,把這個報告的 數據源設置為“stockValues ArrayList”。
StockObjectsReport.SetDataSource (stockValues);