簡體   English   中英

SSRS 在報告中不顯示任何記錄,但查詢返回結果

[英]SSRS shows no records in report but query returns results

根據 SSRS,我有一個問題。 我正在使用 MSSQL Server management studio 2012 和 BIDS Visual Studio 2008 進行報表設計。

我有一個帶有一些多值參數的報告和一個返回記錄的存儲過程。

現在我試圖找到傳遞給存儲過程和字符串拆分函數的參數值的問題。 如果字符串以意外的形式傳遞,我查看了 SQL 服務器分析器,但事實並非如此。 我在服務器中運行了確切的執行代碼作為查詢並得到了結果。 但是如果我在報表設計器的預覽窗格中運行報表,我將不會得到任何結果。

如果您需要任何其他信息,請告訴我。 我只是認為可能有人面臨同樣的問題並且知道回應。

我會猜測並說你是如何傳遞多值參數的。 在處理SSRS時,我個人使用視圖,表函數或只是選擇,因為SSRS可以原生地理解這個:

Where thing in (@Thing)

實際上在SSMS中意味着這一點:

Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)

我猜你的proc是一個字符串實際上是一個逗號分隔數組。 當您執行一個帶有像'1,2,3,4'這樣的字符串數組的參數時,您正在使用類似'Text'參數接受多個值的過程來處理該過程,您可以指定或從查詢中獲取您基本上需要'如果您的過程采用包含該數組的字符串值,請加入'參數。 EG:Proc為dbo.test執行以返回值為1,2,4的行,參數ID如下所示:

exec dbo.test @ids = '1,2,4'

如果我想用SSRS在SSRS中運行proc並且我有一個名為'IDS'的多值參數,我將不得不在SSRS中的函數中手動組裝數組,如:

=JOIN(Parameters!IDS.Value, ",")

基本上告訴proc通過將逗號分隔值鏈中的多個值連接在一起來運行參數'IDS'。 您可以在左側窗格中的數據集中執行此操作,其中列出了“參數”,而不是指定參數,因為它類似於[@IDS]您單擊“Fx”而是放入上面的函數。

出於這個原因,我是視圖,選擇和表函數的主要支持者,因為您可以使用謂詞邏輯來處理這個問題。

這個答案可能看起來過時但如果有人需要它,我將重現我的經驗,因為我昨天遇到了同樣的問題,我從網頁上解決了這個問題。

問題:我的報告有2個日期參數,所以要獲取該范圍之間的數據,但我首先注意到它沒有工作1天,然后我注意到使用范圍沒有帶來最后一天的數據

解決方法:我使用了查詢,進行了一些安排但是當我查詢返回整整一個月並且報告中沒有發生任何問題我知道所有問題都在SSRS中,當然我檢查了我發送到報告的參數。

解決方案:我的日期參數沒問題(時間部分沒有問題),我在某處查看了“數據”面板中的過濾器,這是參數之外的另一個選項卡。 我放了那些過濾器,完全忘記了。

你沒有提供repro或任何細節,所以這對我們來說真的是一個猜謎游戲。 回答“我該怎么做才能調試預覽中呈現的意外(否)數據?” 可以至少完成:

  • 刪除.data文件(Visual Studio大量緩存數據)
  • 重新啟動Visual Studio(是的,不滿意,但是使用SSRS它有時幫助了我)
  • 檢查ReportServer數據庫中的ExecutionLog2表以進行調試(RowsAffected等)
  • 運行SQL事件探查器以檢查查詢和返回的結果

我的問題是我沒有將報告的參數添加到數據集。 您必須右鍵單擊“報表數據”選項卡中的數據集,然后刷新存儲過程的字段。 您還可以在“數據集屬性”窗口的“字段”菜單項中手動添加參數。

我遇到了這個,當我將參數值添加到報表時,它會自動輸入=Parameters!parametername(0) ,這導致沒有返回任何記錄,因為parameter(0)與數據中沒有的值相關。

如果在“值”字段中看到<exp> ,請將其更改為[@parametername] (我使用數據集的filter屬性進行了此操作)。 它允許您創建一個半動態過濾器,我選擇了fieldname然后我選擇IN作為比較。 后來我創建了一個表達式,它得到了混亂的值(0)

不確定這是否相關,但是我的數據源使用的是 MySql 連接,所以雖然我無法讓@parameterName工作,但我將其替換為?
所以而不是WHERE Customer.CustomerID = @CustID
我用WHERE Customer.CustomerID = ?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM