本文將逐步告訴您,如何建立範例 Microsoft ASP.NET Web 應用程式,使用 Microsoft SQL Server 2000 報告服務 SOAP API 和 Microsoft SQL Server 2005 報告服務 SOAP API 來執行下列:
- 轉譯部署在如.pdf 檔案格式的支援的檔案格式的報表伺服器上一個報表。
- 開啟而不儲存檔案的 Web 網頁上呈現的報表對應到您的電腦上呈現報表。
附註若要呈現報告,以要求的檔案格式使用 ASP.NET Web 應用程式,支援檔案格式的程式必須安裝在您的電腦上。比方說欲呈現至.pdf 檔案格式的報表 Adobe Acrobat 讀取器必須安裝在您的電腦上。
您可以使用報表服務來產生報表,您就可以使用報表管理員 」 檢視報表。報表管理員 」 是包含在報告服務。利用報表管理員 」 可呈現您所支援的報告服務的不同檔案格式的報表。要呈現特定檔案格式的報表,請依照下列步驟執行:
- 啟動 「 報表管理員 」。
- 找出您的報表在 「 報表管理員 」 中,然後按一下 [預覽報表報表。
- 在 [選取一種格式] 清單中,按一下您要用來呈現您的報表的檔案格式,然後按一下 [匯出]。
按一下 [
匯出 報表管理員 」 之後 [
檔案下載] 對話方塊隨即開啟。
檔案下載] 對話方塊提供將呈現的報表儲存在電腦上的選項。即使在開啟報表而不儲存報告時,會對應到呈現報表的檔案被建立在您的電腦上的。
如果想要呈現要求的檔案格式的報表而不需要建立檔案對應到您的電腦上呈現報表即可使用
Render 方法中報告服務 SOAP API。如需更多有關資訊
Render 方法為 SQL Server 2000 報表服務,請造訪下列 Microsoft 網站:
如需更多有關資訊
Render 方法為 SQL Server 2005 報表服務,請造訪下列 Microsoft 網站:
如果要建立範例 ASP.NET Web 應用程式轉譯會部署至所要求的檔案格式的報表伺服器上一個報表,並呈現的報表以開啟之 Web 網頁上使用報告服務 SOAP API,請依照下列步驟執行。
附註這個範例應用程式呈現公司業績範例報表為.pdf 檔案格式。因此,您必須確定公司業績範例報表部署在您的報表伺服器 SampleReports 資料夾中。 您也必須確定程式 (如 Adobe Acrobat 讀取器安裝在電腦上才能執行這個應用程式。
使用 Microsoft Visual Studio.NET 2003年來轉譯 SQL Server 2000 報表服務或 SQL Server 2005 報表服務中包含 [公司業績範例報表
- 啟動 Microsoft Visual Studio.NET 2003年。
- 在 [檔案] 功能表上按一下 [新增],然後按一下 [專案]。
- 在 [新增專案] 對話方塊的 專案類型,] 下按一下 [Visual C# 專案]。
- 在 [新增專案] 對話方塊中,範本,] 下方按一下 ASP.NET Web 應用程式。
- 在 [位置] 方塊輸入 http:// ReportServerName / RenderCompanySales,然後按一下 [確定] 以建立專案。
- 將 Web 參考加入至 ReportService Web 服務。要這麼做,請您執行下列步驟:
- 在 [專案] 功能表上按一下 加入 Web 參考。
- 在 [加入 Web 參考] 對話方塊在 [URL] 方塊輸入 http:// ReportServerName /ReportServer/ReportService.asmx],然後再按一下 [Go]。
- 在 [Web 參考名稱] 方塊鍵入 RSWebReference,然後按一下 [加入參考]。
- 在左邊窗格的下 工具箱,按一下 [Web Form,然後再連按兩下 按鈕 若要將按鈕控制項加入至 Web 表單。
- 使用下列資訊來設定按鈕控制項的屬性:
- (ID): RenderTest
- 文字: Render 報表在 PDF 格式
- 按一下 [檢視] 功能表 程式碼。
- 在 [程式碼] 視窗的頂端加入下列程式碼:
using RenderCompanySales.RSWebReference;
- 為您的程式碼中之 RenderTest 按鈕 Click 事件的事件處理常式中加入以下方法:
private void RenderTest_Click(object sender, System.EventArgs e)
{
RSWebReference.ReportingService rs = new RSWebReference.ReportingService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
Byte[] result;
string encoding;
string mimetype;
ParameterValue[] parametersUsed;
Warning[] warnings;
string[] streamids;
result = rs.Render("/SampleReports/Company Sales","PDF",null,null,null,null,null,out encoding,out mimetype,out parametersUsed,out warnings,out streamids);
Response.ClearContent();
Response.AppendHeader("content-length", result.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(result);
Response.Flush();
Response.Close();
}
- 在 [偵錯] 功能表上按一下 [開始] 執行程式碼]。
- 在 WebForm1] Web 頁面中,按一下 Render 報表以 PDF 格式。
使用 Microsoft Visual Studio 2005 來轉譯包含在 SQL Server 2005 報表服務 [公司業績範例報表
- 啟動 Microsoft Visual Studio 2005。
- 在 [檔案] 功能表上按一下 [新增],然後按一下 [網站]。
- 在 [新增網站] 對話方塊按一下 [Visual Studio 安裝範本,] 下的 [ASP.NET 網站
- 按一下 [位置] 清單中的 [HTTP],然後輸入 http:// ReportServerName / RenderCompanySales位置] 清單旁的方塊中
- 在 [語言] 清單按一下 [Visual C#,再按 [確定]。
- 將 Web 參考加入至 ReportService Web 服務。要這麼做,請您執行下列步驟:
- 在 [網站] 功能表上按一下 加入 Web 參考。
- 在 [加入 Web 參考] 對話方塊在 [URL] 方塊輸入 http:// ReportServerName /ReportServer/ReportExecution2005.asmx],然後再按一下 [Go]。
- 在 [Web 參考名稱] 方塊鍵入 RSWebReference,然後按一下 [加入參考]。
- 在 [檢視] 功能表上按一下 [專案設計工具,然後再將 Button 控制項加入至 Web 表單。
- 使用下列資訊來設定 按鈕 控制項的屬性:
- (ID): RenderTest
- 文字: Render 報表在 PDF 格式
- 按一下 [檢視] 功能表 程式碼。
- 將下列程式碼加入程式碼視窗的頂端:
- Add the following method as the event handler of the click event for the RenderTest button in your code.
protected void RenderTest_Click(object sender, EventArgs e)
{
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Render arguments
byte[] result = null;
string reportPath = "/AdventureWorks Sample Reports/Company Sales";
string format = "PDF";
string historyID = null;
string encoding;
string mimeType;
string extension;
Warning[] warnings = null;
string[] streamIDs = null;
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, historyID);
String SessionId = rs.ExecutionHeaderValue.ExecutionID;
result = rs.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
Response.ClearContent();
Response.AppendHeader("content-length", result.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(result);
Response.Flush();
Response.Close();
} - 在 [偵錯] 功能表上按一下 [開始偵錯] 執行程式碼]。
- 在 Visual Studio 2005 便會開啟 Web 網頁上, 按一下 [在 PDF 格式呈現報表。
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
842854?
(http://support.microsoft.com/kb/842854/
)
ReportingService.Render 方法主題、 ReportingService.CreateDataDrivenSubscription 方法] 主題,並報告服務線上叢書 》 中的 [ReportingService.CreateReportHistorySnapshot 方法] 主題中的文件錯誤