![]() |
Rellenar campos sin FieldName en DbGrid
Tengo un dbgrid con varios campos de un fichero AS400, uno de los campos es una fecha y quiero poner en la columna de su izquierda en el grid, el dia de la semana que es dicha fecha, ¿como puedo hacerlo?
|
Hola,
Cita:
|
Muchas gracias por contestar.
Viene como string. Mi problema es que formateo el grid en el evento DrawColumnCell, para cambiarle colores a las celdas según su valor, etc; y es en este evento donde estoy tratando de editar la primera columna en funcion del dia de la semana que me da la segunda columna (fieldname=fecha). No he sido capaz de hacerlo. |
Hola,
Bueno. Yo no estoy muy puesto en estos temas. No dices, por ejemplo, el gestor de bases de datos que utilizas (que podría ayudar a los compañeros a echarte una mano), pero, sin salir de Delphi cuentas con funciones capaces de convertir cadenas en fechas, como por ejemplo "StrToDate". A partir de ahí, siempre podrías aplicar la función "DayOfWeek" (revisa por si hubiera alguna más de utilidad para ti en la unidad "DateUtils") y comprobar su resultado para hacer después lo que tengas pensado en función del mismo. ¿No? ;) |
El problema no son las conversiones, con formatdatetime('ddd',..) ya la he sacado, mi problema es que no se como posicionarme en la celda adecuada y asignarle el valor ya convertido a día de la semana.
|
porque no creas un campo calculado, y en ese campo sacas el dia de la semana, en el grid solo te preocuparias por su color y tamaño de letra?
|
Quizás puedas usar el evento OnGetText del campo, ahí puedes formatear la fecha como quieras.
Saludos |
Muchas gracias por vuestra atención y conocimientos.
He conseguido hacerlo como campo calculado en el evento OnCalcFields y no hay problema alguno salvo que con este evento el primer registro me aparece en blanco porque el valor de la fecha viene a NULL, si alguien sabe como solucionarlo le agradecería que me conteste pero no es muy importante, más que nada es estético. |
¿no puedes darle un valor por defecto?, así al insertar, aparece la fecha de hoy, que quizás le sirva al usuario.
A las malas, pues en el evento beforePost asignas el valor Now o Date a ese campo. SAludos |
Muchas gracias de nuevo, le he metido la fecha del sistema que siempre debe coincidir con la primera fila del grid y va perfecto.
Es un placer forear con vosotros. |
La franja horaria es GMT +2. Ahora son las 15:34:27. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi