好吧,這是一個有趣的一部分,我迄今爲止從閱讀中所做的一部分迄今爲止,有些人聲稱由於SSRS處理默認行爲的默認行爲值。然而,我已經得到了很多,我很好奇,如果我能一路獲得。級聯文本參數,允許選擇日期時間日曆或預填充字段
問題:我想要做的是讓用戶在諸如'This Month','LastMonth'之類的語句之間得到PRE DEFINED ...然後用DateTime爲該字符串引用填充一個變量,但用戶可以稍後更改它,並且應該根據父字符串進行刷新,否則讓用戶在SINGLE DATETIME PARAMETER上選擇另一個。
要開始讓我們通過什麼工作工作,不會:
I.我綁定一個數據集來此,縮寫形式是:
select
'Today' as Description
, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) BegDt
union
select
'ThisMonth'
, Dateadd(month, Datediff(month, 0, getdate()), 0)
II。然後,我設置一個名爲'DatesPeriod'的參數,然後在選擇'從查詢中獲取值'時添加'描述'作爲參數的字段和標籤。用戶現在可以從下拉列表中選擇「今日」或「ThisMonth」。
三,我現在建立另一個數據集並將其標記爲'DatesSelected'。爲了我的解釋目的,我會保持簡單,只需嵌入第I部分的數據集,但列出where子句。基本上我再次使用相同的數據集,但一次強制返回一行。
select *
from
(
select
'Today' as Description
, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) BegDt
union
select
'ThisMonth'
, Dateadd(month, Datediff(month, 0, getdate()), 0)
) as x
where x.Description = @DatesPeriod
四,我定義了另一個名爲'Start'的參數,它是DateTime並從上面的數據集中獲取它的值以及它的默認值。現在,當用戶更改第一個文本變量時,相關的DateTime變量也會改變。我已經將文本選擇基本上綁定到了一個日期時間變量,該變量的範圍現在僅限於描述的可用值和默認值。這將範圍限制爲1,強制默認值被傳遞。
V.雖然這還不夠,但我希望用戶能夠隨意選擇FREE DATE RANGES。目前的設置不會允許這個日期選擇器被使用,因爲範圍受限於可用值。然而,這需要完成將文本傳遞給將刷新ON DEMAND的日期時間變量(當它在運行報表時更改,而不僅僅是第一次)。因此,我創建另一個DateTime參數並將其稱爲'UserStart',並且默認值爲'[@Start]'以將其默認值作爲「Start」的依賴項。
六,我現在創建一個名爲「選擇」的測試數據集,以便直觀地看到我的數據正在呈現,因爲我也需要它。
Select isnull(@UserStart, @Start) as Choice
七,我創建了一個表格對象,並將其放在我的報告中,並放入上面列出的單個單元格中,以查看當用戶使用自己的選擇(從SSRS提供的日曆顯示)覆蓋默認的「開始」值時,它會顯示。
因此,在這一點上,一切都適用於caveot。您需要顯示BOTH日期時間參數以允許最終用戶選擇默認設置或選擇它們自己的參數。如果我試圖隱藏第二個參數'開始',它將只會設置一個默認的第一次只有報告運行,我希望每當第一個參數改變。如果它是可見的,它工作正常,但對於功能,我不希望用戶看到兩個報告參數,只要他們關心的是相同的。我已經嘗試了自定義代碼來返回'開始'參數,創建另一個數據集,但據我所知,SSRS被設置爲不靈活,默認刷新或任何你想選擇的日期。如果要刷新一個參數,並把它在屏幕上從你需要告訴它另一個變量做到這一點,是可以改變的值和默認值。但是,這會擺脫日曆選項,因此您需要將該參數傳遞給另一個參數。但是,如果您隱藏第二個參數,則不會傳遞該值。
任何幫助將非常感激。
不起作用,試圖在所有參數。 – djangojazz
您可以將where子句添加到「where @ nameofdependantparamter1 = @ nameofdependantparamter1」隱藏的Start參數數據集中,使其依賴於該值,並可能強制更新隱藏參數。該位置將始終返回true,因此對數據集沒有影響。 –
其實這就是我正在做的,但我忘了編輯我的問題,以正確顯示該條款。謂詞改變時的事件仍然是問題。 – djangojazz