47

Sto creando un report in Visual Studio 2008 con un sacco di multivalue parameters e funziona benissimo, ma mi piacerebbe avere l'opzione "(Seleziona tutto)" come valore predefinito quando il rapporto è aperto.Seleziona tutto come valore predefinito per il parametro Multivalore

Esiste un tipo di espressione o codice SQL che è possibile utilizzare per rendere questo possibile? O devo scegliere "(Seleziona tutto)" ogni volta, in ogni parametro, ogni volta che voglio eseguire il rapporto?

risposta

77

Provare a impostare i parametri "" valore predefinito "per utilizzare la stessa query dei" valori disponibili ". In effetti fornisce ogni singolo "valore disponibile" come "valore predefinito" e l'opzione "Seleziona tutto" viene automaticamente controllata.

+16

Grazie una tonnellata. L'unica cosa da aggiungere è; se la query che stai utilizzando per "valori disponibili" restituisce valori nulli, non puoi impostare il valore predefinito su "(seleziona tutto"), probabilmente perché la funzione multivalore non consente valori nulli. Comunque grazie mille per la risposta. – iljitj

+1

Ancora un errore con SSRS 2008 R2, il menu a discesa a cascata non controlla tutto se il menu a discesa dei genitori viene controllato dopo 2, 3 round di controllo e deseleziona. –

+1

@iljitj La cosa del valore NULL mi stava bruciando e mi ha fatto perplesso - grazie per questa pepita! – SqlRyan

6

Non funziona se si dispone di valori null.

È possibile aggirare questo modificando la tua dichiarazione prescelta per plop qualcosa in valori nulli:

phonenumber = CASE 
    WHEN (isnull(phonenumber, '')='') THEN '(blank)' 
    ELSE phonenumber 
END 
+1

fa quel simbolo significa qualcosa o stai emettendo una sadface – CodeMinion

+6

ssrs mi fa sempre emettere una faccia triste –

-4

Questo è piuttosto facile da raggiungere facendo un set di dati con un testo-query come questa:

SELECT 'Item1' 
UNION 
SELECT 'Item2' 
UNION 
SELECT 'Item3' 
UNION 
SELECT 'Item4' 
UNION 
SELECT 'ItemN' 

La query deve restituire tutti gli elementi che è possibile selezionare.

4

La risposta accettata è corretta, ma non completa. Per fare in modo che Select All sia l'opzione predefinita, il set di dati Valori disponibili deve contenere almeno 2 colonne: valore ed etichetta. Possono restituire gli stessi dati, ma i loro nomi devono essere diversi. Il set di dati Valori predefiniti utilizzerà quindi la colonna valore e quindi Select All sarà il valore predefinito. Se il set di dati restituisce solo 1 colonna, verrà selezionato solo il valore dell'ultimo record nel menu a discesa del parametro.

12

L'utilizzo dell'insieme di dati con valori predefiniti è a senso unico, ma è necessario utilizzare la query per i valori disponibili e per i valori predefiniti, se i valori sono codificati nella scheda Valori disponibili, è necessario definire i valori predefiniti come espressioni. Immagini dovrebbero spiegare tutto

Creare parametri (se non automaticly creato)

Create Parameter

definire i valori - ad esempio modo sbagliato

Define values - wrong way

definire i valori - esempio corretto modo

Define values - correct way

Imposta valori predefiniti: è necessario definire tutti i valori predefiniti che riflettono i valori disponibili per rendere "Seleziona tutto" per impostazione predefinita, se non si definiscono tutti, solo quelli definiti verranno selezionati per impostazione predefinita.

Set default values

Il Risultato

The result

Una foto per il tipo di dati: Int

One picture for Data type Int

+0

Le immagini sono scese di dimensioni, mi dispiace, spero che tu possa leggere i commenti su di loro. –

0

Aggiungendo alla risposta da E_8.
Questo non funziona se si hanno stringhe vuote.

È possibile aggirare questo modificando l'istruzione select in SQL o modificando la query nel set di dati SSRS.

Select distinct phonenumber 
from YourTable 
where phonenumber <> '' 
Order by Phonenumber 
0

funziona meglio

CREATE TABLE [dbo].[T_Status](
    [Status] [nvarchar](20) NULL 
) ON [PRIMARY] 

GO 
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active') 
GO 
INSERT [dbo].[T_Status] ([Status]) VALUES (N'notActive') 
GO 
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active') 
GO 

DECLARE @GetStatus nvarchar(20) = null 
--DECLARE @GetStatus nvarchar(20) = 'Active' 
SELECT [Status] 
FROM [T_Status] 
WHERE [Status] = CASE WHEN (isnull(@GetStatus, '')='') THEN [Status] 
ELSE @GetStatus END 
Problemi correlati