2011-07-26 40 views
0

我對報表服務有很大的困擾。 我需要使用具有2個參數(2個id)的存儲過程。 如果第一個參數被填充,則啓動SELECT。 如果第二個參數被填充,則啓動另一個SELECT。具有多個SELECT和報表服務的存儲過程

CREATE Procedure apGetEvrPourRapport 
@id_exu int, @id_exd int 
AS 
BEGIN 
    IF isnull(@id_exu, 0) > 0 
    print 'id_exu : ' + cast(@id_exu as nvarchar(16)) 
    BEGIN 
     EXEC apReport_Extrait_Lecture_Filtre @id_exu, null 
    END 
-- Cas du document unique et document de travail 
    IF isnull(@id_exd, 0) > 0 
    print 'id_exd : ' + cast(@id_exd as nvarchar(16)) 
    BEGIN 
       --EXEC another sp 
    END 
END 

報告服務的數據,我找回了良好的選擇,當我填寫正確的參數在執行由感嘆號,但在數據集的看法,我只檢索第二個選擇,因此預覽失敗:(

如何設置數據集採取在考慮選擇的這個開關?

謝謝你的幫助。

回答

0

我確實做到了這大約一個月前。

您需要做的是手動將這些字段添加到XML中,並添加報表的「數據集」節點的「字段」節點,然後使用其所有參數調用存儲過程。您將希望隱藏任何在特定場景中無法獲取值的列,否則它們將顯示「#ERROR」。

<Field Name="status"> 
     <DataField>status</DataField> 
     <rd:TypeName>System.Byte</rd:TypeName> 
    </Field> 
    <Field Name="longname"> 
     <DataField>longname</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
    <Field Name="name"> 
     <DataField>name</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 

您將不能再修改您的數據集在設計或將消滅你們的田地和/或不保存。但是,您仍然可以在設計器中修改報告的其他部分。

+0

我更新了我的帖子,以考慮您正在調用存儲過程的事實。 –

+0

填充數據集很無聊。但它的工作。謝謝 :) –

相關問題