In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Realizar mantenimiento dbf

Foro público de Xailer en español
Responder
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Realizar mantenimiento dbf

Mensaje por fredy[1] »

Hola,
Estoy preparando un mantenimiento de una dbf a través de dataset y un dbnavigator y me estoy encontrando con algunos problemillas que os quiero comentar.
1.- El mantenimiento tiene una serie de DBCheckbox con atajos de teclado y me he fijado que aunque no esté en modo de edición, si pulso el atajo del teclado, el checkbox se marca y se desmarca. Esto no pasa si intento marcarlo con el ratón. De todas formas, si me muevo a otro registro y vuelvo al anterior, las marcas que he puesto con los atajos desaparecen. No es un problema muy grave, pero sí que puede resultar un tanto confuso.
2.- ¿Cuando estoy editando un campo, hay alguna manera de saber si es un registro nuevo o estoy modificando uno que ya existe?. En mi ejemplo, el campo NIF no se puede repetir y quiero que si estoy en edición lo salte. Para hacerlo he tenido que crear un DATA lInsertar que voy cambiando a mano, pero mejor si me lo dice Xailer.
3.- Para saltarme el campo NIf si estoy editando, el método OnCheckState me devuelve ::lInsertar. Así si estoy añadiendo puedo entrar y si estoy modificando no. Me he dado cuenta de que si lInsertar:= .f. y pulso sobre el campo Nif, el texto se pone en gris (desactivado). ¿Hay alguna forma de que el texto salga en negro? he probado con la propiedad nClrText pero no me hace caso.
4.- Para comprobar si el nif que me introducen ya existe, utilizo el evento OnExit, que por cierto, en la documentación pone que devuelve Nil y realmente devuelve .t. o .f. para indicarnos si pasamos al siguiente control o no.
5.- En el OnExit intento averiguar el valor que me han introducido en el DbEdit a través del método VarGet(), pero me da siempre una cadena vacía. oSender:FieldGet() tampoco me funciona.
6.- Al utilizar OnExit y estar en modo de visualización el programa se empeña en validar el OnExit cada vez que el DBEdit pierde el foco. ¿Hay alguna forma de saber si estoy visualizando o editando?. La idea es que si estoy visualizando, OnExit devuelva siempre .t. y si estoy modificando o añadiendo se procese.
7.- Tengo un DBListbox con una serie de valores cargados y cuando añado un nuevo registro, me mantiene el valor del registro que tenía seleccionado antes de insertar. ¿No se tendría que poner en blanco como el resto de los campos, o en todo caso, con el primer valor de la lista?
8.- Si cambio la propiedad lPushed de un botón desde el IDE, me hace caso, pero la visualiza siempre con el valor .f.
9.- La creación del formulario ha sido muy rápida, pero he notado que se pierde mucho tiempo en asignar a cada DBEdit el valor. Un pequeño cambio en el IDE que lo haría más cómodo es que el combobox de la propiedad oDataField del DBEdit se desplegara por completo porque tal y como está ahora sólo deja ver 8 ó 9 campos de la dbf y hay que estar bajando con la barra de scroll constantemente.
10.- Me he fijado que puedo cambiar la propiedad cVarName de tal manera que le puedo dar el mismo nombre a dos objetos distintos (un label y un edit) ¿No dará problemar esto?.
11.- Me parece que el evento OnChange del dataset se dispara por primera vez antes de estar construidos los DataControl asociados, por lo tanto si intento llamar a algún datacontrol dentro del OnChange me da un error al iniciar el programa.
12.- ¿Cómo se hacía para poder pasar de un campo a otro con Enter en lugar de con Tab?
Bueno, de momento nada más.
Un saludico,
Fredy
---
avast! Antivirus: Saliente mensaje limpio.
Base de datos de Virus (VPS): 0512-1, 25/03/2005
Comprobado en: 26/03/2005 14:41:40
avast! tiene los derechos reservados (c) 1988-2004 ALWIL Software.
http://www.avast.com

Attached files ejemplo.zip (5.1 KB)Â
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Realizar mantenimiento dbf

Mensaje por fredy[1] »

Vaya, lo siento, no sé que he hecho que se ha vuelto a publicar la
consulta.
Un saludico,
Fredy
Responder