2012-07-13 85 views
0

我在存儲過程中創建了一個SSRS報告,當我將數據集添加到報表時,我發現我不得不將其添加到頂部我爲了程序的字段要返回到我的數據從存儲過程設置:如何在存儲過程中在SSRS中填充數據集

IF 1=2 SELECT '' as [Date], '' as [Portfolio ID], '' as [Portfolio Base Ccy], 0 as [All in Market Value Base], 0 as [All in Market Value Converted] 

我爲什麼會做這個?爲什麼SSRS不是簡單地拿起:

SELECT [Date], [Portfolio ID], [Portfolio Base Ccy], [All in Market Value Base], [All in Market Value Converted] 
FROM @Worktable 

我的程序底部或

SELECT * FROM @Worktable 

編輯: 好吧,我想我已經在我的程序中縮小了我的問題,我的程序中有一個調試參數。所以如果這個參數設置爲'Y',那麼我會顯示我的過程的每一步,這使得它更容易調試(如果需要,我可以添加一個示例)。此外,在我的程序結束時,我有一個if語句爲我的最終結果集,它說:

IF @ReportType IN ('SSD', 'TTD', 'STD') 
BEGIN 
SELECT......... 
END 

IF @ReportType IN ('SS', 'TT', 'ST') 
BEGIN 
SELECT......... 
END 

難道這是一個問題呢?

+0

您是否正在做一些特殊的存儲過程?在數據集對話框中,當你簡單地選擇源程序時會發生什麼?另外,你能否請你張貼你的程序名稱,以便我們看到你在做什麼? – billinkc 2012-07-13 21:32:46

+1

通常情況下,您將數據集的「命令類型」屬性設置爲「存儲過程」,對於數據集的查詢,只需輸入存儲過程的名稱即可。您是否可以在您的問題中添加如何設置數據集的屬性? – Jeroen 2012-07-15 11:55:29

+0

編輯上面的問題 – 2012-07-18 08:35:47

回答

0

我制定了我的問題,所有的方式通過我的過程我有一個調試運行故障shotting如下:

IF @Debug = 'Y' 
    BEGIN 
     SELECT @Section AS Section 
     SELECT * FROM #Worktable ORDER BY [Portfolio ID] 
    END 

這導致SSRS感到困惑,什麼是報表的元數據。我現在已經修復了我的程序,導致這種情況不會發生,現在我不需要「IF 1 = 2 SELECT ........」

相關問題