Budu hádat a řeknu, že je to „jak“ předáváte parametr s více hodnotami. Osobně při práci s SSRS používám pohledy, tabulkové funkce nebo jen výběry, protože SSRS dokáže nativně pochopit, že toto:
Where thing in (@Thing)
Ve skutečnosti to znamená v SSMS:
Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)
Hádám, že váš proc bere řetězec, který je ve skutečnosti polem odděleným čárkami. Když uděláte parametr, který přebírá pole řetězců jako '1,2,3,4' a řešíte proceduru něčím jako 'Text' parametr akceptující více hodnot, které buď zadáte, nebo získáte z dotazu, který v podstatě potřebujete ' Připojte parametry, pokud vaše procedura přebírá hodnotu řetězce, který obsahuje pole. EG:Proc nazvaný dbo.test se spustí, aby vrátil řádky pro hodnoty 1,2,4 pro parametr, ID jsou zobrazena takto:
exec dbo.test @ids = '1,2,4'
Pokud bych chtěl spustit proc v SSRS s touto hodnotou a měl bych vícehodnotový parametr nazvaný 'IDS', musel bych sestavit pole ručně ve funkci v SSRS jako:
=JOIN(Parameters!IDS.Value, ",")
V podstatě řečeno procesu spuštění parametru 'IDS' spojením více hodnot v řetězci hodnot oddělených čárkou. Uděláte to v datové sadě v levém podokně, kde jsou uvedeny 'Parametry' místo zadání parametru, protože je to jako [@IDS], místo toho kliknete na 'Fx' a vložíte funkci výše.
Z tohoto důvodu jsem velkým zastáncem pohledů, výběrů a tabulkových funkcí, protože se o to můžete postarat pomocí predikátové logiky.