5

好吧,我正在爲我工​​作的公司構建一種報告中心,而且很容易的部分是構建基於Web的文件瀏覽器,現在我正在討論它的報告方面,要開始它,我正在整合Crystal Reports。 我已經從他們的SAP網站獲得了文件,但我遇到了一些問題,首先,我發現的所有示例都使其必須定義數據源/數據庫,並在代碼中包含登錄信息。這是一個問題,因爲我們有很多水晶報告,有很多不同的數據庫引用,所以我不能只用一個。實際上,有報道稱我們同時使用該參考多個數據庫。MVC中的水晶報告

其次,我發現的所有例子看起來像你必須爲每個報告創建一個特定的頁面。我的目標是能夠將報告鏈接作爲變量,併爲我們所有的報告提供一個頁面。

我看了昨天能找到的所有東西,但找不到我需要的東西。我也想知道ReportClass.Load函數到底是什麼。在我能找到的每一個例子中,我都沒有注意到當我使用它時在ReportClass中有任何明顯的區別。

在搜索時,我找到了一個答案,建議構建一個Web窗體應用程序來構建報表,然後使用I-Frame來抓取它,但這是我想避免的。

因此,在回顧:

1)我需要建立水晶報表,而不必引用數據庫

2)我需要它通過提供公正的路徑,將以靈活可變的報告。 RPT文件

3)我想它是在一個單一的應用程序,在MVC,並避免的IFrame

非常感謝你的幫助!

編輯:我找到了適合我的解決方案。我沒有使用RAZOR視圖,而是使用了一個ASPX視圖,該視圖在工具箱中具有Crystal Reports Viewer工具。爲了使它可變,我使用了ViewBag。

控制器代碼:

[HttpGet] 
    public ActionResult Viewer(string Path) 
    { 
     var sessionID = Session.SessionID; 
     ViewBag.Path = newPath; 
     return View(); 
    } 

ASPX查看代碼:

<% Report.Report.FileName = ViewBag.Path; %> 
    <CR:CrystalReportViewer ID="Viewer" runat="server" AutoDataBind="True" GroupTreeImagesFolderUrl="" Height="100%" ReportSourceID="Report" ToolPanelWidth="200px" Width="100%" /> 
    <CR:CrystalReportSource ID="Report" runat="server"> 
     <Report></Report> 
    </CR:CrystalReportSource> 
+0

我很想,從現在開始這可能是一個很好的解決方案,事實上,我計劃在最終項目中添加SSRS報告以及Excel報告的功能,但我們已經完成了幾百個Crystal Reports ,我只是爲他們製作觀衆。嘗試重做它們會花費太長時間。現在我們正在更多地轉向SSRS報告,但我們仍然需要我們已經在Crystal中使用的絕大多數報告。並感謝您的幫助! – 2012-01-04 17:51:58

+0

是的,我忽略了你的帖子關於現有報告的部分,所以我刪除了我的評論:) – HardCode 2012-01-04 17:56:23

+0

我不知道關於點2和3,但點1不可能在Crystal,SSRS或其他任何其他我知道報告設計師 - 如果您無法確定這些字段是什麼,您應該如何爲報告添加字段? (您應該能夠*修改*現有報告的佈局而不訪問數據庫,但不能從頭開始構建它們。) – 2012-01-05 08:15:28

回答

0

A 「相似」(不準確)有人問here。希望能夠讓你走上正確的道路。

0

1)我需要建立水晶報表,而不必引用

你有沒有考慮建立你的報告和分析需求的數據倉庫數據庫?與傳統的報告結構相比,數據倉庫具有許多優點,尤其是在繪製多個來源的數據時。

關於第2點& 3您是否認爲水晶報告可能不是最理想的報告解決方案?

Crystal報告是一個強大的工具,但說實話,當它提供通過互聯網或內聯網的報告情報時,我不是它的忠實粉絲。

您是否考慮過切換工具?例如,http://www.tableausoftware.com/提供了一些優秀的數據可視化工具,IMO對於您所描述的工作來說是一個更好的工具。

請注意,這只是一個工具(因爲那裏有很多),但是我有一些經驗,並且超出了我們的預期,特別是坐在數據倉庫之上時。