CEBA DEL IPEC CENTRO DE EDUCACIÓN BÁSICA ALTERNATIVA PARA JÓVENES Y ADULTOS DEL INSTITUTO PERUANO DE LA CIENCIA Y LA CULTURA CEBA DEL IPEC R.D. Nº 002655-2010/DREC31-08-2010 Fuente: UNI - Centro de Extensión y Proyección Social, Elaborado por: Allancca Paucar, Juan José PRACTICA 4 VISUAL FOXPRO PROGRAMACIÓN VISUAL Objetivo: Preparar un formulario de Facturación. Nota: En la parte inferior se muestra el producto final para llegar a ello, Ud. Debe realizar ciertos pasos previos que se detallan después 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 Artículos y Clientes ingresar algunos registros. Articulo.dbf Artcod C 3 ArtDet C 40 ArtPre N 10 3 ArtStk N 4 Clientes.DBF ClieCod C 3 ClieNom C 40 ClieRuc C 8 GuiaEnc.DBF Nguia C 6 ClieCod C 3 IGV N 7 2 Total N 10 2 2. 3. Guiadet.DBF Temporal.DBF Nguia C 6 Nguia C 6 ArtCod C 3 ArtCod C 3 ArtDet C 40 ArtDet C 40 PreUni N 7 2 PreUni N 7 2 Cant N 5 Cant N 5 SubTotal N 10 2 SubTotal N 10 2 Nota: Indexar la tabla GuiaEnc, campo Nguia con etiqueta Nguia Creamos Nuevo formulario luego insertamos los objetos que se muestran en el grafico inferior. Para el Entorno de Datos asignamos las cinco tablas creadas anteriormente 4. En tiempo de Diseño: Modificamos las propiedades de los objetos según la tabla siguiente: Antes de continuar con mas cambios, vamos a Objeto: Propiedad Valor Objeto: Propiedad Valor insertar objetos Combo y Spinner en la columna1 y ControlSource Clientes.Clienom Alignment 2. Centro Name CmbCliente DisableBackColor A Criterio del Usuario columna2 del Grid respectivamente, para ello prepare Combo1 Row SourceType Text1 Campos DisableForeColor A Criterio del Usuario el control de Formularios luego: Row Source Clientes.Clienom Enabled FALSO Seleccione el objeto: Grid Style 2. Lista desplegable Name txtNguia A Criterio del Usuario Value 1 FontName Presione sobre ella : Botón Derecho Alignment 2. Centro Column Count 4 Seleccione : Modificar .F. Falso DisableBackColor A Criterio del Usuario Deleted mark Hacemos Click en : Combo Text2 DisableForeColor A Criterio del Usuario Grid1 grdDetalle Name Luego Click sobre ab debajo de: Header1 de la Enabled FALSO RecordSource Temporal Name TxtTotal BackColor A Criterio del Usuario primera columna del grid FontName Página 1 de 3 A Criterio del Usuario GridLineColor Azul Prof. Julio H PEÑA REYES CEBA DEL IPEC CENTRO DE EDUCACIÓN BÁSICA ALTERNATIVA PARA JÓVENES Y ADULTOS DEL INSTITUTO PERUANO DE LA CIENCIA Y LA CULTURA CEBA DEL IPEC R.D. Nº 002655-2010/DREC31-08-2010 Hacemos Click en : Spinner Luego Click sobre ab debajo de: Header1 de la Segunda columna del grid Salimos de edición haciendo Click fuera del Grid, Presionamos Botón 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 Command1 Caption Name Command2 Caption Name Command2 Caption Text1 Name Valor Objeto: Propiedad \<Nuevo cmdNuevo Command3 Caption \<Agregar Command4 Caption Name Name cmdAgregar \<Agregar txtNguia Command4 Caption Text2 Name Valor \<Guardar cmdGuardar \<Salir cmdSalir \<Salir txtSubTotal Mas propiedades Objeto: Propiedad ControlSource Column1 CurrentControl Name ControlSource Column2 CurrentControl Name Valor Temporal.Artdet Combo1 Column2 ColDescripcion Alignment Caption FontBold 2. Medio Centro Descripcion Header2 Alignment Caption FontBold 2. Medio Centro Cantidad Combo1 Column3 ColDescripcion Temporal.Artdet Spinner1 Header1 ControlSource Name RowSourceType RowSource Style Value Objeto: ControlSource Name ReadOnly ControlSource Name ReadOnly Valor Temporal.Artpre ColPreUni .T. Verdadero Temporal.SubTotal ColSubTotal .T. Verdadero Header3 Alignment Caption FontBold 2. Medio Centro Precio Header4 Alignment Caption FontBold 2. Medio Centro SubTotal ControlSource KeyboardHighValue KeyboardLowValue Name Style SpinnerHighValue SpinnerLowValue Value Temporal.Cant .T. Verdadero .T. Verdadero Temporal.ArtDet CmbDescripcion 6. Campos Articulo.ArtDet 2. Lista Desplegable Propiedad Spinner1 1 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 .T. Verdadero .T. Verdadero 99 1 SpnCantidad 2. Lista Desplegable Nota: Caption de Labels ver el Grafico Diseño en tiempo de Ejecución: Digitaremos los siguientes códigos, según como se indican a continuación 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) 99 1 1 Objeto: Cmbdescripcion 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 Página 2 de 3 Prof. Julio H PEÑA REYES CEBA DEL IPEC CENTRO DE EDUCACIÓN BÁSICA ALTERNATIVA PARA JÓVENES Y ADULTOS DEL INSTITUTO PERUANO DE LA CIENCIA Y LA CULTURA CEBA DEL IPEC R.D. Nº 002655-2010/DREC31-08-2010 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 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.art det,; 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 Evento: Click SELECT GUIAENC =tablerevert(.t.) SELECT TEMPORAL release thisform Guardar y Probar la Ejecución. Realizar los cambios respectivos, hasta presentar similar al presente modelo. Queda para el usuario hacer los últimos toques, para que resulte un buen diseño. Fin del Laboratorio Página 3 de 3 Prof. Julio H PEÑA REYES