Sunteți pe pagina 1din 37

UNIVERSIDAD NACIONAL DE INGENIERIA Centro de Extensin y Proyeccin Social

UNIVERSIDAD NACIONAL DE INGENIERIA Centro de Extensin y Proyeccin Social

AREA DE CAPACITACION COMPUTACION

Gua de Laboratorio Visual FoxPro Niv. II

Autor: Allaucca Paucar Juan Jos Elaborado por: Allaucca Paucar, Juan Jos

Introduccin:

Esta nueva obra, Gua de Laboratorio de Visual FoxPro Nivel Intermedio tambin es producto de una necesidad de contar con un material en la enseanza del Curso. Elabor con la misma finalidad de ayudarle aprender Visual FoxPro un poco ms sin presencia del Autor. S que le ser de gran utilidad para todos aquellos colegas que se encuentran a muchas millas del saln de clases y alejados del CEPS-UNI. Pongo en sus manos una vez mas aun es la primera versin siempre en su modelo especial, talvez diferente a las convencionales. Est en la misma secuencia como se imparten en los laboratorios del Centro de Extensin y Proyeccin Social de la Universidad Nacional de Ingeniera, Lima-PERU. Esta Gua y del Nivel I pueden encontrar tambin en http://www.cinsoft.es/vfoxpro y asimismo en http://www.hypermart.net gracias a los administradores de la paginas Pablo Roca y Ral Jurez respectivamente. Debo terminar no sin antes rendirle homenaje a mi ser ms querida (mi madrecita) que me abandono justo en el preciso momento que elaboraba esta gua(18/05/2000) ya sin saber como reaccionar solo me atin a continuar. Si tuviese que mencionar mi aprecio a todos seria muy larga la lista y no podra terminar pero si no puedo dejar de hacerlo: Al Director del CEPS-UNI Ing. Jose Barrientos por su apoyo incondicional en mis primeros pasos, Al Ing. Fisico: Cesar Picn Chvez quien como Maestro y Guia me brindo toda la facilidad para alcanzar este objetivo. Claro que este no es aun el final, tenemos mucho por explorar todava, tales como Cliente-Servidor ( tengo ya poco avanzado), Instaladores, ayudas y otros que pronto nos vendr con la versin 7.0. Finalmente si le ha sido muy provechoso y le h ahorrado tiempo, gastos y libros no dude en escribirme o voluntariamente gratificarme con un solo 10% de vuestro aprecio. Direccin: Jr. Miguel Grau 102 Urb. Valdivieso Ate-Vitarte Lima-Peru Cuenta de Ahorros Banco Latino: 048-004545-66. Derechos reservados, Se complementa con la base terica o separata del CEPS UNI. Lima, 26 de Junio de 2000

Laboratorio No 01
Objetivo: Entrenar al Usuario en el uso de Controles, Propiedades y Eventos. Introduccin: La pantalla que se muestra en la parte en el inferior es el Producto Final, al cual debemos llegar siguiendo los pasos que se indican durante todo el proceso de elaboracin. Asimismo se puede observar los botones tienen teclas calientes pueden obedecer a algunas teclas y mientras no digite el Id del Usuario y Clave de acceso se encuentra dishabilitado el Botn Aceptar. Como introduccin las contraseas se pueden almacenar en una tabla donde buscar y al verificar su veracidad debe mostrar otra pantalla de Bienvenida.

Nota: Los pasos que corresponden al Primer Nivel corrern a cargo del usuario, y la secuencia a seguir no es
rgida es solo una ayuda, el usuario tiene toda la libertad de poner en practica todas sus habilidades personales y eso es lo que se premia.

Pasos a seguir 1. Cargar del Sistema y Direccionar 2. Crear una Carpeta de usuario: C:\VF2\labs (Va Visual FoxPro Windows ) 3. Crear tabla Usuarios para Nombres y Clave Creacin de Formulario 4. Hacemos Click sobre las siguiente Opciones: Archivo Nuevo 3

(o) formulario Nuevo Archivo 5. Click en: Ver Barra de herramientas

Selecciones las opciones hasta que sea similar al del grfico luego haga Click en Aceptar 6. Debe mostrarse una pantalla similar

Ejercicio 1 Envo de datos de un control a otro 7. Observe el conjunto de opciones de la Barra de Herramientas Controles de Formularios, haga Click en A (Label) luego lleve el Mouse sobre el formulario y haga Click sobre ella, similar haga Click sobre control anterior

ab (Text) y ubquelo en el formulario debajo del

8. Usando el Mouse aumente el ancho de los dos objetos, Seleccinelos y alinear usando Controles Diseo (Click en: Alinear Centros Verticalmente, Mismo tamao y Centrar
Horizontalmente)

9. El grfico debe mostrarse similar a:

10. Click en fuera de la seleccin, luego Click en Label1 11. Presione Botn Derecho sobre ella y seleccione Opcin: Propiedades 12. Dentro de la lista de Propiedades hacemos Click en: Alignment

(Ver el grfico) para alignment existen 3 opciones, seleccionamos 2. Centro

13. Luego seleccionamos Caption y digitamos: Universidad Nacional de Ingeniera 14. Agregamos un Botn Comando al formulario y hacemos Doble Click sobre ella y digitamos similar al de la figura

15. Cerramos la ventana de cdigo y cambiamos en las propiedades el titulo( Caption) del Botn command1 por la palabra Salir y cerramos la ventana de propiedades. 16. Agregamos otro botn Comando con titulo: Aceptar luego hacemos doble Click y digitamos:

Cerramos la ventana del Cdigo y hacemos Click en el Signo de Admiracin ( ! ) Que se encuentra como una opcin mas de la Barra de Herramientas Standard. Consulta de la parte derecha respondmosle afirmativamente. 17. Mostrara la sgte. pantalla, digite tal como se observa en el grfico

y haga Click en Aceptar Observa algn cambio?. Digite vuestro Apellidos y Nombres y Click en Aceptar, ahora? 18. Cuando deseamos terminar el programa hacemos Click en Botn Salir 19. Eliminamos el Botn Aceptar, luego con doble Click en Text1 digitamos tal como se

Observa en el grfico (Evento:InteractiveChange)

20. Cerramos las ventanas y ejecutamos escribiendo nuestros datos Personales (!) Ejercicio 02 Ingreso de Id del Usuario y Clave 21. Creamos un nuevo formulario y insertamos los siguientes objetos

22. Re-Acomode los objetos tal como se muestra en la parte superior 23. Cambiemos las propiedades de acuerdo a los nuevos valores que se muestran en la siguiente tabla:
Propiedad BackColor Caption Propiedad Alignment BackStyle FontBold FontSize ForeColor Propiedad Alignment Cancel Caption Enabled FontBold FontSize ForeColor InputMask Name PasswordChar Name Text1 Centro .T. .T. 9 Rojo A (12 digitos) Txtusuario TxtUsuario Label1 Centro Transparente .T. 14 Naranja

Nom bre del Objeto


Form (255,254,230) o color que crea conveniente el usuario Centro de Extensin y Proyeccin Social

Nom bre del Objeto


Label2 Izquierda Transparente .T. 9 Rojo Text2 Centro .T. .T. 9 Rojo X (6 digitos) TxtClave * TxtClave Label3 Izquierda Transparente .T. 9 Rojo Command1 .F. Falso \<Aceptar .F. Falso .T. 9 Azul CmdAceptar CmdAceptar Label4 Centro Transparente .T. 12 Azul Command2 .T. Verdadero \<Cancelar .T. .T. 9 Azul Cmdcancelar Cmdcancelar

Nom bre del Objeto

24. El formulario ya debe tener la siguiente apariencia:

25. Luego en tiempo de Ejecucin agreguemos el siguiente cdigo:

Tanto para el objeto TxtUsuario y txtClave sobre el evento InteractiveChange (ver graf.)

10

26. Finalmente en el Evento Click de CmdAceptar digitamos el sgte. Codigo: Set Order to tag PkUsuario Seek allt(Thisform.Txtusuario.Value) If Found() and Allt(Thisform.Txtclave.Value)=Allt(Usuario.Clave) =MesageBox(El Usuario existe. Preparemos la Pantalla Logo; +chr(13)+Para Continuar) * Do Form Logo Else =Messagebox("El Usuario "+thisform.txtusuario.value+chr(13); +"No est Autorizado !!!") Endif Thisform.refresh 27. Complete el cdigo respectivo para el Objeto CmdCancelar, guarde el archivo, Ejecute.y pruebe debe funcionar sin problemas. Caso que algo falle revise y complete. Fin del Laboratorio

11

Laboratorio No 02
Objetivo: El Usuario haciendo uso del conjunto de Formularios, Propiedades y Mtodos podremos obtener nuestra edad ingresando nuestra fecha de Nacimiento, tal como se observa en el siguiente grafico.

Solucin y Pasos a seguir 1. Cargamos: Visual FoxPro 2. Crear un nuevo Formulario Hacemos Click en Men: Formulario (ver el siguiente grafico) Crear Conjunto de Formularios (Es normal como no se apreciara nada, continuamos... )

12

3. Nuevamente hacemos Click en Men: Formulario Agregar Nuevo Formulario 4. Hacemos Click en el titulo del Formulario (Form2) y luego reubicamos similar a la siguiente figura:

5. Luego colocamos los siguientes objetos sobre cada uno de los formularios

13

6. Luego iniciamos a modificar alguna propiedad


Propiedad

Nombre del Objeto


Form1 (255,254,128) o color que crea conveniente el usuario Fecha .T.

Propiedad

Nombre del Objeto


Form2 (255,128,255) o color que crea conveniente el usuario Edad .T.

BackColor Caption ShowTips Propiedad Alignment BackStyle Caption FontBold FontSize ForeColor

BackColor Caption ShowTips Propiedad BackColor BackStyle Caption FontBold FontSize ForeColor

Nombre del Objeto


Label1 Centro Transparente Fecha .T. 12 Negro

Nombre del Objeto


Label1 Blanco 1.- Sencillo .T. 12 Negro

7. Asimismo continuamos cambiando mas propiedades tal como se muestra en la siguiente pagina

14

Propiedad Alignment Value Propiedad Cancel Caption Enabled Default FontBold ToolsTipText

Nombre del Objeto


Text1 Centro {}

Propiedad Cancel Caption Enabled ToolsTipText Propiedad

Nombre del Objeto


Command1 .F. \<Volver .T. Retorno al Formulario No 1

Nombre del Objeto


Command1 .F. \<Ver .F. .T. .T. * Command2 .T. Verdadero \<Cancelar .T. .F. .T. **

Nombre del Objeto


Image1 C:\Archivos de programa\ Microsoft Visual Studio\ Common\graphics\icons\ misc\clock01.ico

Picture

* Activa el Formulario No 02

** Cierra el Conjunto de Formularios

8. Creamos el Mtodo: CalculaEdad y Creamos Propiedad: Edad Click en Menu: Formulario Click en: Formulario Nuevo Metodo Nueva Propiedad CalculaEdad Edad Agregar Agregar Cerrar Cerrar 9. Luego en Tiempo de Ejecucin: Hacemos doble Click en Text1 luego cambiamos en Objeto y Procedimiento similar al siguiente grafico y digitamos:

Nota: En lo que sigue tal como se observa en el grafico anterior, haremos mencin al Objeto y al Evento. (Ejm: Evento Init del Objeto Formset1) Digitar las siguientes instrucciones en: Objeto: Formset1 Evento: CalculaEdad PARAMETER dFecha NEdad=INT((DATE()-dFecha)/365) CRpta="Usted tiene "+STR(nEdad,2)+" aos" RETURN cRpta

15

Objeto: Form1

Evento: Init Set Date to fren Set cent on thisformset.form2.hide thisformset.form1.text1.setfocus Command1 (Del form1) Evento: Click Thisformset.form1.hide Thisformset.Edad=thisformset.CalculaEdad(thisformset.form1.text1.value) Thisformset.form2.show Thisform.refresh Command2 (Del Form1) Evento: Click Release Thisformset Objeto: Form2 Evento: Activate Thisformset.form2.label1.caption=thisformset.Edad Thisformset.refresh Command1 (Del form2) Thisformset.form2.hide Thisformset.form1.show Thisform.refresh Evento: Click

10.- Activar la ventana de propiedades del Formset1 Desplazarse hasta la parte final de la lista, Ubicarse sobre Edad. Tiene valor inicial asignado como .F., borrar.F. y dejar en Blanco 10. Guardar y probar el programa, y al mismo tiempo completar algunos detalles para mostrar una mejor presentacin, suerte que les salga todo correcto.

Fin del laboratorio

16

Laboratorio No 3
Objetivo: Elaborar un pedido de Cotizaciones usando Grids a diferencia de un conjunto de Formularios. Explicacin de la bondad del programa: El Usuario puede seleccionar el articulo que desee mediante una lista desplegable (Combo). Apenas seleccione un articulo, automticamente se debe mostrar el precio de ella, el inters es fijo para esta ocasin (ver grafico) .

La venta ha realizarse es a plazos ello condiciona a la cuota mensual a pagarse, ejemplo cuando asumimos las condiciones anteriores al hacer Click sobre Opcin Cuota Mensual debe mostrarnos una ventanita (ver la parte derecha.) Con los datos propuestos, similar al hacer Click sobre Total nos debe mostrar la cantidad total a pagar. Y cuando hacemos Click en la Ficha ( o pestaa) Pedido deber mostrarnos una pantalla para Seleccionar el Cliente, sus datos y otros (ver figura casi al final del Laboratorio).

Inicio del Laboratorio


Pasos a seguir:
1.- Crear las tablas correspondientes cuyas estructuras se muestran al final del laboratorio 2.- Crear un Nuevo Formulario e insertar el objeto Grid sobre ella ( ver grafico de la sgte pagina)

17

3.- Presionamos el Botn Derecho sobre el Grid y seleccionamos: Modificar 4.- Ya estamos en modo Edicin insertamos los siguientes objetos en Page1: (ver sgte figura) Nota: debemos tener mucho cuidado que los objetos que estamos insertando verdaderamente estn en la Page1, no siempre resulta as. Pruebe haciendo Click en Page2.

18

5.- Similar al trabajo anterior en Page2 Insertar los siguientes objetos ( ver grafico siguiente)

6.- A esta altura del curso el alumno ya esta en la posibilidad de interpretar y cambiar algunas de las propiedades visibles (caption) de los objetos mostrados. Sea tarea vuestra elaborar al objeto Page1 y Page2 muy similares a lo que se observa en los grficos de la siguiente pagina.

19

20

7.- Completamos la Propiedad Name de los principales Objetos:

8.- Creamos el mtodo: Proyectado y digitamos:


Nprecio=Articulo.Precio ninteres=thisform.pageframe1.page1.txtinteres.value ntiempo=thisform.pageframe1.page1.opgplazo.value do case case ntiempo=1 nmeses=6 case ntiempo=2 nmeses=12 case ntiempo=3 nmeses=24 endcase ntotal=nprecio*(1+ninteres*nmeses) return ntotal

21

9.- Creamos Metodo: CuotaMensual y digitamos Ncostototal=thisform.proyectado() ntiempo=thisform.pageframe1.page1.opgplazo.value do case case ntiempo=1 nmeses=6 case ntiempo=2 nmeses=12 case ntiempo=3 nmeses=24 endcase return ncostototal/nmeses 10.- En el Evento: Init del Form1 digitamos: Set multilock on Set date to fren 11.- En la pagina de Consulta agregamos los siguientes cdigos: Objeto: CmbArticulo Evento: InteractiveChange Public vIdArt vIdArt=articulo.idarticulo thisform.pageframe1.page1.txtprecio.setfocus thisform.refresh CmbArticulo Evento: Click Thisform.pageframe1.page1.opgplazo.opt6.setfocus thisform.refresh CmdMes Click ncuota=thisform.cuotamensual() messagebox("cuota de cada mes:"+str(ncuota,8,2)) CmdTotal Click ncostototal=thisform.proyectado() MessageBox("costo total a pagar :"+str(ncostototal,8,2)) 12.- En la pagina de Pedidos agregamos los siguientes cdigos: Objeto: Page2 Evento: Activate

Select pedido set order to tag pkpedido go bottom thisform.pageframe1.page2.txtidpedido.value=right("0000"+alltrim(str(val(idpedido)+1)),5) nplazo=thisform.meses() thisform.pageframe1.page2.txtarticulo.value=vidart thisform.pageframe1.page2.txtprecio.value=thisform.pageframe1.page1.txtPrecio.value thisform.pageframe1.page2.txtplazo.value=nplazo thisform.pageframe1.page2.txtinteres.value=thisform.pageframe1.page1.txtInteres.value thisform.refresh

22

Objeto: CmbCliente Evento: InteractiveChange Public vIdClie vIdClie=Cliente.idcliente thisform.refresh Objeto: CmbCliente Evento: Click thisform.pageframe1.page2.cmdaceptar.setfocus thisform.refresh Objeto: CmdAceptar Evento: Click Replace idpedido with thisform.pageframe1.page2.txtidpedido.value Replace fecha with thisform.pageframe1.page2.txtfecha.value Replace idCliente with vIdClie Replace idArticulo with thisform.pageframe1.page2.txtarticulo.value Replace Precio with thisform.pageframe1.page2.txtPrecio.value Replace interes with thisform.pageframe1.page2.txtInteres.value Replace Plazo with thisform.pageframe1.page2.txtPlazo.value thisform.refresh 13.- Finalmente vamos a ejecutar con la finalidad de ir probando y completando aquellas partes necesarias del programa. Nota: as mismo queda para el usuario elaborar la presentacin del programa tal como se observa en la siguiente pagina, tanto en color de fondo, tipo de fonts, etc.

23

14.- Haciendo Click en el Combo CmdArticulo seleccionaremos un determinado Articulo, y averiguamos cuanto deber abonar el Cliente por cada mes y cuanto es el total a abonar por los 12 meses. Luego haremos Click en la Pagina: Pedido y deberemos obtener el siguiente resultado. (ver la siguiente pagina)

Para finalmente almacenar los datos presionando con el mouse sobre el Botn: Guardar. Suerte una vez mas...

Fin del laboratorio


Estructura de las tablas del laboratorio

Pedido.dbf
Idpadido Fecha IdCliente IdArticulo Plazo inters C D C C N N 5 8 3 3 2 4 2

Clientes.dbf
IdCliente Nombre Direccin IdDistrito Telefono C C C C C 3 35 35 3 10

Articulo.dbf
IdArticulo Detalle Precio Stock C C N N 3 40 10 4

2 3

Nota: Puede ingresar un registro de prueba a Pedido.dbf, pero a las otras tablas es necesario ingresar al menos como minimo par de registros, humildemente recomendara 5 registros

24

Laboratorio No 04
Objetivo: Preparar un formulario de Facturacin. Nota: En la parte inferior se muestra el producto final para llegar a ello, Ud. Debe realizar ciertos pasos previos que se detallan despus del grafico.

Carguemos Visual FoxPro 1. Para simular una Entidad vamos a crear las siguientes tablas en la Base de Datos Ventas, a las tablas Artculos y Clientes ingresar algunos registros. Articulo.dbf Clientes.DBF Artcod ArtDet ArtPre ArtStk C C N N 3 40 10 4 6 C 7 10 ClieCod ClieNom ClieRuc C C C 3 40 8

GuiaEnc.DBF Nguia C ClieCod IGV N Total N

3 2 2

Guiadet.DBF Nguia C ArtCod C ArtDet C PreUni N Cant N SubTotal N

6 3 40 7 5 10

2 2

25

Temporal.DBF Nguia C 6 ArtCod C 3 ArtDet C 40 PreUni N 7 2 Cant N 5 SubTotal N 10 2 Nota: Indexar la tabla GuiaEnc, campo Nguia con etiqueta Nguia 2. Creamos Nuevo formulario luego insertamos los objetos que se muestran en el grafico inferior.

3. Para el Entorno de Datos asignamos las cinco tablas creadas anteriormente 4. En tiempo de Diseo Modificamos las propiedades de los objetos segn la tabla siguiente:
Objeto: Propiedad Valor
Clientes.Clienom CmbCliente Campos Clientes.Clienom 2. Lista desplegable 1 2. Centro
A Criterio del Usuario A Criterio del Usuario

Objeto:
Text1

Propiedad
Alignment DisableBackColor DisableForeColor Enabled Name FontName Column Count Deleted mark Name RecordSource BackColor GridLineColor

Valor
2. Centro
A Criterio del Usuario A Criterio del Usuario

ControlSource Name Combo1 Row SourceType Row Source Style Value Alignment DisableBackColor DisableForeColor Enabled Name FontName

FALSO txtNguia
A Criterio del Usuario

4
.F. Falso grdDetalle

Text2

Grid1

FALSO TxtTotal
A Criterio del Usuario

Temporal A Criterio del Usuario


Azul

26

Antes de continuar con mas cambios, vamos a insertar objetos Combo y Spinner en la columna1 y columna2 del Grid respectivamente, para ello prepare el control de Formularios luego: Seleccione el objeto: Grid

Presione sobre ella : Botn Derecho Seleccione : Modificar Hacemos Click en : Combo Luego Click sobre ab debajo de: Header1 de la primera columna del grid Hacemos Click en : Spinner Luego Click sobre ab debajo de: Header1 de la Segunda columna del grid Salimos de edicin haciendo Click fuera del Grid Presionamos Botn derecho sobre el Grid Propiedades Hacemos Clic en: grdDetalle Seleccionamos : Column1 Current Control Clic en Text1 seleccionamos Combo1 Similar debe hacerlo para Spinner de la Segunda Columna
Continuamos cambiando el valor de las propiedades de los siguientes objetos:

Objeto:

Propiedad

Valor
Temporal.Artdet Combo1
ColDescripcion

Objeto:
Column3

Propiedad
ControlSource Name ReadOnly ControlSource Name ReadOnly Alignment Caption FontBold Alignment Caption FontBold ControlSource KeyboardHighValue KeyboardLowValue Name Style SpinnerHighValue SpinnerLowValue Value

Valor
Temporal.Artpre ColPreUni
.T. Verdadero

ControlSource Column1 CurrentControl Name ControlSource Column2 CurrentControl Name Alignment

Temporal.Artdet Spinner1
ColDescripcion

Column2

Temporal.SubTotal ColSubTotal
.T. Verdadero

Header1 Caption
FontBold Alignment Caption FontBold

2. Medio Centro Descripcion


.T. Verdadero

Header3

2. Medio Centro Precio


.T. Verdadero

Header2

2. Medio Centro Cantidad


.T. Verdadero

Header4

2. Medio Centro SubTotal


.T. Verdadero

Temporal.Cant

ControlSource Name Combo1 RowSourceType RowSource Style Value

Temporal.ArtDet CmbDescripcion 6. Campos Articulo.ArtDet 2. Lista Desplegable


1

99 1
SpnCantidad 2. Lista Desplegable

Spinner1

99 1
1

Mas propiedades

27

Objeto:

Propiedad
Name

Valor
\<Nuevo cmdNuevo \<Agregar
cmdAgregar

Objeto: Propiedad
Command3 Caption
Name

Valor
\<Guardar cmdGuardar \<Salir
cmdSalir

Command1 Caption Command2 Caption


Name

Command4 Caption
Name

Command2 Caption Text1


Name

\<Agregar
txtNguia

Command4 Caption Text2


Name

\<Salir
txtSubTotal

Nota: Caption de Labels ver el Grafico Diseo en tiempo de Ejecucin:


Digitaremos los siguientes cdigos, segn como se indican a continuacin

Objeto: Formulario Principal (Form1)


Evento Init

Public srec set multilock on set talk off set safety off set exclusive on SELECT GUIAENC =cursorsetprop("buffering",3) set order to tag Nguia go bottom thisform.txtnguia.value=right("00000"+alltrim(str(val(nguia)+1)),6) append blank replace nguia with thisform.txtnguia.value Select temporal dele all set dele on append blank replace nguia with thisform.txtnguia.value srec=recno() thisform.grdDetalle.refresh thisform.txttotal.value=0

Evento Destroy
SELECT GUIAENC =Tablerevert(.t.) SELECT TEMPORAL
Objeto: Cmbdescripcion

28

Evento: Click if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0 thisform.grddetalle.colcantidad.spncantidad.setfocus else thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus endif thisform.refresh


Evento: Interactivechange

SELECT temporal go srec replace artcod with articulo.artcod replace preuni with articulo.artpre replace subtotal with thisform.grddetalle.colcantidad.spncantidad.value*preuni sum subtotal to ntotal go srec thisform.txttotal.value=ntotal thisform.grddetalle.colcantidad.spncantidad.value=1 thisform.refresh Evento: LostFocus if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0 thisform.grddetalle.colcantidad.spncantidad.setfocus else thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus endif thisform.refresh
Objeto: spnCantidad

Evento: InteractiveChange
select temporal replace subtot with thisform.grddetalle.colcantidad.spncantidad.value*preuni nrec=recno() sum subtotal to ntotal go nrec thisform.txttotal.value=ntotal thisform.refresh Evento: LostFocus thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
Objeto: cmbCliente

Evento: Click SELECT GUIAENC replace cliecod with cliente.cliecod thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus THISFORM.REFRESH

29

Objeto: cmdAgregar

Evento: Click public srec SELECT TEMPORAL if len(allt(artdet))>0 append blank srec=recno() thisform.grddetalle.colcantidad.spncantidad.value=1 endif replace nguia with thisform.txtnguia.value thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus thisform.refresh
Objeto: cmdNuevo

Evento: Click Public srec select temporal dele all set dele on append blank replace nguia with thisform.txtnguia.value srec=recno() thisform.grddetalle.refresh thisform.txttotal.value=0 thisform.refresh
Objeto: cmdGuardar

Evento: Click SELECT GUIAENC replace igv with thisform.txttotal.value*0.18 replace total with thisform.txttotal.value =tableupdate(.t.) SELECT TEMPORAL Scan insert into guiadet(nguia,artcod,artdet,preuni,cant,subtotal); values(temporal.nguia,temporal.artcod,temporal.artdet, ; temporal.preuni,temporal.cant,temporal.subtotal) EndScan SELECT GUIAENC set order to tag Nguia go bottom thisform.txtnguia.value=right("00000"+alltrim(str(val(nguia) +1)),6)
Objeto: cmdSalir

30

Evento: Click SELECT GUIAENC =tablerevert(.t.) SELECT TEMPORAL release thisform Guardar y Probar la Ejecucin. Realizar los cambios respectivos, hasta presentar similar al presente modelo.

Queda para el usuario hacer los ltimos toques, para que resulte un buen diseo. Fin del Laboratorio

31

Laboratorio 5 Objetivo: Creacin de Men, Formulario superior Inicio del trabajo: 1. Cargar Visual FoxPro 2. Archivo Nuevo (o) Men Nuevo Archivo

En el grafico anterior, Click en Opcin Men 3. Como modo de practica crear las siguientes opciones del Men, ver el grafico siguiente:

Nota: En la pantalla el usuario puede ver, debajo del titulo Accin existe un men tipo Combo y contiene (Comando, Titulo de Men, Submen y Procedimiento) opciones que Ud. deber seleccionar de acuerdo a vuestra necesidad.

4. Seleccione el Men Sistema haciendo Click sobre ella o en alguna parte de la fila que la contiene

32

5. Haciendo Click en: Crear, (opcin que se encuentra a la derecha) preparemos los submens perteneciente al men Sistema tal como se observa en el grafico de la siguiente pagina.

Nota: Cuando desea regresar al Men Superior hacemos Click en opcin Barras de mens que se encuentra dentro del combo Nivel de Men 6. Ejercicio para el usuario; para cada men principal asignar al menos 4 submens y a su vez crear algunos sub-mens de Sub-mens existentes. El Men Salir deber tener dos sub-mens, para salir al ambiente Visual FoxPro y otro para que salga cerrando Visual FoxPro (ver el sgte grafico)

33

7. Guardamos el archivo haciendo clic en:


Archivo

Guardar MyMenu (Como nombre del archivo) Guardar 8. Hacemos click en: Men Generar...

En el grafico anterior Clic en: Generar, tambien propone una carpeta el cual puede cambiar el usuario. 9. Luego cerramos la ventana del Diseo de Men y digitamos la instruccin que se observa en la ventana de comandos que se muestra en la parte inferior.

34

10. Cuando crea conveniente y esta seguro que vuestro men funciona con toda normalidad 11. Otra vamos a abrir el Men, luego hacemos Clic en: Ver Opciones Generales... ( y completamos, tal como se observa en el sgte grafico)

Aceptar Nuevamente generar similar en el paso 8, cerrar y luego 12. Creamos un Formulario similar al del grafico siguiente

35

13. Ejecutamos el formulario y tendremos la siguiente pantalla

FIN

36

37

S-ar putea să vă placă și