Está en la página 1de 9

TEMA: CURSORES

Ejercicio de Aplicacin
La siguiente aplicacin se realiz con la finalidad de efectuar filtros a una tabla llamada Empleados; dicho filtros se realizar mediante los criterios de Distrito, Fecha de Nacimiento, Sueldos. Los datos de los empleados sern mostrados independientementes en recuadros.

CODIGO FUENTE
1. Programacin General

En el evento OPEN DE LA VENTANA //Variables string distrito //Declaramos Cursor Declare lista Cursor For Select Distinct distrito From empleado; //Abrimos Cursor open lista; //Ejecutamos Cursor fetch lista into :dist; do while sqlca.sqlcode <> 100

ddlb_1.additem(dist) fetch lista into :dist; loop //Cerramos Cursor close lista; //Ocultamos Controles ddlb_1.visible=false em_1.visible=false em_2.visible=false 2. Criterio: DISTRITO En el caso de hacer la busque por DISTRITO nos mostrar la ventana de la siguiente manera cuando el usuario seleccione el distrito:

En evento CLIKED RADIOBUTTON RB_Distrito //Mostrar/Ocultar Controles ddlb_1.visible=true em_1.visible=false em_2.visible=false //Limpiar ListBox

lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset() lb_5.Reset() lb_6.Reset() //Otros ddlb_1.setfocus() st_2.text="Distrito :" En evento SELECTIONCHANGED DEL DDLB_1 (ComboBox) //Variables string nom, distrito,sexo,fecha_nac,num_hijos,sueldo integer num,edad date fecha //Limpiar lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset() lb_5.Reset() lb_6.Reset() //Cursor Declare emp Cursor for Select nombres,distrito,sexo,fec_ingreso,num_hijos,sueldo from empleado where distrito = :ddlb_1.text;

open emp; fetch emp into :nom,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; do while sqlca.sqlcode <> 100 num=num +1 lb_1.additem(nom) lb_2.additem(distrito) lb_3.additem(sexo) lb_4.additem(String(fecha_nac)) lb_5.additem(String(num_hijos)) lb_6.additem(String(sueldo)) fetch emp into :nom ,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; loop close emp; //Resultado st_1.text = "Son " + String(num) + " Empleados del Distrito "+ ddlb_1.text 3. Criterio: FECHA NACIMIENTO En el caso de hacer la busque por FECHA NACIMIENTO nos mostrar de la siguiente ventana cuando el usuario ingrese una fecha correcta:

En evento CLIKED RADIOBUTTON RB_FechaNacimiento //Mostrar / Ocultar Controles ddlb_1.visible=false em_1.visible=true em_2.visible=false //Limpiar lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset() lb_5.Reset() lb_6.Reset() //Otros em_1.setfocus() st_2.text="Fecha Ingreso :"

En evento MODIFIED DEL EDIT MASK EM_1 //Variables string nom, distrito,sexo,fecha_nac,num_hijos,sueldo integer num,edad date fecha //Limpiar lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset()

lb_5.Reset() lb_6.Reset() //Cursor Declare emp Cursor for Select nombres,distrito,sexo,fec_ingreso,num_hijos,sueldo from empleado where distrito = :em_1.text; open emp; fetch emp into :nom,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; do while sqlca.sqlcode <> 100 num=num +1 lb_1.additem(nom) lb_2.additem(distrito) lb_3.additem(sexo) lb_4.additem(String(fecha_nac)) lb_5.additem(String(num_hijos)) lb_6.additem(String(sueldo)) fetch emp into :nom ,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; loop close emp; //Resultado st_1.text = "Son " + String(num) + " Empleados que nacieron el: "+ em_1.text 4. Criterio: SUELDO MAYOR En el caso de hacer la busque por SUELDO MAYOR A nos mostrar de la siguiente manera cuando el usuario ingrese el sueldo:

En evento CLIKED RADIOBUTTON RB_Sueldo //Mostrar / Ocultar Controles ddlb_1.visible=false em_1.visible=false em_2.visible=true //Limpiar lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset() lb_5.Reset() lb_6.Reset() //Otros em_1.setfocus() st_2.text="Sueldo Mayor :"

En evento MODIFIED DEL EDIT MASK EM_1 //Variables string nom, distrito,sexo,fecha_nac,num_hijos,sueldo

integer num,edad date fecha //Limpiar lb_1.reset() lb_2.Reset() lb_3.Reset() lb_4.Reset() lb_5.Reset() lb_6.Reset() //Cursor Declare emp Cursor for Select nombres,distrito,sexo,fec_ingreso,num_hijos,sueldo from empleado where distrito = :em_2.text; open emp; fetch emp into :nom,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; do while sqlca.sqlcode <> 100 num=num +1 lb_1.additem(nom) lb_2.additem(distrito) lb_3.additem(sexo) lb_4.additem(String(fecha_nac)) lb_5.additem(String(num_hijos)) lb_6.additem(String(sueldo)) fetch emp into :nom ,:distrito,:sexo,:fecha_nac,:num_hijos,:sueldo; loop

close emp; //Resultado st_1.text = "Son " + String(num) + " Empleados con el Sueldo Mayor A "+ em_2.text