none
Campos nulos con fechas - ReportViewer RRS feed

  • Pregunta

  • Hola Expertos:

    Tengo lo siguiente:

    =IIf(Fields!FechaDate.Value="", "Ok", Fields!Date.Value)

    En el primer caso si el campo es nulo, me muestra mensaje "OK".

    En el segundo caso cuando existe la fecha en la BD, se muestra #Error.

    La imagen muestra #Error, cuando debería de mostrarme la fecha que existe en la BD.

    Error en reporte ReportViewer utilizando IIF

    ¿Alguien sabe como solucionar este problema?

    miércoles, 8 de agosto de 2012 17:32

Respuestas

  • Ponle un "Convert" o un "Cast". Algo así como esto:

    Select Coalesce (Convert(varchar(10), FechaEgreso, 103), 'ok') as Fecha

    • Marcado como respuesta ruyzz martes, 14 de agosto de 2012 16:22
    viernes, 10 de agosto de 2012 21:21
    Moderador
  • Buenas, a mi entender el problema lo tienes porque el campo FechaDate es de tipo DateTime y estas haciendo una comparación con un STRING cuando haces Fields!FechaDate.Value="". Yo revisaría para o bien que desde la consulta el campo que traigas lo cambies a tipo texto y así no tener el problema de conversión o por otro lado si lo que tratas es que no sea null buscar una función que te actue adecuadamente en la valoración del mismo. También puedes usar funciones de conversión como Cstr para convertirlo a string y luego hacer la comparación contra "".

    Por ejemplo algo así: =IIf(Cstr(Fields!FechaDate.Value)="", "Ok", Fields!Date.Value)

    Espero haberte ayudado, un saludo!


    ----Aprendiendo cada día---- Richard Luis Díaz

    • Marcado como respuesta ruyzz martes, 14 de agosto de 2012 16:22
    lunes, 13 de agosto de 2012 14:06

Todas las respuestas

  • Yo cambiaría la sentencia SELECT que genera el Dataset, poniendo:

    Select ... COALESCE(NombreDelCampo, 'Ok') AS Fecha

    y luego en el informe simplemente presentas Fields!Fecha.Value. Esto escribirá Ok cuando el campo sea NULL.

    miércoles, 8 de agosto de 2012 18:51
    Moderador
  • Hola Alberto Poblacion: Gracias por responder, he realizado lo indicado y me envía el siguiente error desde sql server:

    N ose puede convertir de datetime a string.

    jueves, 9 de agosto de 2012 14:04
  • Ponle un "Convert" o un "Cast". Algo así como esto:

    Select Coalesce (Convert(varchar(10), FechaEgreso, 103), 'ok') as Fecha

    • Marcado como respuesta ruyzz martes, 14 de agosto de 2012 16:22
    viernes, 10 de agosto de 2012 21:21
    Moderador
  • Buenas, a mi entender el problema lo tienes porque el campo FechaDate es de tipo DateTime y estas haciendo una comparación con un STRING cuando haces Fields!FechaDate.Value="". Yo revisaría para o bien que desde la consulta el campo que traigas lo cambies a tipo texto y así no tener el problema de conversión o por otro lado si lo que tratas es que no sea null buscar una función que te actue adecuadamente en la valoración del mismo. También puedes usar funciones de conversión como Cstr para convertirlo a string y luego hacer la comparación contra "".

    Por ejemplo algo así: =IIf(Cstr(Fields!FechaDate.Value)="", "Ok", Fields!Date.Value)

    Espero haberte ayudado, un saludo!


    ----Aprendiendo cada día---- Richard Luis Díaz

    • Marcado como respuesta ruyzz martes, 14 de agosto de 2012 16:22
    lunes, 13 de agosto de 2012 14:06
  • Gracias Alberto Poblacion y Richard Luis las dos son soluciones validas para resolver el problema.
    martes, 14 de agosto de 2012 16:22