Crear Clase para botón Nuevo

Hola Unysoft! Ahora que comprendo mejor la importancia de crear las clases para el uso adecuado en mis aplicaciones te consulto: ¿Cómo puedo iniciar la clase para el botón "agregar nuevo registro"? Me gusto mucho tu consejo de utilizar INSERT TO! Así mismo, que otros códigos puedo utilizar para los botones de guardar y editar... Puesto que en mi opinión y corta experiencia, me parece que las acciones de estos botones están relacionadas con el manejo un poco más directo de los datos que almacenare en las tablas! Gracias por la atención prestada! Saludos! :D

1 respuesta

Respuesta
1
Me alegra que vayas comprendiendo la importancia de programar en clases. Te ahorrará mucho tiempo.
Ya tengo tu pregunta. Dame un par de horas para terminar un trabajo y tendrás tu respuesta.
Perdón por la demora, ayer tuve un día infernal
Vamos con la Clase para botón nuevo:
Existen distintas dituaciones en las que podemos necesitar agregar un registro a una tabla:
Por tus preguntas anteriores y comentarios deduzco que estás habituado a trabajar con un form que tiene un grid, sobre el cual agregas nuevos registros en blanco.
Como te lo expliqué en mi respuesta a tu pregunta anterior, eso puede ser poco seguro cuando necesitas verificar la integridad de los datos, especialmente si consideras que cada vez que das clic en el botón Nuevo se crea un nuevo registro que los usuarios de tu sistema pueden dejar en blanco accidentalmente.
Habitualmente las tablas tienen índices estructurales (cdx) y casi siempre hay un índice principal o candidato (busca la ayuda sobre índices). En tales casos no se pueden agregar registros en blanco a las tablas ya que violan la Intgridad Referencial de la Base de Datos y el sistema te dará un error. Un índice Principal o Candidato permite que sólo haya un registro para cada campor clave (indice principal/candidato).
Por Ej. si tienes una tabla clientes.dbf seguramente definirás como índice principal el Nº de documento o matrícula de ese cliente. De esta forma te aseguras que no se registre en forma repetida al mismo cliente. Siendo así, sólo podrás agregar un registro en blanco, y si por error u omisión llegaras a cliquear nuevamente en el botón Nuevo, estarás intentando agregar un 2º registro en blanco, lo cual va en contra del índice principal.
Entre tanto puede que también tengas una tabla pedidos.dbf, en donde definas el Nº de pedido como índice principal (para evitar que se repita el nº de pedido) y el campo idcliente indizado con un índice normal. Esto te permitirá relacionar las tablas clientes y pedidos con una relación de Uno a Varios, de forma que cuando abras ambas tablas desde el entorno de datos el sistema sólo te mostrará los pedidos del cliente seleccionado en la tabla clientes, sin necesidad de que apliques un filtro.
¿Vamos bien hasta aquí?
1) Agregar registros a tablas que no requieren verificación
Considerando lo antedicho, resulta que casi nunca agregarás un registro en blanco a una tabla, ya que querrás tener control de que no se omitan completar determinados valores para los campos.
Además tu interfaz de usuario será mucho más interesante si cargas los datos para los nuevos registros desde un formulario de alta de datos en lugar de hacerlo desde un grid.
Con esto estamos entrando en lo que habitualmente se conoce como ABM: Altas, Bajas y Modificaciones.
Vamos a comenzar a programar:
Antes de crear la clase para el botón nuevo, vamos a necesitar crear una clase COMMANDGROUP que contendrá los botones NUEVO, EDITAR, ELIMINAR, BUSCAR, FILTRAR, IMPRIMIR que son las tareas habituales que realizamos sobre las tablas.
Esta clase COMMANDGROUP te permitirá agrupar los botones de comando en un solo control que utilizarás con bastante frecuencia, aunque también necesitaremos crear botones de comando individuales.
Creando la clase commanddroup
Desde el administrador de proyectos ve a la pestaña claes, selecciona la librería de clases que creaste al definir la clase de tu form y dale clic a nuevo.
Como la vez anterior se abre la pantallita para definir la clase: Debes elegir un nombre para tu clase P.Ej. miCommandgroup, en donde dice basado en selecciona la opción COMMANDGROUP, y luego verifica que donde dice almacenar en: se encuentre especificada tu librería de clases. Luego das clic en aceptar y se abrirá el diseñador de clases, con un grupo de comando con dos botones.
PERSONALIZANDO LA CLASE COMMAND GROUP
Desde el Diseñador de Clases puedes manipular el contenedor a tu gusto hasta que el mismo tenga la apariancia que tú deseas.
En mi caso te sugiero que teniendo seleccionado el contenedor commandgroup (no los botones) hagas clic derecho sobre el para que se muestre el cuadro de propuedades, luego busca la propiedad BUTTONCOUNT y establece el valor en 7, es decir 7 botones.
Los botones te aparecerán ordenados en forma vertical, te sugiero que hagas lo siguiente:
Selecciona todos los botones (los 7) y desde el cuadro de propiedades cambia los valores a las siguientes propiedades:
CAPTION=(Nada) ; HEIGHT=25 ; WIDTH: 25
Luego ordenas tus botones en forma horizontal de la forma que más te guste, para ello deberás modificar el tamaño de tu contenedor COMMANDGROUP. Una vez que hayas acomodado tus botones selecciónalos uno por uno y cambia las siguientes propiedades:
NAME: Nuevo / Editar / Eliminar / Buscar / Filtrar / Imprimir / Otro
PICTURE: Elije un ícono (bmp) de los que tienes en tu directorio de VFP para cada botón.
TOOLTIPTEXT: Nuevo Registro / Edita Registro / Elimina... el texto que quieras que aparezca sobre cada botón cuando sitúes el mouse sobre él.
Si lo deseas he subido las imágenes para los botones y 2 ejemplos para que los descargues desde http://rapidshare.com/files/419186895/COMMANDGROUP.rar.html
OBS: A las imágenes (bmp, msk) deberás agregarlas a tu proyecto desde la pestaña otros: otros archivos. Busca en la ayuda "Mejorar la presentación de controles" para aprender el uso de archivos msk.
OBS2: Para que la propiedad TOOLTIPTEXT funcione, debes modificar la clase miform, buscar la propiedad SHOWTIPS y ponerla en .T.
Ya tienes creada tu clase COMMANDGROUP.
Ahora necesitamos agregar el código a cada botón.
Si te parece y si no has tenido inconvenientes finaliza la presente pregunta y haz la siguiente: Asignar código a Botones de Clase
Hola Carlos! He realizado las tareas que me has orientado y pues no tuve ningún inconveniente con la creación de la clase micommandbuttons... ya he cambiado las propiedades y he ordenado los botones! Gracias por tu ayuda! Cerrare esta consulta y ralizare la próxima! XD

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas