2016-04-27 73 views
3

我們的組織有許多自定義的SSRS報告,我們從SSRS的內置界面運行 - 用戶可以查看和設置參數,然後單擊「查看報告」以生成默認的HTML渲染。然後出現小工具欄,允許他們將報告導出爲PDF,Excel等。SSRS從標準內置接口自動導出爲PDF

我知道許多組織都編寫自己的報告生成界面,然後將參數傳遞給SSRS並以所需的格式返回報告。在我們探索這條路線之前,我們希望看到我們可以通過「黑客入侵」內置界面來做些什麼。

堅持使用SSRS內置接口的優點是,我們可以編寫具有取決於先前選擇的參數生成值/選項的參數的報表。例如,如果我有兩個報告參數 - 「學校年」和「學校名稱」,則可以根據用戶爲「學年」的第一個參數選擇的內容來更改「學校名稱」的下拉選擇列表, ;而且我可以在SSRS內部執行此操作,而無需聘請程序員編寫自定義報告選擇/生成界面。

但我不能做的是自動化 - 從標準接口 - 將報告導出爲PDF 用戶選擇參數並單擊「查看報告」。但是我今天遇到的一些帖子讓我相信,我們可以通過編輯SSRS服務器上的'ReportViewer.apsx'文件來破解標準的SSRS界面。

Click here查看黑客入侵此文件以向「查看報告」按鈕添加額外功能的示例。

因此,你所有的JavaScript專家在那裏,你能想出一種方法來破解SSRS內置的「查看報告」按鈕,以便提交參數並自動返回PDF格式的報告? (如果jQuery有幫助,我們可以爲它添加一個參考)。

+0

什麼是您的網絡平臺? –

+0

我假設SSRS在Microsoft IIS上運行其內置的接口。因爲有.aspx文件和所有。 – Baodad

回答

3

我要對你說的無疑不是你想要的答案,但我認爲這可能是你需要聽到的答案。出於多種原因,你要求某人幫助你做的事實不是最佳做法。這裏有幾個:

  1. 如果你找到一個方法來適應SSRS配置和源文件(例如,ReportViewer.aspx),這樣的改變將改變方式任何和所有報告生成整個報表服務器。例如,您將永遠無法使用SSRS接口以動態參數生成MHTML格式的報告。

  2. ReportViewer.aspx頁面當前未設置爲顯示PDF。要獲得PDF,您必須使用SSRS工具欄中的導出功能或使用rs:Format參數,它們都將下載PDF報告。

  3. 你說你不想僱傭程序員來構建一個自定義界面,但是你想要做的是破解SSRS應用程序的核心文件。如果您沒有開發人員來維護更改並處理出現的任何意外問題,這似乎是一種相當不好的做法。

我猜測,在這一點上我要麼引起你的注意,或者你已經downvoted我的答案,所以這裏不需要黑客SSRS一些替代解決方案。

提供鏈接用戶打開所需格式報告 這是完全有可能通過剛剛建立利用SSRS參數報告,並提供與這將產生在指定的任何格式的文件鏈接的用戶,所有點擊一個鏈接。例如,我們所有的儀表板都有一個「打印此頁面」鏈接,該鏈接生成一個包含所有通過相關報表參數的PDF。

一個具體示例:我們爲我們的工作人員提供儀表板,根據一些業務需求顯示前X個記錄,然後在該部分的底部提供一個鏈接,其中包含可打印格式的PDF中的所有記錄。 PDF將任何已在儀表板中輸入的參數值載入PDF報告中,從而簡化用戶體驗。

此外,您可以構建和自定義我所稱的「門戶報告」,以便從最少量的數據中加載以最小化加載時間。對我而言,「門戶網站報告」根據來自上游報告的參數值或門戶報告中的報告參數向用戶提供少量相關信息。然後,提供鏈接以允許用戶以他們需要的任何格式生成包含特定數據集的文件。下面是我用來爲我的老闆製作一些東西的一個簡化例子的屏幕截圖。它讀取當前的系統時間,並通過單擊按鈕生成不同格式的報告,可以根據需要或想要的格式生成報告。信不信由你,下面看到的頁面以及鏈接生成的所有數據集都是一份報告的一部分。

Using links to control render format

此外,還可以控制用戶通過控制什麼SSRS用戶看到工具欄選項導出到的文件類型。您可以使用rc:StyleSheet更改默認的StyleSheet或提供您自己的自定義樣式表來禁用打印按鈕(目前很少使用它)或導出或查找SSRS工具欄的功能。以下是關於如何完成此操作的technet鏈接。最後,如果您擁有JavaScript的專業知識和一些vb.net或c#.net的專業知識,您可以通過網頁處理特殊情況,查詢系統中的最小數據量,併爲用戶提供下拉菜單然後按照您希望的格式生成報告。這些面向項目的一次性網頁比完全靈活的.NET SSRS接口更容易構建。

如果您對我的任何陳述有任何疑問,請回複評論。我會盡力回答你的問題。

+0

感謝您的回答。這很有幫助。我試圖圍繞這個概念進行思考。 IIUC,我可以在我的報告中預先構建和包含鏈接,點擊後鏈接基本上用用戶在SSRS界面中選擇的參數重新呈現報告,同時追加&rs:Format = PDF,以便報告將彈出或以PDF格式下載。或者,使用相同的參數創建同一報告的兩個版本,但其中一個僅僅是用選定參數呈現另一個報告的「入口」? – Baodad

+1

@Baodad是的,你似乎理解我的觀點。在使用任何rs:或rc:URL參數時,您必須使用ReportViewer.aspx頁面,而不是Report.aspx。另外,如果加載時間是一個問題,並且您不希望所有內容都加載兩次,那麼您可以創建一個報表,基本上只加載參數選項並鏈接到其他報表。這些如果正確完成,可以幾乎立即加載,從而避免兩次加載相同的報告。 –