Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBText que no toma los valores pasados a su EditValue o Text (https://www.clubdelphi.com/foros/showthread.php?t=8878)

verm83 05-04-2004 01:14:26

DBText que no toma los valores pasados a su EditValue o Text
 
Hola.
Tengo un problema con una aplicación que estoy diseñando. Tiene una sección de clientes en la cual se pide DNI. El DNI se introduce en un DBtext de dev express, y en el evento exit del mismo, calculo la letra del DNI. Hasta aquí bien, el problema es que a la hora de guardar, se almacena sin la letra. Es decir, en el evento exit del DBtextDNI calculo la letra y se la paso al DBtextDNI.EditValue o al DBtextDNI.Text. Funcionar funciona, porque veo como el DNI está ahora con su letra, pero al hacer el post, pues almacena sólo lo escrito a mano.
Me pasa lo mismo con la sección de alquiler, donde tras buscar el juego y el cliente, y asignar sus códigos a un DBText (mediante EditValue o Text), al hacer el post se me cuelga al no estar esos campos rellenos (aun yo viéncolos).
He llegado a la conclusión de que un DBText no engancha cadenas que se le pasan mediante EditValue o Text, sino que tienes que escribir presonalmente en ellos.

No sé si me he explicado. ¿Tiene esto solución?

Gracias de antemano

jachguate 05-04-2004 04:59:09

Nunca asignes directamente los valores a un control DataAware. Hacelo con el campo al que está enlazado.

En lugar de hacer

EditDNI.Text := 'Valor';

hace

TablaDNI.FieldByName('DNI').AsString := 'Valor';

Hasta luego.

;)

verm83 06-04-2004 02:13:43

Pues efectivamente, lo he hecho como comentas y funciona a las mil maravillas. La verdad es que me traía un poco amargado, porque hacía bien la asignación, pero a la hora de hacer el post no almacenaba el DBtext con los cambios realizados. Ahora sí. Mil gracias ;)

Al González 06-04-2004 05:52:54

Evento OnSetText
 
¡Buen día a todos!

También considera la posibilidad de utilizar el evento OnSetText del campo persistente. Es una manera de centralizar el comportamiento de asignación de texto a un campo, independientemente del control donde se haya realizado la captura.

Por otra parte, quiero comentar que recientemente descubrí que el componente TDXGrid de Developer Express toma la decisión de asignar el texto él mismo cuando se trata de un campo de tipo fecha (no le da el texto al campo). No se si el "DBText" de Dev Express venga con el mismo mecanismo, pero si es así, al tratarse de un campo de tipo fecha no se podrá usar el evento OnSetText del campo persistente, a menos que se haga una derivación de clase para flexibilizar esa característica un tanto inconveniente de Dev Express.

No obstante, considero que Developer Express es una de las mejores bibliotecas de componentes que hay en el mercado.

Espero esto sea de utilidad. Seguimos en contacto.

Al González :).


La franja horaria es GMT +2. Ahora son las 20:04:01.

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