2013-04-05 57 views
3

我有一個報告,它爲指定的日期範圍和事件類型創建事件列表。選擇所有參數在SSRS中不起作用

日期範圍和事件類型是在報告中定義的參數。日期參數(@DateFrom和@DateTo)按照它們應該的那樣工作。

但是,@EventType參數定義爲由DataSet提供的值列表(使用'Allow Multiple values'選中),但在使用{Select All}複選框時不提供預期的行爲。如果通過選中列表中的多個框來選擇一個或多個「事件類型」,報告將正確顯示與指定的事件類型匹配的事件。但是,如果單擊{全選}框(然後突出顯示所有其他可能的值),則報告不會顯示所有這些事件類型值的事件。它似乎錯過了{Select All}框中選擇的幾個值。如果我專門爲這些缺失值運行報告,報告將返回與這些類型匹配的事件。這表明對於這些類型並不缺乏數據。

因此,它看起來像{Select All}被竊聽......或者可能緩存在某處?我試過刪除報告/參數數據集並重新部署無效。值得注意的是,在部署它之前,這種行爲也發生在本地。

有沒有人看過這個之前,或沒有人有任何建議?

編輯 - 我還應該提到有問題的參數(@EventType)沒有指定默認值。

回答

1

不能完全相信這種情況,但傳遞給SQL Server過程的參數太小。它被定義爲一個VARCHAR(500),需要更大的處理大量逗號分隔值。我將其更改爲VARCHAR(4000),現在按預期工作。

感謝Djangojazz將我指向參數的方向。

2

你如何爲變量聲明謂詞?它應該是這樣的:

where thing in (@Variable) 

其中@Variable是一個多值參數。

您可以嘗試查看多值參數的值是否在某個地方被刪除,方法是定義它們。如果數據類型不同,通常多值參數的收集方法可能會導致問題。

此外,您可能會嘗試在運行時設計您的數據集以構建而不是靜態查詢。 EG:設置一個表達式爲您的數據集,如:

="Select * from table where thing in (" & Parameters!Variable.Value & ")" 

這將導致建立一個字符串的一部分的參數,然後在運行時,而不是從傳統的查詢評估。

+0

感謝您的幫助,我已在下面發佈了答案。 – phillyd 2013-04-09 14:35:58