Está en la página 1de 2

Creacin de Proyectos en Visual FoxPro Parte 4

En la parte 3 nos quedaron por resolver los siguientes puntos 3) Crear plantillas de carga. 4) Modificar el form ActAlumnos por el Actualiza genrico. El objetivo de los dos puntos es poder crear un formulario genrico ABM que nos sirva para cualquier tabla y no tengamos uno por cada una. Plantillas de carga Por cada tabla crearemos un contenedor con el mismo nombre, guardado en una librera llamada plantillas y lo nico que vamos a hacer es agregar todos los objetos e indicarles el controlsource. A continuacin veremos dos capturas de ejemplo.

En la captura dos vemos que utilizamos las clases sexo y relacin.

Formulario genrico Para hacerlo genrico lo nico que le vamos a dejar es la botonera, crearemos una propiedad llamada tablaorigen y le cambiamos el nombre por Act. El cdigo del mtodo init del formulario quedara como el que veremos a continuacin: *Los dos parmetros vienen dados desde el procedimiento men, al hacer click y llamar *al formulario ah agregamos los parmetros para que el formulario sepa el caption del *formulario y que tabla tenemos que usar. Al saber que tabla tenemos que usar adems *sabemos que clase agregamos, ya que la llamamos de la misma forma. LPARAMETERS TablaOrigen, titulo *En la propiedad que agregamos guardamos la tabla que usamos. This.tablaorigen = ALLTRIM(TablaOrigen) *El caption es un parmetro que viene desde el men. This.Caption = ALLTRIM(titulo) *Armamos la cadena de tabla para luego poder abrirla. CadTabla = "bd/"+This.tablaorigen *Abrimos la tabla. SELECT 0 USE (CadTabla) CadObj = This.tablaorigen *La variable que vamos a utilizar para saber que clase tenemos que agregar. SET CLASSLIB TO clases/plantillas *Lo que hacemos ac definimos por defecto la librera de clases a plantillas que es *donde tenemos los contenedores con los objetos para cada tabla. This.AddObject("ActDatos", CadObj) *AddObject es un mtodo que nos permite agregar un objeto por cdigo (es lo mismo *que cuando lo agregamos desde diseo con el Mouse), le debemos indicar que clase queremos agregar y como se llamara el objeto en el form (en este caso el objeto se llama ActDatos y la clase es la variable CadObj que la cargamos mas arriba en el cdigo). SET CLASSLIB TO *Estos son tres seteos que le hacemos al objeto luego de agregarlos. This.Actdatos.Visible = .T. this.Actdatos.Top = 1 this.Actdatos.Left = 1 En los botones lo nico que debemos cambiar o agregar es la sentencia SELECT (ThisForm.TablaOrigen) *Lo debemos hacer as porque no sabemos nunca que tabla vamos a utilizar ya que viene dada por parmetro. En el men debemos agregar los parmetros de la tabla y el titulo, un ejemplo es el siguiente: ON SELECTION BAR 3 OF Asistencias DO form forms/Actualiza with "alumnos", "Actualizacion de alumnos" *Con with y separados entre comas le pasamos los parmetros que debe recibir el *formulario.