none
Si no existe campo fecha liquidación que ponga por defecto fin de año RRS feed

  • Pregunta

  • Hola a todos.

    Necesitaba ayuda para el siguiente problema:

    Tengo un listado de facturas en el que tengo que filtrar por proveedor, tipo de documento, etc. En este, cuando no tenga la fecha de liquidación de dicha factura, necesitaba que pusiese por defecto la fecha fin de año. He realizado lo siguiente, pero esto sólo me deja poner una fecha fin de año concreta, y necesito poder analizar datos de diferentes años (ya tengo los parámetros fecha inicial y fecha final):

    If ISNULL({CabLiq.DataDoc}) then
    Date (2017,12,31)
    else{CabLiq.DataDoc}

    Este sólo me sirve para consultar datos del año 2017 y necesitaría consultar años anteriores y para próximos años.

    Muchas gracias.

    sábado, 17 de junio de 2017 6:43

Todas las respuestas

  • No puedes sacár de algunos de los datos, en una variable el año  de la factura? pues es lo único que necesitas o sea, Date(variable + ",12" + ",31")

    • Editado Marcelo PF sábado, 17 de junio de 2017 11:00
    sábado, 17 de junio de 2017 10:41
  • Hola Marcelo.

    Gracias por tu respuesta. He probado, pero me da el error "Formato de fecha incorrecto", creo que no estoy poniéndolo bien.

    sábado, 17 de junio de 2017 15:32
  • Claro, me explique mal, antes de cargarlo pasa todo a date, sería  Dim Fecha as Date = CDate(variable + ",12" + ",31")  e ingresas, Date(Fecha)  lo que no se definir es la fecha con "," si te lo toma tal cual perfecto si no busca en format para que quede como piedes.

    Saludos

    sábado, 17 de junio de 2017 22:33
  • Hola de nuevo Marcelo.

    La fórmula no puedo cambiarla porque necesito que si el documento no tiene esa fecha de liquidación que me coloque por defecto esa fecha fin de año. He probado:

    If ISNULL({CabLiq.DataDoc}) then
    Date (Year (20??),12,31)
    else{CabLiq.DataDoc}

    pero no funciona, sólo necesitaría que cambiasen eses dígitos, porque el día y mes deben ser eses por defecto. He intentado hacer lo que me dices pero me da error.

    Gracias de nuevo :) 

    domingo, 18 de junio de 2017 7:03
  • Tampoco entra si colocas en tu formula;

    DateVal s:= Cdate (variable,12,31)

    If ISNULL({CabLiq.DataDoc}) then

    Date (s)
    else{CabLiq.DataDoc}

    Donde variable sería el año de la factura que buscas

    Perdon por el código anterior literalmente hablaba en lenguajes distintos XD

    domingo, 18 de junio de 2017 11:55
  • He probado y me da error en "variable" es como si no reconociese esa palabra: "El texto restante no parece ser parte de la fórmula.

    domingo, 18 de junio de 2017 17:31
  • Nos estamos complicando ja, supongamos que tienes {FechadeFactura} un date del día de creación de la factuar

    DateVal Variable:= year({FechadeFactura})

    DateVal s:= Cdate (Variable,12,31)

    If ISNULL({CabLiq.DataDoc}) then

    Date (s)
    else{CabLiq.DataDoc}

     

    domingo, 18 de junio de 2017 22:11
  • Hola Marcelo,

    Lo he solucionado así:

    If ISNULL({CabLiq.DataDoc}) then
    Date (year({?Fecha final}),12,31)
    else{CabLiq.DataDoc}

    Muchas gracias por tu tiempo :)

    lunes, 19 de junio de 2017 7:33
  • Genial, estába lidiando con sintaxis crystal y dudaba del  Year(). de nada amigo hasta la proxima

    • Editado Marcelo PF lunes, 19 de junio de 2017 9:56
    lunes, 19 de junio de 2017 9:55