Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Rellenar campos sin FieldName en DbGrid (https://www.clubdelphi.com/foros/showthread.php?t=34837)

kirvi 23-08-2006 13:19:44

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?

dec 23-08-2006 13:23:07

Hola,

Cita:

(...) uno de los campos es una fecha (...)
¿De qué tipo es ese campo "fecha"? Tal vez puedas utilizar las funciones conque cuenta Delphi en la unidad "DateUtils". "DayOfWeek" creo que está disponible, entre otras. Estas funciones suelen requerir parámetros de tipo "Time", "TDateTime", "TDate", etc.

kirvi 23-08-2006 13:33:33

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.

dec 23-08-2006 13:41:22

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? ;)

kirvi 23-08-2006 13:45:41

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.

luisgutierrezb 23-08-2006 15:42:52

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?

Lepe 23-08-2006 16:30:41

Quizás puedas usar el evento OnGetText del campo, ahí puedes formatear la fecha como quieras.

Saludos

kirvi 24-08-2006 09:46:54

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.

Lepe 24-08-2006 10:07:55

¿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

kirvi 24-08-2006 10:57:47

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 04:22:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi