![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Esta solución es buena, pero tiene una carencia: no tiene en cuenta que ya pueden existir campos en el dataset.
En mi caso, suelo añadir campos calculados a datasets "reales" que ya contiene campos persistentes. Un ejemplo es construir un mensaje de estado a partir de los valores de ciertos campos, y así mostrar en un grid directamente ese mensaje. En ese caso, hay que respetar los campos existentes y luego añadirle los nuevos calculados:
Nota: la función GetEnumName requiere uses TypInfo; Y llamo a esa función en el evento BeforeOpen:
Espero que ayude. |
|
#2
|
||||
|
||||
|
Es suena interesante, voy a probarlo ahora mismo. Pero por qué dices es de:
//lógicamente, dependerán de la bbdd que uses ??? ¿No se trata de campos calculados, es decir que no están en la base de datos? y otra cosa: ¿por qué en el evento BeforeOpen? ¿No se puede usar en el AfterOpen? Saludos a todos. |
|
#3
|
||||
|
||||
|
Cita:
Respecto a lo de llamar a la función en el evento AfterOpen, es cierto que parece lo más obvio, pero cuando hice mis pruebas daba problemas, así que cogí la mecánica de hacerlo en Before. Te animo a que lo pruebes, y si se puede hacer, lo compartas con nosotros. |
|
#4
|
||||
|
||||
|
Tema Cerrado
Muchas gracias a tod@s:
Con sus aportes ya arme la función que se requeria Agradezco de antemano su tiempo y aporte gertorresm colombia |
|
#5
|
|||
|
|||
|
Al parecer el orden de asignacion en delphi 2010 afecta por lo que actualizo la funcion
Última edición por rgstuamigo fecha: 01-03-2011 a las 22:11:26. Razón: Estética en el código Delphi |
|
#6
|
||||
|
||||
|
Agradecemos tu colaboracion y tu actualizacion...
![]() Nada más solicitarte que para que el código se vea bonito, la próxima ves utilices las etiquetas de código disponibles para una mejor estética. , sin olvidar tambien que le dés una buena leida a nuestra Guía de Estilo si no lo has hecho aún...![]() Saludos.. y muchas gracias por tu colaboracion.... ![]()
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 |
|
#7
|
||||
|
||||
|
Hola.
Me gustaría agregar que podemos prescindir del Case empleando la variable global DefaultFieldClasses:
Respondiendo a roboflekto: Cita:
Es más adecuado BeforeOpen que AfterOpen, para que al abrirse el conjunto de datos éste destine espacio en los buffers de registros para los nuevos campos calculados. De hecho hay una validación en la clase TField que impide agregar un nuevo campo a un conjunto de datos abierto.* Saludos. Al González. ![]() *Off topic: Tal validación puede ser burlada para crear campos calculados que no consuman memoria en los registros. Comento esto porque a alguien puede resultarle interesante como para abrir otro tema al respecto. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear Campos Calculados en una Dataset | GerTorresM | OOP | 3 | 28-06-2010 15:41:13 |
| Consulta sobre campos calculados | oscarac | SQL | 0 | 15-04-2009 18:23:21 |
| como hacer consulta para crear dos campos a partir de uno | Rom@n | SQL | 2 | 24-12-2008 17:56:37 |
| Consulta sql sobre campos calculados | Carlos A Ortega | SQL | 2 | 24-07-2003 15:50:33 |
| Consulta campos calculados | MiltonE | Conexión con bases de datos | 1 | 05-05-2003 18:47:09 |
|