Cursores
monk66Examen2 de Febrero de 2014
1.012 Palabras (5 Páginas)299 Visitas
Con CURSOR (temporal o tabla fisica .dbf)
Cargar un cursor con un cursor temporal o una tabla fisica es muy util cuando el numero de opciones es considerable y dispuesto a cambios. Por ejemplo: cuando diseñamos una aplicacion de nómina, definimos unicamente los parametros de ingreso y registro de unidades administrativas en donde se ubicaran los empleados. Pero es el usuario quien registra dichas unidades, y cuando realice las altas de su personal, necesita conocer esas unidades para ubicar a los trabajadores. Como programadores, no sabemos cuantas unidades tendra el sistema ni cuando se registratrán. Al hacer la apertura de la empresa, el cliente inicia operaciones con 20 empleados distribuidos en 4 unidades administrativas. Primero registra las unidades y luego a los empleados. El el formulario de alta de empleados, tiene un campo disponible para ingresar la ubicacion del trabajador, la cual se escoge a través de un combo que desplega todas las unidades disponibles (4). Pasan 4 meses y la empresa crece. El personal pasa a 50 y las unidades a 8. Entonces, como registra el cliente a sus nuevos empleados y sus ubicaciones (predispuestas a cambios, a como pueden ver) cambiantes en el modulo de altas??? Como hace el sistema para ir registrando unidades por un lado, y por otro (alta de empleados) ir mostrando algunas opciones nuevas en un combobox??? Va asi:
Sigamos la linea del ejemplo de sistema de nomina, para ser mas ilustrativos. Imaginemos que tenemos una tabla fisica llamada unidades_adm en donde registramos las unidades administrativas de la empresa, con los campos: codigounidad, nombreunidad. Esta tabla, "alimentara" el combobox ubicado en el modulo de alta de empleado. Vamos al modulo de altas de empleado, y procedemos asi:
1. Agregamos la tabla unidades_adm al entorno de datos de nuestro form.
2. En las propiedades del combo, ubicamos en la pestaña DATA la propiedad RowSourceType y seleccionamos la opcion 6 - Fields. Con esto, establecemos que el combo sera "alimentado" con los registros de un campo de una tabla. En la propiedad RowSource, seleccionamos el campo especifico con el cual deseamos hacer referencia de opciones en el combo. En este caso, unidades_adm.codigounidad. Seleccionamos la propiedad Style (en Layout) y escogemos 2 - DropDownList
Y listo. Ahora, cada vez que el usuario registre una nueva unidad, en el modulo de altas de empleados, ya las opciones estaran disponibles! :) De esta forma muy sencilla, podemos ver como mantener actualizadas las opcions de un combobox.
Para usar un cursor temporal, lo unico que hacemos es crear el cursor en el init del form y luego cargarlo al combo. EN el init del form, seleccionamos los datos en un cursor
SELECT codigounidad FROM unidades_adm INTO CURSOR temp1
y en las propiedades del combo, colocamos el nombre del cursor y campo
temp1.codigounidad
Y listo! :)
Generar un levantamiento de datos automatico de una tabla
Saludos. Siempre buscamos como automatizar mas los procedimientos de nuestras aplicaciones. :) Por ejemplo, para una aplicacion de facturacion, necesitamos introducir varios productos en un form (control grid) y para esto, es mas rapido si vamos digitando el codigo del producto y al presionar enter que se generen los datos de dicho producto, tales como descripcion, unidad de medida, precio, impuestos.. etc. Para lograr esto, procedemos asi:
Imaginemos que tenemos una tabla llamada "productos" con los campos: codigo, descripcion, unidadmedida, preciounitario. Queremos que, en un form de facturacion, digitemos (en una columna de un grid) el codigo del producto y que al presionar ENTER, se muestren los datos (en el resto de columnas) del producto de forma automatica.
1. Vamos
...