之前測試了使用 VWD2010 Express 可以顯示出來 ReportViewer 的資料,但過程有點小亂,所以再整理一篇比較簡單完整的版本
實作如下:
建立測試環境
虛擬機 裝 XP SP3系統 → 安裝 IIS → Framework 3.5 → WindowsInstaller4.5 → WindowsPowerShell1.0 → SQL Server 2008 R2 Express with Advanced Services → VWD 2008 Express → VWD 2008 Express Reportviewer套件 → VWD 2010 Express → VS2010SP1 → ReportViewer轉發性套件
建立報表
VWD 2010 Express → 檔案 一 新網站 → C# ASP.NET空網站 → Web位置 Http http://xxx/WebSite → 加入新項目 Web Form TestReportViewer.aspx → 關掉 VWD 2010 Express → VWD 2008 Express → 開啟 網站 WebSite ( 應該會出弄警告訊息,說Framework版本不符,先選否 ) → 從VWD 2008 Express 工具箱 拉一個 Reportviewer 到 TestReportViewer.aspx → 在設計畫面編輯報表 → 試跑出來是OK的 (主要是讓 VWD 2008 Express幫忙在web.config產生一些要用到的東西) → 再用VWD 2010 Express 開啟 WebSite → 加入DLL (這一步要再確認 是不是在先前就加了,有點忘了) → 修改 web.config Version= 9.0.0.0 改成 10 → 拉一個 AJAX 擴充功能 的 ScriptManager → 再拉一個 UpdatePanel 就 OK 了。
如果不拉 ScriptManager ,會出現錯誤
如果不拉UpdatePanel,也是能運作,但會有警告訊息
VWD 2010 Express 設計畫面會出現紅字,但這可能是正常的,因為它不讓你編輯報表,只能呈現出來報表
ObjectDataSource1 是 VWD 2008 Express 用 ReportViewer精靈產生出來的,但相同的,如果手動用 VWD 2010 Express 去 建 ObjectDataSource 出來,也是可以用的。
============ HTML CODE ===================================
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestReportViewer.aspx.cs" Inherits="calllights_TestReportViewer" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<div>
<rsweb:reportviewer runat="server" ID="Reportviewer1" Font-Names="Verdana"
Font-Size="8pt" Height="400px" Width="400px">
<localreport reportpath="c:\inetpub\wwwroot\WebSite\calllights\Report1.rdlc">
<datasources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1"
Name="lshospDataSet_vroomlightdata" />
</datasources>
</localreport>
</rsweb:reportviewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetData"
TypeName="lshospDataSetTableAdapters.vroomlightdataTableAdapter">
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>
<!-- VWD 2008 ReportViewer Version= 9.0.0.0
VWD 2010 ReportViewer Version =10.0.0.0 把 9 改成 10 -->
<system.web>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false" />
</httpHandlers>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation>
</system.web>
沒有留言:
張貼留言