2009-05-15 87 views
6

Tengo un conjunto de datos sin filtrar para generar un informe (SQL Server 2005 btw).En SQL Reporting Services, ¿cómo filtrar un conjunto de datos de acuerdo con un parámetro?

Digamos que tengo una columna de Nombre, y me gustaría agregar un parámetro a mi informe, para seleccionar solo los nombres que contienen algunos caracteres.

¿Se sabe cómo manejar estos filtros?

He intentado sin suerte siguientes:

=Fields!Name.Value Like =Parameters!FilterName.Value 

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%" 

Me gustaría ser capaz de obtener los nombres de 'foo' y 'parametro', si me dan el parámetro 'oo'

Edit:Sé que el filtrado debe hacerse en el lado del servidor SQL, pero no controlo el conjunto de datos que se me da (un servicio web lo da con un método sin parámetros), así que tengo que filtrar el lado del informe.

+0

[Trabajar con Servicios de Información Filtros - Parte 2: El operador LIKE] (http://blog.datainspirations.com/2010/12/30/working-with-reporting -services-filters-part-2-the-like-operator /) –

+0

Prefiero filtrar en el back-end. Escribí una serie sobre los principios básicos de SSRS 2005 (y todavía está en progreso). Para el parámetro básico, vea mi última publicación en la serie (Usando el parámetro): http://dbalink.wordpress.com/2009/05/02/how-to-report-authoring-in-ssrs-2005-part-iv -adding-parameters/ – MarlonRibunal

Respuesta

16

contesto a mi propia pregunta, la expresión de filtro es, de hecho:

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*" 

es decir, usar en lugar de "*""%", de hecho.

3

La práctica preferida es ir con una coincidencia exacta.

Puede crear una lista de parámetros de valores múltiples a partir del conjunto de datos devueltos por su consulta o una consulta alternativa, lo que garantiza que se pueda lograr una correspondencia exacta.

La siguiente referencia puede ser útil.

http://msdn.microsoft.com/en-us/library/ms155917.aspx

+0

Gracias, este enlace me llevó a la página de ejemplo del filtro de informes, que publiqué hasta ahora, lo que me llevó a la respuesta correcta. – Vinzz

+0

No hay problema, me alegro de ayudar. –

0

Ir a las propiedades del conjunto de datos, vaya a la pestaña del filtro. en la lista desplegable de expresiones, haga clic en el campo que desea filtrar por (Nombre). haga clic en el operador y seleccione like. en el cuadro de valor, haga clic en la selección de expresión. Una nueva ventana se abrirá. vaya a su lista de parámetros y agregue el parámetro a la ecuación. haga clic en Aceptar.

2

Le sugiero que aplique el filtro como parte de la declaración SQL que se ejecuta para recuperar el DataSet en lugar de tratar de aplicar filtros en el informe de Reporting Services. Creo que SQL Engine está mucho más optimizado para manejar este tipo de filtros/consultas.

+0

Lo sé, y me gustaría poder filtrar lo antes posible, pero, por desgracia, el servicio web no es mío, y a su propietario no le importa la saturación de jabón, y quiere que filtre los datos. – Vinzz

1

¡Su respuesta me puso en el camino correcto :)! Quizás sea diferente para SQL Server 2005; Pero la siguiente solución que funcionó para mí:

=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*" 
Cuestiones relacionadas