47

Estoy creando un informe en Visual Studio 2008 con un montón de multivalue parameters y está funcionando muy bien, pero me gustaría tener la opción "(Seleccionar todo)" como valor predeterminado cuando se abre el informeSeleccionar todo como valor predeterminado para el parámetro Multivalue

¿Existe algún tipo de expresión o código SQL que pueda usar para que esto suceda? ¿O debo elegir "(Seleccionar todo)" cada vez, en cada parámetro, cada vez que deseo ejecutar el informe?

Respuesta

77

Intente configurar el parámetro "valor predeterminado" para usar la misma consulta que los "valores disponibles". En efecto, proporciona todos los "valores disponibles" como un "valor predeterminado" y la opción "Seleccionar todo" se marca automáticamente.

+16

Gracias por tonelada. Lo único que se debe agregar es; si la consulta que está utilizando para "valores disponibles" devuelve valores nulos, no puede establecer el valor predeterminado en "(seleccionar todo"), probablemente porque la función de valores múltiples no permite valores nulos. De todos modos muchas gracias por la respuesta. – iljitj

+1

Todavía ve un error con SSRS 2008 R2, el menú desplegable en cascada no comprueba todo si el menú desplegable de parant se comprueba después de 2, 3 ronda de verificación y desmarque. –

+1

@iljitj El valor NULL me estaba quemando y me dejó perplejo, ¡gracias por esta pepita! – SqlRyan

6

No funciona si tiene valores nulos.

Puede evitar esto mediante la modificación de su instrucción de selección a plop algo en los nulos:

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

significa que ese símbolo significa algo o está generando una cara triste – CodeMinion

+6

ssrs siempre me da como resultado una cara triste –

-4

Esto es bastante fácil de lograr al hacer un conjunto de datos con un texto-consulta como esta:

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

La consulta debe devolver todos los elementos que se pueden seleccionar.

4

La respuesta aceptada es correcta, pero no se completó. Para que Select All sea la opción predeterminada, el conjunto de datos Valores disponibles debe contener al menos 2 columnas: valor y etiqueta. Pueden devolver los mismos datos, pero sus nombres tienen que ser diferentes. El conjunto de datos de valores predeterminados usará la columna de valor y luego Select All será el valor predeterminado. Si el conjunto de datos devuelve solo 1 columna, solo se seleccionará el último valor del registro en el menú desplegable del parámetro.

12

Usar el conjunto de datos con valores predeterminados es una forma, pero debe usar la consulta Valores disponibles y Valores predeterminados, si los valores están codificados en la pestaña Valores disponibles, debe definir los valores predeterminados como expresiones. Las imágenes deben explicar todo

Crear parámetro (si no se crea automaticamente)

Create Parameter

definir valores - ejemplo de manera equivocada

Define values - wrong way

definir valores - ejemplo de forma correcta

Define values - correct way

Establecer valores predeterminados: debe definir todos los valores predeterminados que reflejen los valores disponibles para hacer "Seleccionar todo" de manera predeterminada; si no define todos, solo los definidos se seleccionarán de forma predeterminada.

Set default values

El resultado

The result

Una imagen de tipo de datos: Int

One picture for Data type Int

+0

Las imágenes bajaron de tamaño, lo siento, espero que puedan leer los comentarios sobre ellas. –

0

Agregando a la respuesta de E_8.
Esto no funciona si tiene cadenas vacías.

Puede solucionar esto modificando su instrucción de selección en SQL o modificando su consulta en el conjunto de datos de SSRS.

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

funciona mejor

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 
Cuestiones relacionadas