Tengo un informe SSRS que tiene 3 conjuntos de datos que se alimentan de una fuente de datos. El conjunto de datos principal es un procedimiento almacenado que agrega algunos datos en función de un conjunto de parámetros impulsados por los otros dos conjuntos de datos.
El procedimiento almacenado principal que alimenta este informe tiene 4 parámetros. Uno es una ID para el tipo de datos, dos son para las fechas de inicio y finalización y el tercero es solo un parámetro de marca. El parámetro de marca es el parámetro de valores múltiples donde quiero pasar varios valores de marca que también son valores VARCHAR.
En mi procedimiento almacenado para mi parámetro @Flag, tengo lo común:
WHERE [Flag] IN (@Flag)
Luego, por supuesto, el parámetro @Flag en el conjunto de informes SSRS para permitir 'Valores múltiples' que también se completan a partir de una consulta que extrae esos valores @Flag de una tabla de dimensiones.
Mi problema
En la mayoría de los casos cuando se trata con valores INT, funciona la misma técnica. Sin embargo, cuando estoy tratando con valores de caracteres, falla. Si elijo una bandera, el informe funciona mágicamente. Si selecciono más de un indicador, no parece pasar los indicadores correctamente al procedimiento almacenado y no se devuelven resultados.
Al probar el indicador de valor múltiple directamente en el procedimiento almacenado:
WHERE [Flag] IN ('A', 'B', 'C')
El procedimiento almacenado funciona correctamente. Entonces, el problema no es el procedimiento almacenado, sino cómo SSRS está pasando los valores de valores múltiples al parámetro @Flag.
Soluciones probadas
Intenté hacer los siguientes ajustes en el conjunto de datos SSRS para estos parámetros de @Flag:
=join(Parameters!<your param name>.Value,",")
Y éste también:
=SPLIT(JOIN(Parameters!<your param name>.Value,","),",")
Todos estos funcionan en valores únicos, pero nunca en valores múltiples.
¿Que me estoy perdiendo aqui?
=join(Parameters!<your param name>.Value,",")
) se puede agregar al conjunto de datos que lee el parámetro, en la pestaña "Parámetros": hay un botón "fx" para agregar expresiones, a la derecha de la caída del "Valor del parámetro" -abajo.