2011-09-23 92 views
20

我有一個帶有幾個參數的SSRS(SQL Server 2008 R2)報告。我有一個問題,其中一個參數在首次加載報告時不一致地選擇其默認值。問題在SSRS報告中重新部署更新的默認參數

具體來說,它可以在BIDS中正常工作,但一旦部署到IIS並在IE中查看,它會間歇性地工作(在一臺服務器上工作,但不在另一臺服務器上)。間歇性地,我的意思是它在我部署它的服務器上工作,但是當我將RDS文件複製到另一臺服務器時,我的參數的默認行爲被破壞。

詳細

參數具有一系列在可用的值部分中指定規定(一定)的整數值,其代表一個選擇固定報告週期的。默認值具有單個指定值,該值與可用值之一匹配。

選項:數據類型整數,無空值,無多個值,參數可見,自動確定何時刷新。

任何想法,爲什麼我看到這種行爲?

+5

**我已經發現了我自己對這個問題的答案。**我在這裏詳細介紹了其他任何可能會被相同行爲困惑的SSRS新手。 可以從RDL文件中單獨管理這些參數,並且可以在將報告部署到服務器後覆蓋默認值。管理服務器上的參數: 1.單擊瀏覽器頁面左上方的報告名稱鏈接。 2.單擊左側的參數選項卡。 3.根據需要管理參數(例如,設置默認值)。 4.單擊應用。 5.單擊報告名稱鏈接(頂部大粗體文本)返回到報告。 –

+0

如果您仍在身邊,將解決方案標記爲「已接受」可能是個好主意 –

回答

23

確實如此,一旦報告部署到服務器,那麼參數就會在服務器級別進行控制。
然而,要注意的一點是,如果您重新部署報告並更改了默認值,則不會在服務器上更改它們!報告必須被刪除並部署以使新的默認生效。
如果您不希望刪除報告,請在報告服務器上手動更改默認值。

+0

謝謝。這正是我發現的。當然,我無法知道服務器是否保留了它自己的默認值,所以這就是我通常所說的「神祕行爲」的一個例子,你只需要知道,否則顯然的行爲是非直覺的。 –

+0

謝謝,刪除和重新部署完成了這項工作。 – kmria

+0

只是要清楚 - 它只是在部署時未覆蓋的參數的默認設置。我相信,一切都會更新。 – NReilingh

10

我發現了我自己對這個問題的答案。我在這裏詳細介紹了其他任何可能會被相同行爲困擾的SSRS新成員。這些參數可以與RDL文件分開管理,並且一旦將報告部署到服務器後,可以覆蓋默認值。管理服務器上的參數:

  1. 單擊瀏覽器頁面左上方的報告名稱鏈接。
  2. 單擊左側的參數選項卡。
  3. 根據需要管理參數(例如,設置默認值)。
  4. 單擊應用。
  5. 單擊報告名稱鏈接(頂部大粗體文本)返回到報告。
1

無需刪除報告(刪除報告時的問題是日誌也會被刪除)的另一個解決方案是使用ReportBuilder(Modifier dans leGénérateurde rapport)打開新部署的報告。

只保存報告,默認值將被更改。

0

可以說你的報告名是xyz.rdl 如果你已經設置了默認參數並且現在把它部署到服務器上,它不會在服務器上改變。 我建議3個選項 1.通過右鍵單擊報告上的管理更改服務器上的參數'Has Default' 2.刪除服務器上的報告並重新部署它 3.部署虛擬報告或舊版本報告同名的'xyz.rdl'沒有這個參數,這樣做會清除服務器上的報告參數,報告保持完整。然後用默認參數部署您的新版本報告,現在它應該可以工作。

0

我有類似的問題。當報告部署到服務器「沒有」默認值,並且隨後在Visual Studio中修改此報告並將相同的參數更改爲默認值時,服務器將不會提取修改報告現在具有默認值。

我對這種困境的解決方法是創建一個虛擬參數並將其放在列表的頂部。然後,我用新的虛擬參數重新部署了報告,並使用默認參數修改了相同的修改後的虛擬參數。這次服務器拿起了我感興趣的參數作爲默認值。然後我開始刪除visual studio中的dummy參數並重新部署報告。我感興趣的參數仍然具有默認值。

爲了解決我的困境,我阻止了刪除報告並添加訂閱。

+0

這真的有用嗎?我嘗試了所有我可以想到的技巧:在報表的開始和結束時創建和刪除虛擬參數,隱藏和可見,使用新的默認值更改參數的提示等等,但仍然不會顯示默認值。 –

0

這需要一些工作,正確處理好所有的各種方案,但它(至少與SQL Server 2012)可能通過加載.rdl文件作爲XML文件進行更新從腳本參數並將其與ReportingService2010.GetItemParametersReportingService2010.GetItemParameters方法中可用的各種設置進行比較,然後使用方法更新SSRS服務器上的參數。

最後,存在一個連接問題「Report parameter defaults not updated during deployment」,它的範圍有點侷限,只允許自動更新參數默認值。