Conversión de un TextField a una variable tipo DATE

  1. 10 months ago

    Vengo de programar VFP 9 durante muchos años programe en este lenguaje, por fin me anime a aprender XOJO, pero me he detenido en cosas tan sencillas como convertir el valor de un TextField a una variable de tipo Fecha. Son por detalles como este, que no me animo a dejar completamente al Zorro...aunque parecer ser que éste, está corriendo demasiado rápido.

    En VFP solo usaba las funciones DTOC() o CTOD() y listo !! acá he visto un sin fin de códigos y ejemplos y no me ha funcionado ni uno.

    Después de lloriquear un poco, tengo estas dos preguntas amigos:

    1. Como puedo hacer para que mi TextField tenga un valor tipo DATE desde inicio y que por default muestre la fecha de Hoy.
    2. Como puedo hacer para pasar un valor TEXT y/o STRING a un valor tipo fecha, con el fin de INSERT en mi tabla SQLite.

    Gracias de antemano por su apoyo y colaboración.

    Juan Mañón.

  2. Alberto D

    2 Aug 2018 Pre-Release Testers

    Para fecha puedes ver http://developer.xojo.com/date básicamente:

    Dim fecha As New Date

    y ya tienes la fecha de hoy. Para ponerlo en SQLite lo mejor es ponerlo en formato SQLDate pero 'fecha' lo puede tener así con:

    fecha.SQLdate

    Dependiendo cómo quieras el TextField puedes ver si te sirve el "short-date" que tiene Date o puedes usar los elementos

    fecha.Day
    fecha.Month
    fecha.Year

    para ponerlo como tu quieras.

  3. Gracias Alberto, me estoy poniendo en manos a la obra para ver como me va.

  4. Alberto D

    2 Aug 2018 Pre-Release Testers

    Juan, de seguro con un poco de lectura, práctica y preguntas en el foro saldrás adelante.

    Normalmente en el foro ayuda mucha gente, claro que hay mas gente que responde en inglés y tienen mucho mas experiencia que yo, que no soy programador. Recuerdo haber usado Fox Pro y QuickBasic hace 25 años en la carrera.

    Cualquier cosa pones tu código con el que tienes problema y alguien te podrá ayudar.

  5. Gracias por tu apoyo Alberto, resolví la situación de poner la fecha en mi TextField así:


    Dim d As New Date
    Dim displayDate As String = d.ShortDate

    window1.TextField1.text = displayDate

    Si el usuario modifica el campo TextField1, ahora requiero convertirlo a fecha para guardarlo en mi tabla...estoy usando
    como:

    Dim mydate1 as date = date.fromtext(displayDate)

    Pero ahora resulta que el "Error" dice que el parámetro Input espera un dato tipo texto, y el que recibe es String.

  6. Alberto D

    2 Aug 2018 Pre-Release Testers
    Edited 10 months ago

    Digamos que una peculiaridad de Xojo es que tiene el viejo framework (date) y el nuevo framework (xojo.core.date) y tienen sus diferencias (además anunciaron un nuevo framework para eliminar esas diferencias, que en un futuro estará disponible).

    El xojo.core usa texto y no string, como dice el error. No tengo mucha experiencia con el framework xojo.core pero me imagino que cambiando:

    Dim displayDate As String = d.ShortDate

    a

    Dim displayDate As Text = d.ShortDate

    puede funcionar.

    También muchas de las funciones en Xojo las puedes terminar con .ToText y ya entregas el dato que requiere la función en Texto.

    Edito: Dicho lo anterior el futuro framework va a preferir String sobre Texto, tus funciones actuales con Texto seguirán funcionando por un buen tiempo (varios años), sólo para que lo consideres.

or Sign Up to reply!