none
Método IN Reporting Services RRS feed

  • Pregunta

  • Hola amigos, en Crystal Reports cuando queria comparar un campo con valores hacía algo asi: If Campo IN("A","B", "C") Then Caso1 Else Caso2,

    En Reporting existe algo similar?

    Saludos

    jueves, 17 de mayo de 2012 15:24

Respuestas

  • No tengo ahora mismo a mano el BIDS para confirmarlo, pero creo que tienes la instrucción Instr para buscar una subcadena dentro de un string. Si efectivamente tenemos esta instrución, entonces puedes hacer esto:

    =IIf(Instr("ABCDE", Field!Campo1.value)>=0,"Activo","Finalizado")

    martes, 22 de mayo de 2012 5:50
    Moderador

Todas las respuestas

  • Depende, ¿dónde estás metiendo ese código? Si es en la pestaña "Code", ahí se utiliza VB.NET y por lo tanto tienes acceso a todas las construcciones del lenguaje, por ejemplo, podrías meter los valores en un List(Of String) y luego llamar a su método "Contains". Pero si es dentro de una expresión en un campo, no puedes usar un "If...then...else", por lo que no tiene mucho sentido la pregunta. ¿Podrías matizar un poco más lo que tratas de hacer?


    sábado, 19 de mayo de 2012 9:11
    Moderador
  • Hola Gracias por responder, Lo que sucede que en cada fila que se genera en mi reporte debo de personalizar el texto, estoy haciendo algo asi:

    =IIf(Fields!Campo1.Value = "A" OR Fields!Campo1.Value = "B" OR Fields!Campo1.value = "C", "Activo", "Finalizado")

    En el caso anterior mi campo solo puede ser cualquiera de los tres valores: A, B ó C, en ese caso es fácil porque la comparación es sólo con tres elementos, sucede que en ocaciones tengo que verificar con mayor cantidad de elementos y no quiero estar haciendo muchos "OR", por eso pregunte si se puede hacer algo asi como:

    =IIf(Field!Campo1.value IN("A","B","C","D","E",...),"Activo","Finalizado")

    Gracias.


    lunes, 21 de mayo de 2012 19:17
  • No tengo ahora mismo a mano el BIDS para confirmarlo, pero creo que tienes la instrucción Instr para buscar una subcadena dentro de un string. Si efectivamente tenemos esta instrución, entonces puedes hacer esto:

    =IIf(Instr("ABCDE", Field!Campo1.value)>=0,"Activo","Finalizado")

    martes, 22 de mayo de 2012 5:50
    Moderador
  • erosdark, que yo sepa no existe esa instruccion In() en ningun lenguaje de programacion (quizas me equivoque y alguien digamelo), esa instruccion es propia de SQL,lo que si hace falta esa instruccion para los lenguajes de programacion, en todo caso lo q te sugiere alberto poblacion puede aproximarse a lo que buscas, otra opcion es crearte tu una funcion en reporting services, o tal vez crearte una funcion de usuario en tu base de datos

    espero q nuestros aportes te sirvan,saludos


    "La imaginacion es mas importante que el conocimiento." -> Albert Einstein

    martes, 22 de mayo de 2012 14:39
  • Buenas,

    Puedes usar también switch(Condicion, Resultado, CondicionN, Resultado) si no son muchas las letras ;).

    Un Saludo


    Fran Díaz | twitter: @frandiaz_ | Blog: {geeks.ms/blogs/fdiaz/} | Communities: {onobanet.es} & {secondnug.com}

    viernes, 1 de junio de 2012 15:59
    Moderador