2013-07-29 40 views
0

我是在asp.net中報告的新手,無法獲得對我有益的事情。 基本上,我做了一個告訴here的演示。一切正常,它生成了我的本地系統的報告。但是,沒有在Web服務器上工作。ASP.NET報告,什麼,如何以及何時使用RDLC

現在,我在這裏有一個困惑:在asp.net [VS 2010 - .NET 4.0],本地模式和服務器模式中有2種報告模式。本地模式具有RDLC擴展,服務器模式具有RDL作爲報告設計文件的擴展名,並且它需要Sql Server報告支持,另一方面,RDLC在客戶端計算機上生成[它可能看起來是一個愚蠢的問題,但,它是我的機器還是我的電腦,而不是Web服務器,意味着我無法在Web服務器上部署和使用它]。

混淆的基礎是我上傳了相同的演示項目在我的虛擬主機並運行它。報表查看器控件顯示完美,並且每件事情都看起來很好,但報表查看器工具欄下方缺少要呈現的實際報表。但是,與此同時,我能夠完整地下載報告的PDF,XLS和DOC格式,並生成實際的行和列,這表明報告正在生成(條形圖也包含在rdlc的設計,以及它的產生)。我想這是因爲網絡服務器沒有安裝Report Viewer庫,並且不知道如何渲染RDLC文件。

因此,這裏有實際的問題:

我是在可以在Web服務器上生成報告的思維正確的,當你有RDLC的報表文件格式或我應該使用RDL代替?

如果我用RDLC(本地報告)部署我的應用程序,當然在網絡服務器,它會正常工作嗎?是否可以安裝或獲取安裝在Web服務器上的報告查看器

何時應使用RDLC和RDL,何時不使用RDLC和RDL。前面的問題When to use RDLC over RDL reports?。,但我正在尋找在我的方案中更簡單的解釋。

回答

1

RDL和RDLC格式具有相同的XML模式。但是,在RDLC文件中,某些值(例如查詢文本)允許爲空,這意味着它們不會立即準備發佈到報表服務器。可以通過使用SQL Server 2008版本的報表設計器打開RDLC文件來輸入缺失的值。 (您必須首先將.rdlc重命名爲.rdl。)

RDL文件與ReportViewer控件運行時完全兼容。但是,RDL文件不包含ReportViewer控件的設計時間依賴於自動生成數據綁定代碼的一些信息。通過手動綁定數據,可以在ReportViewer控件中使用RDL文件。

注意:ReportViewer控件不包含用於連接數據庫或執行查詢的任何邏輯。通過分離出這種邏輯,ReportViewer已經與所有數據源兼容,包括非數據庫數據源。但是這意味着當ReportViewer控件使用RDL文件時,RDL文件中的SQL相關信息會被控件忽略。主機應用程序負責連接到數據庫,以ADO.NET DataTables的形式執行查詢並向ReportViewer控件提供數據。

參考:http://forums.asp.net/t/1173578.aspx/1

同時檢查:http://dinesql.blogspot.com/2010/11/reporting-services-difference-between.html

1

RDLC


  1. 其客戶端報告,報告附帶像Windows應用程序或Web應用程序的應用程序。
  2. 報告可以導出的格式方面的功能有限。
  3. 報告的數據處理和渲染消耗了報告託管的應用程序的地址空間,它可能是Windows或Web。這可能會導致性能問題,如果你經常拉大量的報告。
  4. 這不需要任何單獨的SQL實例或許可證。

RDL


  1. 這是服務器端的報告,報告在稱爲SQL報告服務服務和輸出專用服務器進程處理被饋送到應用或最終用戶。
  2. 服務器報告旨在執行和縮放。
  3. 作爲單獨的進程/服務運行並需要SQL許可證。
  4. 提供導出到RDLC中不可用的多種格式
  5. 服務器報告是可擴展產品。您可以包含自己的數據處理,安全性或附加擴展。
  6. 它支持自動發送電子郵件和使用訂閱的文件交付報告。

摘要


  1. 考慮客戶端的報告(RDLC)如果你打算不經常使用簡單和更小的報告。
  2. 考慮(rdl)是否需要設置專用的中央服務來滿足各種應用程序用戶的報告要求。這可以根據需要進行擴展,監控,優化和擴展。