clases de vfp

167
VF1 06 - 05 - 2002 PRIMERA CLASE LENGUAJES DE PROGRAMACION : Son todos aquellos orientados a la solución de un problema tomando diferentes vías para la solución de estos. - Sistema - Sistemas Operativos - Software de Sistemas - Aplicación ^ Lenguajes de Programación En Teoría es difícil el área de Programación. Comando : es una instrucción que ejecuta un proceso, puede tener incluido un formato para su escritura, ejemplo : Create Delete Zap Date() ? Create : Tablas, Bases de Datos, Programas ? : Para mostrar Variables Ventana de Comandos ___________________________________________ | | | | 1

Upload: tereso-duron

Post on 02-Jan-2016

154 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Clases de VFP

VF1 06 - 05 - 2002PRIMERA CLASE

LENGUAJES DE PROGRAMACION :Son todos aquellos

orientados a

la solución de un problema tomando diferentes vías para la solución de

estos.- Sistema - Sistemas Operativos - Software de Sistemas

- Aplicación ^

Lenguajes de Programación

En Teoría es difícil el área de Programación.

Comando : es una instrucción que ejecuta un proceso, puede tener

incluido un formato para su escritura, ejemplo :CreateDeleteZapDate()?

Create : Tablas, Bases de Datos, Programas

? : Para mostrar Variables

Ventana de Comandos___________________________________________| || || ________________________ |

enter | | | |enter | | COMANDO | |enter | --------------------------------- |enter | | ?Date() | |enter | | | |

| | | || | | || --------------------------------- || |

1

Page 2: Clases de VFP

----------------------------------------------------------

Mostrar la Fecha en el Escritorio

Programa : Es un conjunto de comandos que se ejecutan

de forma secuencial.

P1________________________| Create || Dir *.* | Create Enter| Browse | Dir *.*| Use || |---------------------------------

SubPrograma : Son programas que comparten intrucciones

y dependen de un programa principal.

Clase : Almacena en una biblioteca procedimientos

_________

Biblioteca

PANTALLA

2

Page 3: Clases de VFP

PROVEEDORES

Campos : Es un area en la cual se almacena cualquier tipo de

objeto.

Registro : Es un conjunto de campos o sea información.

Tabla : Es un archivo dividido en campos y registros.

Base de Datos : Es un conjunto de tablas que contienen

información relacionada.

3

Page 4: Clases de VFP

256 - Campos por tabla

Memoria

VF1 07 - 05 - 2002

VARIABLES

Son espacios reservados en memoria para almacenar información.

Una variable debe de definirsele por nombre dependiendo del tipo de dato

(Numeros, letras, o fechas) que cada una almacena.

Cada una de las variables pueden ser Publicas o Privadas.

El termino Publico indica que esta disponible en cualquier programa

mientras el privado solo en el lugar o programa en el cual se crean..

- Publicas- Privadas- Temporal : Solo encendida la computadora RAM- Inicializar

Definir un tipo de datos que almacena

- Salario Base : es una variable / almacena :numeros

4

Page 5: Clases de VFP

letrasfechas

- Salario Liquido

- Nombre

- Telefono

variables numericascaracter simbolosfecha numeros

NIT - 614-101270-002-1

NCIP - 11432110

EMAIL - NombrePersona@Servidor

1234 Juan C ----------------- ----------> Plicas -ó- Slash

10/10/1994

10 - 10 - 1994

raiz

A:\ RaizC:\D:\

Para inicializar variables realiza :

1º Nombre de variable = numero.2º Nombre de variable = espacios.3º Nombre de variable = fecha.

1º Sbase = 0 - Sbase = 150Nota1 = 0DISSS = 0

Asignando

2º Caracter

nombre = space(20)

5

Page 6: Clases de VFP

direccion = space(60)\___________/

numeros de digitos a ingresar

tener tres variables de 15 ===

estado civil 15 store space(15) to

genero(sexo) asigne 15 espacios to (para)nombre estado,nombre,apellido,generoapellido

soltero(a)estado = space(15) casado(a)genero = space(15) divorciado(a)nombre= space(15) viudo(a)apellido= space(15)

Total de FacturaT_Factura

Variables Tipo(Fecha)nombre = “Maria”

variable contenido

apel + a=space(25) b=space(25) c=space(25)

Tipo Fecha

3º F_Ingreso = Date()F_Ingreso=05/07/2002

F_reserva = { } F_Reserva=__/__/____F_salida = “ / / “ F_Salida =__/__/____

En un programa lineal tendra que definir coordenadas para mostrar

6

Page 7: Clases de VFP

mensajes y escribir información.

0 80 Columnas 79|___________________________________________________________|

0 | |

|___________________________________________________________|25 | |Filas |___________________________________________________________|

| | 24|___________________________________________________________|

||

1 Letra = 1 Columna

El Comando @ Say

Permite determinar en que coordenadas se muestra un mensaje o el

contenido de una variable .

Formato : @Fila, Columna say”Mensaje”Estandar

@Fila, Columna say Variable Contenido de Memoria

Fila 2, columna2

@ 2,2 say “a”

@ 4,4 say a

a = “Computer” d = a + b + cb = “Data”

7

Page 8: Clases de VFP

c = “Systems”@ 7,20 say d

d = a + “ ” + b + “ “ + c

Flash Player

VF1 08 - 05 - 2002

CREACION DE PROGRAMAS

Para crear programas ingresa la instruccion : Modify Command - Nombre

del Programa, mostrara una ventana en la que digita todas las instrucciones

que desea el programa realise.Command Comm ----> Modify Command

Progra1 ---- Enter

Para grabar CTRL + W

Graba todo programas, tablas , base de datos, formularios

Los archivos creados cuando usted crea un programa;

son 3 : Prg Lenguaje de usuarioBak BackupFxp Lenguaje de maquina

Modify command : para crear y editar programas ya creados.

8

Page 9: Clases de VFP

Para ejecutar un programa ingresa : Do - Nombre de

programa.

Do = Hacer

Do = Ejecute el programa que usted selecciona

Do Progra1

El proceso de creación de un archivo .Fxp surge de la

compilación (verificación de errores ) de el archivo .Prg

Compilar = Verificar Errores

Hola @ 5,5 say “Hola”

Errores de lógica = mas difícil de resolver

Errores de escritura = mas fácil de resolver______

Nombre | |---------______

Salario base | |---------______

Numero Horas | |---------______

Pago horas | |---------______

Total Horas | |---------______

Salario Liquido | |---------

Cálculos \|-> Datos- no se digitan

Formulas /

9

Page 10: Clases de VFP

1 - N17 - N2

__________8 - Resultado

FACTURA______________________________________________________| || Numero 1 || Cliente Juan ||Productos Descrip-Pro Cantidad Total || 1 Parlantes 75 75 || 1 CD-ROM 1000 1000 || |--------------------------------------------------------------------------

FXP dar solo copia

Ingreso de datos

Se utiliza el comando GETpor cada dato que desee el usuario escribir :

Formato : @ Fila, Columna GET Nombre Variable

@ 2,2 say “Nombre”@ 2,9 get nombreread

Para tener acceso a escribir los datos deben al final de un conjunto de

gets colocar el comando read. getreadgetreadgetread

VF1 09 - 05 - 2002

SET DEFA TO C:\PROGRA

MODIFY COMMAND EJE1

10

Page 11: Clases de VFP

CLEAR

*INICIALIZACION DE VARIABLESNUMERO1 = 0NUMERO2 = 0STORE 0 TO NUMERO1,NUMERO2@ 2,2 SAY “NUMERO UNO :”@ 4,2 SAY “NUMERO DOS :”@ 2,15 GET NUMERO1 PICTURE “9999”@ 4,15 GET NUMERO2 PICTURE “9999”READRESULTADO = NUMERO1+NUMERO2@ 6,2 SAY “LA SUMA ES : “@ 6,25 SAY RESULTADO

HACER UN PROGRAMA QUE ME PIDA 3 NOTAS Y ME DE EL PROMEDIO.

CLEARNOMBRE = SPACE(30)A=0B=0C=0D=0@ 2,4 SAY “DEME EL NOMBRE COMPLETO”@ 4,4 SAY “DEME LA PRIMERA NOTA”@ 6,4 SAY “DEME LA SEGUNDA NOTA”@ 8,4 SAY “DEME LA TERCERA NOTA”@ 2,28 GET NOMBRE PICTURE “@!”@ 4,25 GET A PICTURE “999”@ 6,25 GET B PICTURE “999”@ 8,25 GET C PICTURE “999” READD=(A+B+C)/3@ 10,04 SAY “EL PROMEDIO ES”@ 10,20 SAY D

Estructura IF - ENDIF Estudiarla

VF1 10-05-2002

Tarea

11

Page 12: Clases de VFP

1) De 3 numeros escrito saber cual es el menor, cual es el mayor, o si

son iguales.

2) encontrar el area de un triangulo

(b x h )/2

3) suma de dos numeros

4) el segundo este que estamos haciendo

VF1 13 - 05 - 2002

3 ) Numeros) mayor, menor, o igual

clearnum1=0 averiguar IF - ENDIFnum2=0num3=0

@ 3,7 say “Numero 1” get num1 picture “999”@ 5,7 say “Numero 2” get num2 picture “999”@ 7,7 say “Numero 3” get num3 picture “999”ReadIF num1 > Num2

@ 9,7 say “Numero uno es mayor” Else

IF num 1 = num2@ 9,7 say “Numeros iguales

Else@ 9,7 say “Numero dos es mayor”

EndifEndif

IF - Endif, se utilizan para mostrar resultados a partir de condiciones expuestas .

Cada condición tiene uno o dos resultados posibles:

12

Page 13: Clases de VFP

FORMATO : IF < Condición >Instrucciones si condición 1 es verdadera

ENDIF

IF < Condición 1 >Instrucciones si condición 1 es verdaderaELSEInstrucción si condición 1 es falsa

ENDIF

IF <Condición 1 >Instrucciones verdaderaELSE

IF < Condición 2>Instrucciones verdadera

ELSEInstrucciones falsa

ENDIFENDIF

Para tres condiciones num 1 = 10num 2 = 20

para mañana las tres condiciones

Otro programa

Clearbase = 0h=0A=0@ 2,10 say “Base” get base@ 4,10 say “Altura” get hReadA=(base*h)/2@ 6,10 SAY “Area del Triangulo”@ 6,30 say A picture “9999.99”

VF1 14-05-2002

Operadores Lógicos

AND --------- 2 Condiciones

OR --------- 1 de Dos

13

Page 14: Clases de VFP

Permiten evaluar varias condiciones en una sola para mostrar un resultado.

3 números

A - B | A-1 CondiciónA - C | A-1 Condición

| A-1 Condición

A B2 and 2 > 4

2

4 or 7 > 4

A B C31 2 3menor medio mayor

menor medio mayor 1 2 3

A 1 3 2 1 2 3 1 1 1B 2 1 1 3 3 2 1 1 1C 3 2 3 2 1 1 2 3 3

1 A 3 2 2 3 3 3 1 22 B 2 2 2 3 3 3 1 23 C 1 1 3 1 2 3 2 1

IF Num1 > Num2 And Num1 > Num3IF Num2 > Num3

@ 10,7 say “Numero 1 es Mayor”@ 11,7 say “Numero 2 Intermedio”@ 11,7 say “Numero 3 Menor”

ELSEIF Num 3 > Num 2 AND Num3 > Num1

IF Num2 > Num1@ 10,7 say “Numero 3 es Mayor”@ 11,7 say “Numero 1 Menor”@ 11,7 say “Numero 2 En Medio”

ENDIFENDIF

14

Page 15: Clases de VFP

ENDIF` ENDIF

Programa 1

ClearStore 0 TO num1,num2,num3@ 2,7 say “Numero Uno” get num1@ 4,7 say “Numero Dos” get num2@ 6,7 say “Numero Tres” get num3ReadIF Num1 > Num2 AND Num1 > Num3

IF Num2 > Num3

@ 8,7 say “Numero Uno Mayor”@ 9,7 say “Numero Dos del Medio”@ 10,7 say “Numero Tres Menor”

ENDIF

ELSE

IF Num 2 > Num1 AND Num2 > Num3

IF Num1 > Num3

@ 8,7 say “# 2 Mayor”@ 9,7 say “# 1 Del medio”@ 10,7 say “# 3 Menor”

ENDIF

ENDIF

ENDIF

Numero 1 = 39 3 Ya lo dio

Numero 2 = 70 8 Ya lo dio

Numero 3 = 45 7

30 Todavía no

10

15

Page 16: Clases de VFP

20

InicioProgramasAccesoriosAccésabilidadAmpliador

VF1 15 - 05 - 2002

DO CASE - ENDCASE

Evalúa las condiciones de forma independiente, se comprende mas fácil,

Podrá establecer N cantidad de condiciones y en cada una efectuar operaciones.

FORMATO

DO CASE

Case Instrucción 1

Instrucciones

Case Instrucción 2

Instrucciones

Case Instrucción 3

Instrucciones

ENDCASE

DO CASE

Case Instrucción 1

16

Page 17: Clases de VFP

Instrucciones

Case Instrucción 2

Instrucciones

Case Instrucción 3Instrucciones

OTHERWISEInstrucciones

ENDCASE

Puede ocupar x cantidad de condiciones

busca la condición hasta que se cumple

es mejor Do Caes que IF - ENDIF

OTHERWISE = En Otro Caso

Por cada DO CASE tiene que haber

un ENDCASE

DO CASE

CASE Condicion1

DO CASE

Condicion 2

ENDCASE

ENDCASE

Programa de Promedio

> 0 < 3 No Pase>3.01 <= 5 Reprobado>5.01 <=8 Muy Bueno>8.01 <=10Excelente

Programa de prueba DO CASE

17

Page 18: Clases de VFP

ClearNom=space(40)

VF2 PRIMERA CLASE 04 - JUNIO DE 2002

VISUAL II

REPORTES DEL SISTEMA

1.- CONSULTA DE CLIENTE

Codigo :_______________

Nombre :_______________

Dirección :_______________

Telefono :_______________ Email :_______________

Nº Registro :_______________

2.- REPORTE DE ARTICULOS

Fecha :_______________

Codigo Descripción Precio de Venta Existencia

---- ---- ---- ----

---- ---- ---- ----Total de Productos :________________

3.- REPORTE MENSUAL DE VENTAS POR EMPLEADO

Año :_____________

18

Page 19: Clases de VFP

Mes :_____________

Empleado Nombre Numero de Ventas Total Ventas

---- ---- ---- -----

---- ---- ---- -----

Total : ________________ ________________

4.- FACTURA COMERCIAL

Nº :___________ Fecha:_________ Nit :________

Tipo de Factura :_______________

Cliente :_______________

Empleado :_______________

Producto DescripciónCantidad Precio Total

---- ---- ---- ---- ----

---- ---- ---- ---- ----

SubTotal :_____________Iva :_____________Total :_____________

5.- CONSULTA DE EMPLEADOS POR

Fecha de Ingreso :_____________

Codigo Nombre Telefono EMail

---- ---- ---- ----

---- ---- ---- ----

Total de Empleados :_______________

19

Page 20: Clases de VFP

Llamar un listado

Nombre de tabla

? Información

campos \|->tabla relacionadas en base de datos---> DBC

registros /? campos

Reporte va a papel

Consulta va a pantalla o sea Formulario, la idea es obtener sus tablas con sus

campos con su longitud y con sus titulos.comenzar con consulta de clientes

clientes ==> consulta

codigonombretelefono nombre apellidos direccionNRegistro Jose Antonio Ramirezapellidos Julio Cesar Ramirezemail Ana Maria Ramirez

_____________ Datos Personales \| nombres | |==>Consulta de Clientes|Ape1 | Y Permanentes /| Ape2 |_____________

Consulta de Empleados Frecuancia en la cual se emiteel Reporte

codigo duinombre isssapellido estado civiltelefono sexodirección salario mensualafp edademail descuento afpF.-Ingresonit

20

Page 21: Clases de VFP

VF2 05 - Junio - 2002

Factura Comercial

Nº :_____________ Fecha:__________ Nit :_______________

Tipo Factura :_______________ RegNº:_______________

Cliente :______________

Empleado :______________

Producto DescripciónCantidad Precio Total

---- ---- ---- ---- ----

---- ---- ---- ---- ----

SubTotal :______________Iva :______________Total Gene :______________

REPORTE DE ARTICULOS

Fecha Sistema = DATE()

Codigo DescripciónPrecio de Venta Existencia

---- ---- ---- ----

---- ---- ---- ----

Total Productos :______________

ClientesEmpleados

Productos

codigodescripciónPrecio Unitario de CostosGanancia

21

Page 22: Clases de VFP

Precio de VentaExistencia

BROWSE________________________________________________________________________

Codigo DescripciónPrecio de Costo Fecha Total________________________________________________________________________

1 CDROM $ 100.00 09/06/02 12 HD $ 1,200.00 05/06/02 2

34

ES DIFERENTE SUMARQUE CONTAR. 1,000.00

1,200.00 250.00____________

Suma 2,450.00 y otra cosa escontar C/U.- = 3

Salir 2 archivos de la factura

1 Registro Alumnos Muchos dependen de 1 Registro codigo| Encabezado de Factura | nombre------------------------------------------ apellido

telefonoNumero de Factura direccion

Fecha encargadoNombre / Credito Fiscal edadTipo Factura -> -> | gradoNit \ Consu. Final F._IngresoRegistroCodigo Cliente \ Nº de NotasCodigo Empleado |No Se Repite N1

/ N2N3PromCodigo

| Detalle de Factura | Nº de Notas------------------------------------------ Grado

Fecha CursoNumero de Factura Profesor Materia

Codigo Producto

22

Page 23: Clases de VFP

Cantidad ProductoPrecio VentaTotal Producto

| Encabezado Factura |------------------------------------------

Sub-TotalIvaTotal General de la Factura

VF2 06 - 06 - 2002

CLIENTES EMPLEADOS PRODUCTOScodigo codigo codigonombre nombre descripcionapellido apellido precio costodireccion direccion gananciatelefono telefono precio ventanit DesAfp existenciaregistro DesISSSEmail salario

edadsexoestado civil

ENCABEZADO FACT. F.-Ingreso DETALLE FACTURAnumero numerofecha codigo productotipo factura cantidadnit precio ventaregistro total productocodigo clientecodigo empleadosubtotalivatotal general

REPORTE DE VENTAS MENSUAL POR EMPLEADO

Año :_________Mes :_________

Cod Empleado Nombre Nº de Ventas Total Ventas

---- ---- ---- -------- ---- ---- ----

23

Page 24: Clases de VFP

TOTAL : ____________ ____________

TABLAS ESTADISTICAS Exacto (No se Repiten ) 2 Anuales

Tabla Mensual de Ventas de Empleado___________________________________________________________________|codigo |Año |Mes |Total Ventas |Nº Ventas ||10 |2002 |05 | 100.00 | 1 ||10 |2002 |05 | 600.00 | 2 ||02 |2002 |05 | 300.00 | 1 ||04 |2002 |05 | 1,000.00 | 1

||04 |2002 |05 | 500.00 | 1 ||04 |2002 |06 | 100.00 | 1 |--------------------------------------------------------------------------------------------

A las tablas estadisticas nunca se les hace un Formulario

Sí existe = (Codigo , año , mes ) entonces acumula

Si cambia uno de los tres = (Código , año , mes ) entonces crea un nuevo

registro.

Se llenan los archivos a traves de formularios

BROWSE Para agregar nuevos registros = CTRL + Y

Mantenimiento ( Soporte , Mantener )

__________________________________________| || Formulario para Clientes || ____________ || codigo | | || ----------------- |

24

Page 25: Clases de VFP

| _____________ | Agregar Datos a la Tabla| nombre | | || ----------------- || _____________ || apellido | | || ----------------- || _________ ________ ___________ || |agregar||borrar ||salir | || ------------- ----------- --------------- |___________________________________________

tablas_________maestros__________estadisticas |________detalles___________movimientos

13 de Junio tarea de Folleto todas

27 de Junio unico examen

Tres tareas en disco para el Martes o Jueves 13 y en papel

VF2 7 - 06 -2002

REPORTE MENSUAL DE COMPRAS POR CLIENTE

Año :_________

Mes :_________

Cliente Nombre Nº de Compras Total Compras

---- ---- ---- ----

---- ---- ---- ----

Total de Compras : _____________ _______________

Total siete TablasCAMPOS DE CLIENTES

codigo Tipo - longitudnombre tipo de datos a ingresarapellido si hay o no calculosdirección letras, numeros, letras y numerostelefono - longitud cuantos datosnit se agreganregistro

25

Page 26: Clases de VFP

email caracternumerico - 19 decimaleslogico - T o F

caracter memo - G C Dnumero caracter ( binario ) - 256 caractereslogicos memo ( binario ) memo entero - solo

enterosmonetario - dinero

Codigos ASCII flotante - cientificoT_Clientes - DBFT_Clientes - FPTcampos memo 256 carcaterescapacidad del campo memoes para grandes capacidadesy depende del tamaño del disco

codigo cuantos registros puede guardar una tabla

999 suma codigo

CLIENTEScodigo c 4nombre c 25apellidos c 25direccion c 60telefono c 8nit c 17noregistro c 7email c 40

EMPLEADOScodigo n 3nombre c 25apellidos c 25direccion c 60telefono c 8desafp n 6 - 2fec.ingreso d 8nit c 17email c 40dui c 10est.civil c 10desisss n 6 - 2salario n 7 - 2sexo l 1

26

Page 27: Clases de VFP

edad n 2

PRODUCTOScodigo n 3descripcion c 30preciocosto n 8 - 2ganancia n 6 - 2precioventa n 9 - 2existencia n 3

FACTURAS ENCABEZADOnumefacturas n 6fecha d 8tipofactura l 1nit c 17registro c 10codcliente c 4codempleado n 3subtotal n 9 - 2iva n 8 - 2totalgeneral n 10 - 2

VF2 10 - 06 - 2002

TIPOS Y LONGITUDES

DETALLE DE FACTURAnumefacturas n 6codigoproducto n 3cantidad n 3precioventa n 9 - 2totalproducto n 10 - 2

ESTADISTICA POR MES DE CODIGO DE EMPLEADOaño c 4mes c 2codigoempleado n 3numventas n 3totalventas n 10 - 2

HABLAR DE INDICES

Se útilizan para hacer busqueda de datos, orden y relación entre archivos.

27

Page 28: Clases de VFP

Para crearlos debe tomar en cuenta los siguientes aspectos. :

1º.- : El campo debe de poseer datos pequeños.-

2º.- : El campo debe de relacionarse con otra tabla.-

3º.- : El campo debe de permitir realizar busqueda de información.-

Para poder relacionar 2 o mas archivos entre sí tiene que poseer un

campo en comun, que posea el mismo tipo y longitud.____________ ____________|T_Cliente | |T_Facturas |----------------- -----------------|Indice | |Indice | Aquí se nota que el

codi-|codigo | |codigo | go y el cod_clien son

dos----------------- ----------------- campos con nombres

dis-c-3 c-3 tintos en dos tablas

dife-rentes pero se refieren

al/ Tipo de Datos \ mismo campo, lo

impor-| | tante es el tipo de

datos y\ ___Longitud / la longitud y la relacion

si se puede ser hecha.-

Existen 4 Tipos de indices

1º.-) Principal: Solo existe en tablas que se encuentran dentro

de una base de datos.

Se definen un solo campo con este tipo el cual no permite

ingresar datos duplicados o en blanco.

Este tipo de indice es asignado al campo mas importante de la

28

Page 29: Clases de VFP

tabla.

T_CLIENTES______________________________________________________|codigo |nombre |apellido |Nº.-Registro |----------------------------------------------------------------------------

Asignado | 1 |Luis |Perez | |por el | 2 |Juan |Lopez | |usuario | 3 |Juan |Merino | |del sistema | 4 |Ana |Merino | |NO SE RE | 5 |Luis |Perez | |PITE.- | No dejar |Patricia |Zelaya | |

| en Blanco |Ricardo |Orellana | |---------------------------------------------------------------------------

Definir el dato mas importante - Mas importante

- No se repite datos por ese campo

- No se puede dejarlo en Blanco ( Vacío )

- Principal - Solo uno en la tabla

Tablas libres fuera de una base de datos

INDICE CANDIDATO

Funciona igual que un indice principal con la unica excepción que

puede existir mas de uno por tabla.-

Puede existir mas de uno por tabla.-

INDICES__________________| | \/ | --------------------------| Primario || Candidato || Unico ` |

29

Page 30: Clases de VFP

| Regular |--------------------------

INDICE NORMAL

Permite duplicar datos para un campo definido en una tabla y solo

servirá para relacionar archivos.-

NORMAL================

________________________|codigo |nombre |----------------------------------| 1 |Juan || 1 |Luis || 1 |Pedro || 2 |Maria || 3 |Jorge|| 4 |Evangelina || 4 |Martha |----------------------------------

INDICE UNICO

Repite datos permite relacionar archivos y buscar informacion excepto que

no muestra los datos repetidos.-

NORMAL UNICOT_CLIENTES T_CLIENTES

__________________________ _____________________________codigo | nombre codigo | nombre

30

Page 31: Clases de VFP

__________________________ _____________________________1 | Juan 1 | Juan1 | Luis 2 | Maria1 | Pedro 3 | Jorge2 | Maria 4 | Evangelina3 | Jorge |4 | Evangelina |4 | Martha |

Cuando definió un indice normal

muchos indices normales

Definir indices para tablas

CLIENTES CODIGO DE CLIENTE ---> Principal

A Apellidos --> Normal

Nit --> Normal

N-Registro --> Normal

º Dato importante

º Que sea corto

º Relación de Archivos

EMPLEADOScodigo -----> PrincipalApellidos -----> NormalNit -----> NormalNRegistro -----> NormalF.-Ingreso -----> Normal

VF2 11 - 06 - 2002

NO HUBO CLASE SOLO CENTRO DE COMPUTO

VF2 12 - 06 - 2002

PRODUCTOS

Codigo Principal

31

Page 32: Clases de VFP

DescripciónNormal

ENCABEZADO DE FACTURA

Numero de Factura PrincipalFecha NormalCodigo Cliente NormalCodigo Empleado Normal

DETALLE DE FACTURA

Numero de Factura NormalCodigo de Producto NormalCantidadPrecio de VentaTotal - P P V .-

____________________________________________________________________| Nº____________ Fecha____________ Nit_________________|| Tipo Fact___________________ Reg_______________ || Cliente____________________ || Empleado_________________ || ||__________________________________________________________________ || || Producto DescripcionCantidad Precio V. Total || ----- ----- ----- ----- ---- || ---- ----- ----- ----- ---- || “ “ “ “ “ || Subtotal__________________ || Iva_______________________ || Total General_____________ |___________________________________________________________________

---- ENCABEZADO -----| |

FACTURAS FECHA__________________________________________________________________| NUMERO | 10/02/2002 |--------------------------------------------------------------------------------------------| | || | |--------------------------------------------------------------------------------------------

32

Page 33: Clases de VFP

DETALLE ______________________________________________________| |NUMERO |PROD |CAN |PRECIO |TOTAL || |1 |1 |2 |1500 |3000 | |1 |2 |2 |17 |34 |

| | | | | |----------------------------------------------------------------------------

Para mañana paginas 7, 8, y 9 .-

INDICE PARA ESTADISTICA DE EMPLEADOS

AÑOMESCODIGO EMPLEADONº DE VENTASTOTAL VENTAS

__________________________________________________________________| AÑO | MES |EMPLEADO |N.VENTAS |T.VENTAS |---------------------------------------------------------------------------------------------| 2000 | 10 | 2 | 1 |200.00 || | | | | |

ESTADISTICA DE EMPLEADOS_ _

Indi |Año |ce por |Mes | Indice Principallos |Codigo | Empleadotres -- --

Nº de VentasTotal Ventas

TAREA Traer el Estadistica de Clientes o sea Reporte

Este Viernes averiguar sobre Validaciones de campos

Desarrollo de Aplicaciones a libro Visual Foxpro

Tarea

33

Page 34: Clases de VFP

Averiguar sobre los seis reportes

VF2 13 - 06 - 2002

ESTRUCTURA DE ARCHIVOS

________________________________________________________________________|Nombre de Archivo : Tabla de Clientes ||Tipo : Maestro ||Indice : Codigo de Cliente ||Nombre de la Tabla : T_Client.DBF ||Longitud : 187 ||_____________________________________________________________________ ||NO |Campo |Descrip. |Tipo |Longitud |Validado|Clase |---------------------------------------------------------------------------------------------------|1 |Cod_clie |cod client |C |4 |carga ||2 |nom_clie |nombrecl |C |25 |carga ||3 |ape_clie |apellido |C |25 |carga ||4 |dir_clie |direccion |C |60 |carga ||5 |tel_clie |telefono |C |8 | |_______________________________________________________________________

Archivo Maestro

Archivo de Detalle

Suma de todas las longitudes de los campos es longitudNombre de archivo longitud maxima 8 digitosEs Maestro porque raras veces se modifica o se agregaFacturas es archivo de Detalle.Nombre de campo máximo 10 dígitos

Total 10 Hojas = 3 de Reportes y las otras 7 tablas

|_____________________________________________________________________||NO |Campo |Descrip. |Tipo |Longitud |Validado|Clase |---------------------------------------------------------------------------------------------------|6 |nit_clie |nit del cle |C |17 | |carga

34

Page 35: Clases de VFP

||7 |reg_clie |registro |C |7 | |carga ||8 |ema_clie |e mail cli |C |40 | |carga |--------------------------------------------------------------------------------------------------

1 de estos X cada tabla

________________________________________________________________________| Campos |Indices |Tabla || |_________________|___________________________ || || |---------------------------------------------------------------------------------------------------

Primero : Proyectos, Base de Datos y Tablas

CLASE

Campo de Carga Escribe

campos actualizados obtiene a traves de calculos

Precio de Venta Precio de Costo + Ganancia

Archivo estadistico todos los campos son actualizados

Reportes primero

Formatos despues

Tabla estadistica Carga y Actualizado -- Detalle.TotalProducto

VF2 14 - 06 - 2002

VALIDACION DE DATOS

35

Page 36: Clases de VFP

RESTRINGE LOS DATOS

A ESCRIBIR EN LOS CAMPOS

FORMATO |___________| REGLA |___________|

MASCARA E.|___________| MENSAJE |____________|

TITULO |___________| VALOR PREDETER. |______|

Titulo es para poner el nombre en el Formulario de este campo

Numeros Nombre

Precio de Costo ====> Regla

Numerico 8 - 2

99999.99

Como hacer para no escribir valores negativos

0 Valor Predeterminado

Pco_Arti > 0 = En la regla de la Validacion del Campo

Pco_Articulo > = 10.00

Valor Predeterminado = 10.00

Campos Actualizados no se validan

Validacion de Datos (Escribir informacion especifica )

Mensaje es para : Se ponen valores mayores o iguales a 10

Formato : para saber como se escribe y com se ven los datos

Mayuscula

Letras - Numeros

ø 99,999.99Tiene que aparecer en el campo existencia un valor predeterminado o sea igual a 5

36

Page 37: Clases de VFP

Regla existencia de Articulo > = 0

Registros en blanco

Valida : ArticulosFacturas Encabezados

4 tablas Detalles de FacturasEmpleados

EmpleadosSexo carcater 9MasculinoFemenino

Formato poner Letra MMaculino Femenino

Acompañad@Solter@Casad@Viud@Divorciad@

Format = FormatoInput Mask = Mascara de Entrada

En estructura de Archivo

+ Validaciones

Pco_Articulo > = 0.00 o XSexo = Femenino.Masculino

Tarea es Reportes como los diseñamos

Estructura de los Archivos.-

Y la Relacion de Archivos para el 27 de Junio

37

Page 38: Clases de VFP

VF2 17 - 06 - 2002

ESTRUCTURA DE CARPETAS

Orden=====

Proyecto 2 ArchivosBase de Datos 2 ArchivosTabla 2 ArchivosFormularios 2 Archivos

____________| |-----------------

| ________|-------------| | Formularios (SCX)| -----------| ________|-------------| | Clases (VCX)| ----------| _______|-------------| | Proyecto (PJX)| ----------| ________|-------------| | Reportes (FRX)| ----------| ________|-------------| | Menus (MNX)| ----------| ________|-------------| | Programas(PRG)| -----------| ________|-------------| | Datos(DBC,DBF)| -----------| ________|-------------| | Imagenes(BMP,JPS,ICO)| -----------|

Este sistema es para 5 Mese , para 3-1/2 -ó- A:\

Relacion de Tablas

Marchoso.OCX ----> Para dibujos en movimiento para Visual

38

Page 39: Clases de VFP

SCTVCTPJTFRTMNTPRG

Relacion de Tablas

º Uno a Unoº Uno a Muchos ____________ ____________|T_Clientes | |T_Paises |----------------- ------------------|cod_cli | |cod_pais ||_nom | |nom_pais ||ape_cli | ------------------|cod_pais | |Indices |----------------- |cod_pais |--> candidato|Indices | -----------------|cod_cli ||cod_pais |---> candidato-----------------

Campo comun igual longitud, igual tipo

Tabla X Tabla Y RelacionPrincipal Principal Uno a UnoPrincipal Candidato Uno a UnoCandidato Candidato Uno a UnoCandidato Principal Uno a Uno

Clientes Pais

1 Juan 1 1 El Salvador2 Maria 2 2 Guatemala3 Carlos 3 3 Honduras

Tabla X Tabla Y RelacionPrincipal Normal Uno a MuchosPrincipal Unico Uno a MuchosCandidato Normal Uno a MuchosCandidato Unico Uno a Muchos

39

Page 40: Clases de VFP

La relacion se hace de principal a normal

------|---------|--------

Uno a Uno

------|--------<-

Uno a Muchos

Figuras

Maestros Detalles

Que tabla necesita de otra

Empleados Facturas Clientes

Cod_Emp Cod_clie

La mayoria de archivos de detalles necesitan del maestro para agrgar datos

querer 7 tablas relacionadas

a partir del miercoles trabajar en disco 19 de Junio

VF2 19 - 06 - 2002

Que es un Proyecto.-

Es el nucleo de todo el sistema que permite administrar todos los archivos

relacionados.

40

Page 41: Clases de VFP

Esta dividido en las siguientes partes : Datos, Documentos, Clases, codigo,

otros.

- Proyecto Use alumnosBrowse

Documentos Modify StructureFormularios - F Notas - A:\Create Form nombreReportes Do Form nombreEtiquetas Modify Form nombre

Archivo Nuevo

__________________| || O Proyecto || O Base de Datos || O Tabla | Nuevo Lugar| O Consulta | Archivo Nombre| O Conexion || O Vista || O Vista Previa || O Formulario || O Informe || O Etiqueta || O Programa || O Clase || O Archivo de t. || O Menu |--------------------------

Datos: que es lo que Ud., puede crear :

Base de DatosTablas Libres

41

Page 42: Clases de VFP

Consultas (Sql, Qpr )

Tablas

DatabaseTablas LibresConsultas

8 Digitos para Archivos

T_Clientes.DBFR_Clientes.FRXF_Clientes.SCXB_Clientes.DBC

TAREA

Base de DatosTablas Solo ProyectoIndices Y Datos

YRelaciones

DOCUMENTOS_____________________________

Formularios (Pantallas)ReportesEtiquetas

VF2 20 - 06 - 2002

C:\ | | Codigo| | Clases| | imagenes Control C ----> Para Copiar| | proyecto| | formularios Control V ----> Para Pegar| | reportes| | datos| | menus| | programas

La Viñeta Clases permite crear bibliotecas de objetos que se utilizaran mas

de una vez. La viñeta codigo contiene programas que permiten abilitar

42

Page 43: Clases de VFP

otros

archivos y la ultima la viñeta otros permite crear menus,archivos de texto y

referencia a imagenes.

Para Crear la Base de Datos

Viñeta Datos

Selecciona Base de Datos

Nuevo

Nueva Base de Datos

Subir un nivel y selecciona la carpeta de Datos

Crear Tablas en la Base de Datos

º Click derecho en la Base de Datos

º Nueva Tabla

º Nueva Tabla

º Ubicacion

º Nombre

Click derecho en un area vacia de Diseñado de Base de Datos y aparece

donde y como poner el nombre y lo demas

Crea campos de codigo de clientes, es importante crear el indice en el

campo que esta en la expresion.

Desarroloo de Aplicaciones

Se van a validar :

ArticulosFacturas

43

Page 44: Clases de VFP

Detalles Fact. Encabezados de FacturasEmpleados

VF2 24 - 06 -2002

HOY HUBO CENTRO DE COMPUTO

VF2 26 - 06 - 2002

PROXIMO MES HACER FORMULARIOS

Averiguar para el proximo mes lo que son Eventos, Metodos, que ocupan los

Objetos.

VF3 04 - 07 - 2002

PRIMERA CLASE

1º Laboratorio Teorico

2º Tarea

3 Diskettes de Copia

Formularios

Son diseños de pantallas en los cuales se crean mantenimientos o consultas

de cualquier archivo.

Todo formulario posee entorno de datos del cual se agrgan o consulta

cualquier informacion.

44

Page 45: Clases de VFP

En un Formulario puede colocar cualquier tipo de objetos, desde texto hasta

videos.

---------> Documentos Formulario

NuevoNuevo Archivo

Hasta que termine el disño del formulario hasta entonces lo graba

Opcion Ver Controles y Propiedades

Todos los objetos incertados en un Formulario poseen metodos, eventos, y

propiedades.

Algunas con identicas para todos y en algunos casos varian dependiendo

del tipo de objeto.

Metodo : es un conjunto de instrucciones que se ejecutan cuando el usuario

lo desea.

Evento : es un procedimiento que se activa siempre al utilizar mi objeto.

Propiedad : son caracteristicas predefinidas por objeto.Metodo ----> Evento

| Salir | <------- Instruccion

THISFORM.RELEASE()

Evento Click Procedimiento

METODO INSTRUCCIONES O PROCEDIMIENTOS

45

Page 46: Clases de VFP

-------------------------

Formularios

Nuevo Metodo PropiedadesCarcteristica

Nueva Propiedad

Autosize --- T , F

Todos los objetos poseen un nombre y una clase a partir del cual son

diseñados. No puede existir varios objetos con un mismo nombre.

Class --- Clase, ó Familia a la que pertenece el objeto Familia.

Name ---- Nombre del objeto

Label ---- Clase o familia

Label1 ------ Name

---- Caption

Mensaje de Muestra ( Pantalla ) -------------->

THISFORM.Label1.Caption = “Juanito”

No puede existir varios objetos con el mismo nombre.-

Thisform.Label1.Caption = “Juanito”

Thisform.Label1.Caption = “Juanita”

Error de Logica

Eventos comunes en Objetos

INIT : Inicializar Valores

Se utiliza para inicalizar variables o activar procedimientos una

sola vez en objetos o formularios.

46

Page 47: Clases de VFP

| Text1 |

1º INIT Agrega o Modifica

2º Formulario

IVA = 0 Definir en el Formulario = Init

Ejecutar Formulario ! ó CTRL + E

Valor del Iva

Original

0.13

THIS.Value = 0.13 en el Init de la caja de texto

LOAD : Funciona a la vez cuando ejecute un formulario y es util tambien

para inicializar valores, el Load funciona casi como el Init en Jerarquia :

1º : Load2º : Init

Que Tabla Alumnonecesita 2ºde otra Modulos

Ocurre cuando hace click en un objeto, se activa con una letra caliente

se presiona barra espaciadora._____________| ADICION | Botones _____----------------- | | Casillas de Verificacion

-------Letra caliente Click | | soltero

-------Enter | | casado

-------

47

Page 48: Clases de VFP

Estado Civil___________________

Click |O Solter@ ||O Casad@ ||O Divorciado ||O Viud@ |--------------------------

Evento Error

Se activa cuando ocurre un error en un objeto utilizado.____________| Label1 | Thisform.Label1.Caption =“Juanito”-----------------

Evento Gotfocus

Se activa cuando un objeto es el que se encuentra activo._____________

Nombre | Text1 | Di |FontBold .T. .F.----------------- se |Programar en Gotfocus

ño |Click doble |

Click |FontItalicTab |FontUnderline

_______________ ____________Objeto |Text1| |Procedimiento |GotFocus |

--------------------- -----------------

This.FontBold = .T.

This.BackColor = R G B ( 0,255 0,255 0,255 )

Propiedades

BackColor ClickEvento LOSTFOCUS

Ocurre cuando un objeto pierde el enfoque___________ _______________

Objeto |Text1 || Procedimiento |LostFocus | |---------------- ---------------------

Propiedad Enabled -------|-------> .T. Habilitado --------> .F. Deshabilitado

48

Page 49: Clases de VFP

This.Enabled = .F.

La mayoria de campos lo tienen GotFocus y LostFocus

Evento MouseDown

Ocurre cuando se hace click sobre un boton o en el boton

MessageBox(“Presiono Click“)

MouseMove

Sucede cuando se mueve el mouse sobre un objeto______________________________|---Mouse Move || ________ || | |<---Boton |MessageBox;| ----------- |”Presioneme”| | -------------------------------------------

Objeto Boton1 Procedimiento Mouse Move

Evento Valid

Se utiliza para restringir el acceso de cualquier informacion en un

campo que se realiza a nivel de formularios._____________ _________

Objeto |Text1 | | Procedimiento |Valid| |

1º Valid Antes del LostFocus

2º LostFocus

Valid (Validacion )

Todos los eventos poseen una jerarquia

Empty esta vacio

IF Empty(This.Value)MessageBox(“Nombre va 0”)Return 0

Endif

49

Page 50: Clases de VFP

Formato “@!”

Mascara de Entrada

FormatInputMask

VF3 8 - 07 - 2002

Propiedades mas Comunes

Caption : Establece el texto a mostrar en un Objeto

BackColor : Establece color de fondo a objetos y formularios.

BorderStyle : Define el estilo de borde alrededor del formulario

: Los valores son : 0 - Sin Borde

1 - Borde Sencillo

2 - Borde doble linea

3 - Borde Predeterminado

Icono : Determina el icono que se mostrara en la barra

: de titulo del formulario.

Enabled : Determina si o no un objeto se encuentra activo.-

Closable : Muestra invisible los botones de control en un

: Formulario.

Enabled del formulario a verdadero

ShowTips : Determina si se muestra ayuda para los objetos

50

Page 51: Clases de VFP

: en el formulario cuando el puntero del mouse se

: posiciona en estos. Esta propiedad es

: acompañada de un ToolTipText

Al Formulario

ShowTips ------ ToolTipText ------ > Por el Objeto

Debe estar Mensaje por Objeto

a .T.

Picture : BackColor

: Establece una imagen .Bmp -ó- Jpg -ó- Guif

: para cualquier Objeto.

Que diferencia hay entre Background \ Usados|

BgColor / Internet

Visible : .T. -ó- .F.

: Determina si un objeto esta o no visible en un

: formulario o el mismo.______ ____________|Usar | |Ver o No |--------- ----------------- Enabled Visible _______ _____________| | | |.T. .F. .T. .F.

AutoCenter : Determina si el formulario es centrado de forma

: automatica.- Si=.T.No=.F.

51

Page 52: Clases de VFP

BorderStyle de 0 a 2 - Para que no se desajuste

ForeColor : Determina el color utilizado para un Objeto o sea

: el color del Texto.

FontSize : Determina el tamaño del texto.-

FontName : Determina el tipo de Fuente -ó- sea la clase de

: letra.

ControlSource : Determina e indica la relacion que existe

: de un objeto con un campo

: predeterminado.

Diseño de Objetos :

ComboBox(Cuadro de Combinados)

___________________| | |--------------------------|ab | || | || | |--------------------------

Propiedades : Style PictureControlSource RowSourceTypeRowSource BackColorForeColor FontBoldFontSize FontName

Estilo : Si el Combo es cuadro Combinado -ó- Lista : Desplegable

Picture : Imagen a lo desplegable, establecer esta propiedad.

ControlSource : Relacionar un campo con una tabla.

52

Page 53: Clases de VFP

VF3 09 - 07 - 2002

11 Botones de Comando para el nuevo formulario.

Este formulario que henos hecho en este dia en la clase de computo se llama

: Frm_Alumnos.SCX

Las propiedades de el formulario son :

AutoCenter : .T.BorderStyle : 0 - NoborderCaption : Formulario de AlumnosEnabled : .T.Icon : (None)Movable : .F.Name : Form1ShowTips : .T. TrueVisible : .T. TrueWindowStyle : -0-NormalWindowType : 0-Modeless

Caja de Texto : Text1BaseClass : TextBoxClass : TextBoxName : Text1BackStyle : 1 - Opaque ( Default )BackColor : 0, 255, 0BorderStyle : 0 - NoneForeColor : 0, 0, 255SpecialEffect : 0 - 3D

Object : Command1 Procedure :Click

ThisForm.CommandGroup1.Command1.Caption=“Presioneme”

AutoSize : False .F. (Default)Caption : “\<Salir”ClickEvent : User ProcedureName : Command1

Object :Command2 Procedure :Click

Caption : “\<Salir”

53

Page 54: Clases de VFP

Name : Command2Picture : C:\Archivos de Programa\Microsoft Visual

Studio\VFP98\Wizards\Graphics\Paste.Bmp

Object :Command3 Procedure Click

Caption : NoneName : Command3Picture : C:\Archivos de Programa\Microsoft Visual

Studio\VFP98\Wizards\Graphics\Save.Bmp

ToolTipText : Boton con Imagen

Object :CommandGroup1 Procedure :Click

BorderColor : 0, 0, 0BorderStyle : 1 - Fixed Single (Default)ButtonCount : 2Name : CommandGroup1Value : 1

Object :Command1 Procedure Click

Caption : \<AgregarName : Command1

Object Command2 Procedure :Click

Caption : \<PresionemeName : Command2

VF3 `10 - 07 - 2002

HUBO CENTRO DE COMPUTO

VF3 11 - 07 - 2002FORMULARIO DE CLIENTES

_______________________________________________________________________| || Codigo | | |

54

Page 55: Clases de VFP

| Nombre | | Apellido | | || Direccion | | || Telefono | | NIT | | || EMail | | REG | | || Botones 1

|| ____ ____ ____ ____ ____ ____ ____ ____ ____

|| | | | | | | | | | | | | | | | | | |

|| ----- ----- ----- ----- ----- ----- ----- ----- ------

|| ____ _____ || botones 2 | | | |

|| ------ ------- || |---------------------------------------------------------------------------------------------

Botones : 1 y 2

---- Establecer Imagenes segun nombre de boton

---- Quitar , Caption

---- Establecer Nombres

---- Botones1 Botones2-- Adicion -- Guardar-- Consulta -- Cancelar-- Modificar-- Eliminar-- Primero Colocar a todos los-- Siguiente Botones el ToolTipText-- Anterior-- Ultimo Diseño es opcional-- Salir del Formulario mismo tamaño

Picture .- para poner Imagen

Entorno de datos

55

Page 56: Clases de VFP

Agregar 2 veces la tabla de Clientes____________ ____________|T_Clientes | |T_Clientes1|----------------- ------------------| | | |

Adici | | | | Consultar on | | | | Informacion

| | | |----------------- -----------------

Ver Entorno de Datos

Click Derecho

Entorno de Datos

Opcion Formato

BUFFER DE DATOS

Se define como una tabla temporal en la que se agrega información y

se crea a partir de una tabla real.

VF3 12 - 07 - 2002

Visual dispone de 2 tipos de almacenamiento en buffers : Registro y

Tabla.

El buffer permanece activo hasta que se desactiva o hasta que cierre la

tabla.

Nombre TelefonoBuffer deRegistro

Nombre Telefono

Nombre Telefono Buffer de

TablaNombre Telefono

56

Page 57: Clases de VFP

Para modificar o escribir un solo registro, utiliza buffer de registros.

Para modificar o agregar varios registros a la vez utiliza buffer de

Tablas.

Buffer hace mas seguro la actualizacion de datos. Hay que trabajar con

buffer por obligacion.

Existen formas de bloqueo cuando una tabla posee buffer y esta activa.

El primero 1º Optimista.

El segundo 2º Pesimista.

1º Optimista bloquea los datos solo en el momento en que

actualiza.

2º Pesimista bloque los datos siempre que la tabla este en Uso.

1º Sin Buffer2º Pesimista Buffer de Registro3º Optimista Buffer de Registro4º Pesimista Buffer de Tabla5º Optimista Buffer de Tabla

BufferModeOverride

Bloqueo Browse____________________________________|codigo |nombre | || | | || | | |---------------------------------------------------

En la tabla se bloquea todos los regsitros.-

En el registro se bloque solo uno a la vez.-

57

Page 58: Clases de VFP

Para poder actualizar se utiliza el comando TABLEUPDATE()

Para cancelar un proceso en un buffer se utiliza el comandoTABLEREVERT()

Procedimientos para activar y desactivar objetos

______________________________________________________|codigo________________ |

|nombre_______________ apellido________________ ||direccion_____________ telefono________________ ||email________________ ||nit___________________ reg____________________ || |----------------------------------------------------------------------------

Ejecute Formulario Controles datosboton1 boton2

desactivados activ desacti

Adiciones activados desact activados

Guardar o

Cancelar desactivadosq activado desacti.-

VF3 15 - 07 - 2002

Creacion de Metodo

Formulario Nuevo Metodo

_____________________________________________________|Nuevo Metodo |------------------------------------------------------------------------| ____________ ____________ |

1º |Nombre |Controles | |Agregar | || ----------------- ----------------- ||Descripcion |Cerrar | || _____________ ------------------ || | | || | | || | | |

58

Page 59: Clases de VFP

| | | |-------------------------------------------------------------------------

Se va a escribi en Controles : Procedimientovariable

LParameters estado(.F..V.)txtcodigo.enabled=estado

variable_______

Parametro = recibir un valor txtcodigo.enabled=estado

txtcodigo.enabled= .T.-----------

estado = .T. constante

THISFORM.txtcodigo.enabled=estado

Todos los Txt y despues hasta terminar “ “ “ “ “THISFORM.Hasta.email “ =estado

THISFORM.guardar.enabled=estadoTHISFORM.cancelar.enabled=estadoTHISFORM.adicion.enabled=!estadoTHISFORM.consulta.enabled=!estadoTHISFORM.edicion.enabled=!estadoTHISFORM.eliminar.enabled=!estadoTHISFORM.prinero.enabled=!estadoTHISFORM.siguiente.enabled=!estadoTHISFORM.anterior.enabled=!estadoTHISFORM.ultimo.enabled=!estadoTHISFORM.salir.enabled=!estado

FORM1 INIT

THISFORM.CONTROLES(.F.)

VF3 16 - 07 2002

ADICION.CLICKTHISFORM.Controles(.T.)

59

Page 60: Clases de VFP

SELECT T_CLIENTESAPPEND BLANKTHISFORM.REFRESH()THISFORM.TXTCODCLI.SETFOCUS()

* TXTCOD_CLI.VALIDDO CASE

CASE SEEK(THIS.VALUE,”T_CLIENTES1”) MESSAGEBOX(“CODIGO YA EXISTE”,0,”ERROR”)RETURN 0

CASE EMPTY(THIS.VALUE)TABLEREVERT()SKIP -1THISFORM.CONTROLES(.F.)

ENDCASE

Para txtCod_cli o sea codigoSELECT ON ENTRY = PROPEIDAD A .T.

GUARDAR.CLICKTHISFORM.CONTROLES(.F.)TABLEUPDATE()THISFORM.REFRESH()

CANCELAR.CLICKTHISFORM.CONTROLES(.F.)TABLEREVERT()SKIP -1THISFORM.REFRESH()

________________________________________________________

Para mañana debe funcionar :

Adicion Guardar y Cancelar

SALIR.CLICKTHISFORM.RELEASE()

Supuesto maña para modificar datos

CUADRO COMBINADO DE BARRA DE CONTROLES

Propiedades de Cuadro Combinado _________________| | |

60

Page 61: Clases de VFP

--------------------------|ab | || | |--------------------------

STYLE ---- LISTA DESPLEGABLE

PICTURE.-

VISIBLE .F.

RowsourceType = 6 CamposRowSource = Tabla de Clientes.Codigo de Cliente

VF3 17 - 07 - 2002HOY HUBO CENTRO DE COMPUTO

VF3 18 - 07 - 2002

Funcion : MessageBox

Formato : MessageBox(“Texto de Mensaje”,Tipo de Cuadro,;“texto de Barra”)

Tipo de Cuadro

Valor Botones

0 Aceptar1 Aceptar y Cancelar2 Anular, Reintentra y Ignorar3 Si, No , Cancelar4 Si, No5 Reintentra, Cancelar

Valor Icono

16 Punto32 Signo de Interrogacion48 Signo de Exclamacion64 Signo de Informacion

Valor Boton Predeterminado

0 Primer Boton

61

Page 62: Clases de VFP

256 Segundo Boton512 Tercer Boton

Valores devueltos por MessageBox por cada Boton

Valor Devuelto Boton

1 Aceptar2 Cancelar3 Anular4 Reintentar5 Ignorar6 Si7 No

__________________________________________|Error de Adicion |-----------------------------------------------------------| || Codigo Vacio || ___________ __________ || |Reintentar| |Cancelar| || --------------- -------------- || |-----------------------------------------------------------

MESSAGEBOX(“CODIGO VACIO”,5+64+256,”ERROR;DE ADICION”)

__________________________________________|MODIFICAR |-----------------------------------------------------------| || MODIFICARA ESTE DATO || ___________ __________ || |SI | |NO | || --------------- -------------- || |-----------------------------------------------------------

MESSAGEBOX(“MODIFICARA ESTE ;DATO”,4+32+0,”MODIFICAR”)

Seguimos con el procedimiento de Modificar

El combo1 se va a activar desde el Modificar boton

62

Page 63: Clases de VFP

* MODIFICAR.CLICKY se pone Visible = .F. desde el principio

THISFORM.COMBO1.VISIBLE=.T.THISFORM.COMBO1.SETFOCUS()

* COMBO1.VALID

THISFORM.REFRESH()

__________________________________________|MODIFICAR |-----------------------------------------------------------| || MODIFICARA REGISTRO || ___________ __________ || |SI | |NO | || --------------- -------------- || |-----------------------------------------------------------

COMBO1.LOSTFOCUSmensaje=MESSAGEBOX(“MODIFICARA REGISTRO”,4+32+0,”MODIFICAR”)IF mensaje=6

THISFORM.CONTROLES(.T.)THISFORM.COMBO1.VISBLE=.F.THISFORM.TXTCOD_CLI.ENABLED=.F.THISFORM.REFRESH()THISFORM.TXTNOM_CLI.SETFOCUS()

ELSETHISFORM.COMBO1.VISBLE=.F.

ENDIF

VF3 19 - 07 - 2002

No se pone buffer en Clientes1

Alt 167 = Nº ASCII - alt equivale a º

Formulario de Clientes

Formato espacio Horizontal hacer igual

Sistema de Facturas

63

Page 64: Clases de VFP

a la tabla de clientes1 en el entorno de datos colocar la propiedad

order y seleccionar el codigo de cliente

buscar cuadro combinado

lista desplegable = style

sube y selecciona tabla de clientes y codigo de clientes

Visible = Falso

Combo1.ValidTHISFORM.REFRESH()

VF3 22 - 07 - 2002

ELIMINAR.CLICKIF DELETE()

RECALLTHIS.CAPTION=“ELIMINAR”

ELSEDELETETHIS.CAPTION=“RECUPERAR”

ENDIF

FORM1.REFRESH()IF DELETE()

THISFORM.ELIMINAR.CAPTION=“RECUPERAR”* ELSE

THISFORM.ELIMINAR.CAPTION=“ELIMINAR”ENDIF

* THIS.Picture=“a:\20002\imagenes\eliminar.Bmp”

Eliminacion logica No Fisica

X ELIMINAR RECUPERAR

64

Page 65: Clases de VFP

FORMULARIO DE CONSULTA

Nuevo Formulario__________________________________________| __________________ || Dato |Text1 | || -------------------------- || || Codigo Nombre || _________________________ || |List1 | || | | || | | || | | || ---------------------------------- || |-----------------------------------------------------------

Va a consultar de 4 Tablas 1 Consulta Solamente

FORM.INITLPARAMETERS CONSULTAPUBLIC DATODATO=VCONSULTA

TEXT1.LOSTFOCUSDO CASE

CASE DATO = 1SELECT CODIGO,NOMBRE,APELLIDO FROM;T_CLIENTES WHERE T_CLIENTES.APELLIDO =

ALL;TRIM(THIS.VALUE) INTO CURSOR DATOS

CASE DATO = 2IDEM

CASE DATO = 3IDEM

CASE DATO =4IDEM PARA OTRA TABLA

ENDCASE

Visual 4 , 3 , 5 , 6 y el 31 ultimo dia

vacaciones Viernes 2 Agosto primer dia de Clase

65

Page 66: Clases de VFP

__________________________________________| __________________ || Dato |Mendez | || -------------------------- || || Codigo Nombre || _________________________ || |4 Carlos Mendez | || |5 Jorge Mendez | || | | || | | || ---------------------------------- || |-----------------------------------------------------------

CONSULTA.CLICKDO FORM “ A:\20002\FORMULARIOS\F_CON” WITH 1

Saber que formulario llama al formulario de consulta.

Servira para consulta de : ClientesProductosEmpleadosFacturas

Para desplegar los Datos en List1

Despues del ENDCASE del Text1.LostFocus()THISFORM.LIST1.COLUMNCOUNT=3THISFORM.LIST1.COLUMNWIDTHS=“50,150,150”THISFORM.LIST1.COLUMNLINES=.T.THISFORM.LIST1.ROWSOURCETYPE=2 *(ALIAS)THISFORM.LIST1.ROWSOURCE=“DATOS”THISFORM.REFRESH()

* EL 2 ES UN ALIAS

66

Page 67: Clases de VFP

LIST1.DBLCLICKDO CASE

CASE DATO = 1VCONSULTA = DATOS.CODIGO DE CLIENTES

` Temporal Campo de

la tablaespecifica

CASE DATO = 2VCONSULTA = DATOS.IDEM

CASE DATO = 3VCONSULTA = DATOS.IDEM

CASE DATO = 4VCONSULTA = DATOS.IDEM

ENDCASETHISFORM.RELEASE()

Clientes.InitPUBLIC VCONSULTAVCONSULTA = “”

Clientes.ActivateSELECT T_CLIENTESSEEK VCONSULTATHISFORM.REFRESH()

FORM1.ACTIVATEPUBLIC VCONSULTAVCONSULTA=“”SELECT T_CLIENTESSEEK VCONSULTA

VF3 23 - 07 - 2002

Clases son Plantillas con cualquier estilo de Objetos o Formularios que se

utilizan en un numero indeterminado de vesces.

En una clase se diseñan aquellos objetos que son comunes en todos los

formularios.

No se establecen entorno de datos, todo es diseño.

67

Page 68: Clases de VFP

Al crear una clase todos los procedimientos son heredados de forma

automatica.

Nombre de Clase : Formularios

Basado en : Form

Almacenarse en : `Mis Clases1

____________________________________________________________________| || _______________________________________________________________ || | |

|| | | || | | || |Container1 | || | | || -------------------------------------------------------------------------------------- || || _____________________________________________ ____________ || | _____ _____ _____ _____ _____ _____ _____ | | ___ ___ | || | | | | | | | | | | | | | | | | | | | | | | || | ------- ------- ------ ------ ------ ------- ----- | | ---- ----- | || --------------------------------------------------------------- ---------------- || |-------------------------------------------------------------------------------------------------

Grupo de Botones Grupo de

Botones

A todos los Objetos les cambia Hay que crear el metodonombre al grupo no al Boton sin instrucciones

68

Page 69: Clases de VFP

VF4 24 - 07 - 2002

DISEÑO DE CLASE

____________________________________________________________________| || _______________________________________________________________ || | |

|| | | || | | || |Container1 | || | | || -------------------------------------------------------------------------------------- || || _____________________________________________ ____________ || | _____ _____ _____ _____ _____ _____ _____ | | ___ ___ | || | | | | | | | | | | | | | | | | || | | | | || | ------- ------- ------ ------ ------ ------- ----- | | ---- ----- | || --------------------------------------------------------------- ---------------- || |-------------------------------------------------------------------------------------------------

Grupo de Botones(1) Grupo de Botones ( 2 )

Creacion de Metodo

Clase Nuevo Metodo

Programacion Nuevo Metodo

Objeto Form1 Procedimiento Controles

LParameters estadoTHISFORM.CONTAINER1.SETALL(“enabled”,estado,”textbox”)THISFORM.CONTAINER1.SETALL(“enabled”,estado,”editbox”)

69

Page 70: Clases de VFP

THISFORM.grupo2..SETALL(“enabled”,estado,”commandbutton”)THISFORM.grupo1..SETALL(“enabled”,!estado,”commandbutton”)

Hasta Aquí el Metodo

Creacion de Nueva Tabla

Tabla ( Correlativo )

Nueva Tabla

Nombre Tipo Longitud Dec

Cod_empl Nume 3 NO

Cod_prod Nume 3 Lleva

Num_fact Nume 6 Indices

* Agregar solo 1 Registro con el Valor de 1.-

Tabla T_empleados Modificar

Nombre Tipo Longitud Dec

Cod_emp Nume 3

Valor Predeterminado | |

------------------------------------------

Establecer en Valor Predeterminado:

T_correlativo.Codigo Empleado

Tabla Campo

70

Page 71: Clases de VFP

Para Formulario de Empleados y Productos_____________| | 2 Click al Formulario-----------------

Class Label

THISFORM.CONTROLES(.F.)

Nuevo Formulario

Codigo numerico 4

Generar * Creacionde Tabla (Correlativo)

___________________________________________________________| | ||Empleados | || -------------------------------------------------- || ____________ ||Codigo de Empleado | 1 |* || ----------------- || || |------------------------------------------------------------------------------------_____________ _____________|Adicion | |Guardar |----------------- -----------------

1 Registro Correlativo

Codigo Empleado Codigo Producto Numero Factura____________________________________________________________| 1 | 1 | 1 |------------------------------------------------------------------------------------| | | || | | |------------------------------------------------------------------------------------

VF3 25 - 07 - 2002

Formulario Empleados y Productos

Crear Nuevo Formulario

71

Page 72: Clases de VFP

Documentos

Nuevo Nuevo formulario

* Proceso para Activar Clase

Barra de Controles__________________| __________ | Boton de Clases| | | || | | | __________________| | | | |Agregar || | | | |Standard || --------------- | |Controles Activ X|-------------------------- | |

| |--------------------------

Selecciona Agregar

Busca la unidad -ó- Carpeta en la que se almaceno

la Clase

Selecciona el nombre de la Clase.

Aceptar

* Arrastrar el Icono de la Clase al Formulario

Preguntará si desea crear un conjunto de Formularios_____________|Indicar SI |-----------------

1º Borrar el Formulario creado en la Opcion Nuevo

Formulario. Menu Barra

Formulario - Quitar Formulario

Activarlo a traves de de la Ventana Propiedades2º Borrar el Conjunto de Formularios

- Formulario Quitar conjunto de Formularios

72

Page 73: Clases de VFP

Menu de Barra

* Debe de mostrar un solo Formulario con la

Lista de sus Objetos creados en la Clase.

Hacer fichas de lo que uno escribe en el cuaderno para sacar

Los Datos

FormSet

Form1 Clase Container CommnadGroup1

Com1 hasta 5etc

CommandGroup2Com1 y 2

VF3 26 - 07 - 2002

Formulario Enpleados y Productos........Continuacion

____________________________________________________________________| || _______________________________________________________________ || |_________________________________________________________ |

|| || | | | || || ------------------------------------------- | || || | | || |--------------------------------------------------------------------------------- | || -------------------------------------------------------------------------------------- || || _____________________________________________ ____________ || | _____ _____ _____ _____ _____ _____ _____ | | ___ ___ | || | | | | | | | | | | | | | | | | | | | | | | || | ------- ------- ------ ------ ------ ------- ----- | | ---- ----- | || --------------------------------------------------------------- ---------------- || |

73

Page 74: Clases de VFP

-------------------------------------------------------------------------------------------------

Grupo de Botones(1) Grupo de Botones ( 2 )

En el Contenedor crear un Marco de Pagina

En la pagina 1 colocar campos de Empleados

En la pagina 2 Colocar campos de Productos

* Arratrar campo por campo hacia el Formulario

Cambiar Nombre en el Caption de cada una de las Paginas por :

Empleados y Productos

FORM1.INITTHISFORM.CONTROLES(.F.)

HOJA1(EMPLEADOS).ACTIVATESELECT T_EMPLEADOSTHISFORM.REFRESH()

HOJA2(PRODUCTOS).ACTIVATESELECT T_PRODUCTOSTHISFORM.REFRESH()

* Definir este Procedimiento identico en el Evento Click de cada Hoja.

HOJA1.(EMPLEADOS).ACTIVATE

THISFORM.MARCO.ACTIVEPAGE=1SELECT T_EMPLEADOS

HOJA2.(PRODUCTOS).ACTIVATE

THISFORM.MARCO.ACTIVEPAGE=2SELECT T_PRODUCTOS

Sobre el contenedor activa click derecho y escoge modifcar__________________| | || --------| Marco de Pagina| |

74

Page 75: Clases de VFP

| |-------------------------

Entorno de Datos

T_Empleados Buffer y OrderT_Productos Buffer y OrderT_Correlativo --------

Marco de Pagina Click Derecho y Modificar

ADICION.CLICKTHISFORM.CONTROLES(.T.)DO CASECASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=1SELECT T_EMPLEADOSAPPEND BLANK

THISFORM.CONTAINER1.PAGEFRAME1.PAGE1.TXTCODIGO.ENABLED=.F.

THISFORM.CONTAINER1.PAGEFRAME1.PAGE2.ENABLED=.F.THISFORM.REFRESH()

THISFORM.CONTAINER1.PAGEFRAME1.PAGE1.TXTNOMBRE.SETFOCUS()

CASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=2SELECT T_PRODUCTOSAPPEND BLANK

THISFORM.CONTAINER1.PAGEFRAME1.PAGE2.TXTCODIGO.ENABLED=.F.

THISFORM.CONTAINER1.PAGEFRAME1.PAGE1.ENABLED=.F.THISFORM.REFRESH()

THISFORM.CONTAINER1.PAGEFRAME1.PAGE2.TXTDESCRIPCION.SETFOCUS()

ENDCASE

GUARDAR.CLICKTHISFORM.CONTROLES(.F.)DO CASE

CASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=1SELECT T_EMPLEADOSTABLEUPDATE()

75

Page 76: Clases de VFP

SELECT T_CORRELATIVOREPLACE T_CORRELATIVO.CODIGO EMPLEADO WITH T_CORRELATIVO.CODIGOEMPLEADO + 1TABLEUPDATE()

CASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=2SELECT T_PRODUCTOSTABLEUPDATE()SELECT T_CORRELATIVOREPLACE T_CORRELATIVO.CODIGO PRODUCTO WITH T_CORRELATIVO.CODIGO PRODUCTO + 1TABLEUPDATE()

ENDCASETHISFORM.CONTAINER1.PAGEFRAME1.PAGE1.ENABLED=.T.THISFORM.CONTAINER1.PAGEFRAME1.PAGE2.ENABLED=.T.THISFORM.REFRESH()

CANCELAR.CLICKTHISFORM.CONTROLES(.F.)DO CASE

CASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=1SELECT T_EMPLEADOSTABLEREVERT()

CASE THISFORM.CONTAINER1.PAGEFRAME1.ACTIVEPAGE=2SELECT T_PRODUCTOSTABLEREVERT()

ENDCASETHISFORM.CONTAINER1.PAGEFRAME1.PAGE1.ENABLED=.T.THISFORM.CONTAINER1.PAGEFRAME1.PAGE2.ENABLED=.T.THISFORM.REFRESH()En el Control o marco de pagina de Productos hay que arreglar la opcion de

el Costo de Producto el % del Producto se pueda cambiar para que de un

resultado total diferente en el precio de venta ya finalizado.

Si dato = 1Clientes

Si dato = 2 Empleados

Si dato = 3 Facturas

Si dato = 4 Productos

76

Page 77: Clases de VFP

VF4 PRIMERA CLASE 02 - 08 - 2002

- FACTURAS

- EXTRAER CLASE

- ENTORNO DE DATOS

- Nuevo Formulario

- Clase

- Agregar

- Buscar Clase

- La encuentra y la selecciona

- Arrastrar el Icono del Formulario

- Conjunto de Formularios

NO se debe quitar el conjunto de Formularios no el otro Control

NO BORRAR NINGUN FORMULARIO

Debe aparecer con F2 el Form1 y no se debe quitar

____________________________________| | |_____________________________________| FormSet1 || Form1 || Clase || Container || Grupo1 || Grupo2 |_____________________________________

Entorno de datos

77

Page 78: Clases de VFP

Total 8 Tablas

Facturas Valor Predeterminado de Numero de Factura

y Escribir : T_Corre.Numero de Factura Detalle

Clientes

Empleados

Productos

Correlativo

Estadistica de Clientes

Estadistica de Empleados

Que Relaciones entre tablas en el entorno de datos :

Relaciones para actualizar y hacer busqueda

Campo a Indice__________________ __________________|Facturas | |Clientes |------------------------- -------------------------|Campos | |Campos |------------------------- ------------------------- Se hace de campo|Numero | |codigocliente ||codigoa | | |nombre | a campo y se va|codigocliente | |apellidos || | |indices | indice------------------------- |codigocliente |

-------------------------Iniciar en Facturas Termina en Clientes

Factura necesita de Clientes

VF4 07 - 08 - 2002

RELACIONES DEL ENTORNO DE DATOS DE FACTURAS

Mismo dibujo

78

Page 79: Clases de VFP

tablas de :

FacturasDetalleProductosClientesEmpleadosEstadistico de ClientesEstadistico de EmpleadosCorrelativo

Tabla de Detalle :

Numero de Factura en el valor Predeterminado poner

T_Facturas.Numerode Factura

T_EncaFactura.Numero de Factura

Como voy a saber que el detalle es la misma que el # de Factura en el

encabezado.

Campo a Indice

Factura Clientes Codigo de Clientes

Relacion de Factura a Clientes

Relacion de Factura a Empleados

Factura Empleados Codigo de Empleado

Tabla de Detalle Productos Codigo de Producto

Entre las estadisticas no existe ninguna relacion con ninguna tabla

1 2 Que datos estan relacionados entre detalle y factura ?

79

Page 80: Clases de VFP

1 3

1 4

2 4

2 5 La ultima relacion que va a crear será

Factura Detalle NumeroFactura

RECORDARSE QUE HAY CUATRO RELACIONES EN EL ENTORNO DE DATOS

DE FACTURAS.

Que Buffer y que orden le va a poner a que tablas .- En el Entrono de datos

de Facturas.

Le pone Buffer cuando agrega o modifica

Buffer Order TablaCodCliente Clientes

INTEGRIDAD REFERENCIAL EN LA BASE DE DATOS ES DIFERENTE

DEL ENTORNO DE DATOSCod_Empleado Empleados

Opcional(3)Replace Cod_Producto ProductosIndice Creado Esta_Clientes

Actualizar

TableUpdate()

Opcional(3) Indice creado EstadisticaEmpleados

Buffer(3) Numero Factura Facturas

Optimista(5) Numero Factura DetalleTablas

80

Page 81: Clases de VFP

*********

Metodo se llama a controles

Hay un metodo que usted creó :

THISFORM.CONTAINER1.SETALL(“ENABLED”,ESTADO,”TEXTBOX”)

Poner afuera del contenedor___________________

Dejar afuera del Contenedor Modificado |Subtotal|

|Iva ||Total |-------------------------

Dejar afuera del Contenedor :Numero de Factura,Fecha,Nit,Registro

Nombre y Apellido del Cliente

Nombre y Apellido del Empleado;

NO darle editar al contenedor dejar solo encima.

Codigo de Empleado y Codigo de Cliente van adentro del Contenedor : Sí modificado.

Boton Agregar Productos va adentro del Contenedor, la etiqueta F2 tambien va adentro del contenedor, la cuadrcula de detalle del producto tambien va adentro del contenedor, sí modificado.-

VF4 08 - 08 - 2002

Seleccionar todas las relaciones y las borra

Objetos afuera propiedad enabled = .F.

del Contenedor.

Desde el principio enabled = .F.Nombres y apellidos igual a .F.

Propiedad que sirve Disabled BackColor si se quiere cambiar colores a

81

Page 82: Clases de VFP

objetos deshabilitados : Disabled y,ForeColor para cambiar estos

Para poner botones de radio busca el grupo de opciones y tien que estar modificado gp1=name y modificar

autosize = .T. para poner exactos.

Poner Combos en modificados el container

Se ubíca en detalles el nombre de la tabla para convertirlo en la cuadrcula de detalle de factura

Propiedad Column count

Boton de producto

VF4 09 - 08 - 2002

ADICION . CLICKTHISFORM.CONTROLES(.T.)THISFORM.CONTAINER1.GRDDETALLE.ENABLED=.F.THISFORM.CONTAINER1.AGREGAR.ENABLED=.F.SELECT T_ENCAFACTAPPEND BLANKTHISFORM.REFRESH()THISFORM.CONTAINER1.GP1.OPCION1.SETFOCUS()

Tipo de Venta Nombre del Usuario Finaló Credito Fiscal

Consumidor FinalOpcion1(Opcion1).Click

Replace T_Encafact.Venta with .T.ThisForm.Refresh() Tipo Factura

Opcion2.Opcion2.ClickReplace T_Encafact.Venta With .F.ThisForm.Refresh() Tipo Factura

Ahora programar los Combos

Combo1.Valid(Clientes)ThisForm.Refresh()

Propiedades del Combo1

Style = 2 Lista desplegable

82

Page 83: Clases de VFP

RowSourcetype = 6 - CamposRowSource = T_Clientes.Cod_clienteControlSource = T_Enfact.Cod_cliente

Donde lo voy a guardar este campo en la tabla principal

Combo2.Valid(Empleado)ThisForm.Refresh()

Propiedades del Combo2

Style = 2 Lista DesplegableRowsourceType = 6 - camposRowSource = T_Empleados.Cod_empleadoControlSource = T_Enfact.Cod_Empleado

Combo2.LostFocus()respuesta-MESSAGEBOX(“ ¿ Son Correctos “+CHR(13)+”Los datos“,;4+32+0,”Facturas”)

Un salto de lineaSi dice que Sí habilitar Agregar Productos

Enfoque___________________________________________________________________|codigo |Descripcion |Precio |Cantidad |Total |-------------------------------------------------------------------------------------------| | | | | |-------------------------------------------------------------------------------------------| | | | | |-------------------------------------------------------------------------------------------

Deshabilitar

Deshabilitar_________________________|Son correctos ||Los Datos || || ------- ------ || |Sí | |Nó | | | ------- ------- || |`--------------------------------

6 7

83

Page 84: Clases de VFP

IF Respuesta = 6THISFORM.CONTAINER1.AGREGAR.ENABLED=.T.THISFORM.CONTAINER1.GRDDETALLE.ENABLED=.T.THISFORM.CONTAINER1.GRDDETALLE.DESCRIPCION.ENABLED=.F.THISFORM.CONTAINER1.GRDDETALLE.TOTAL.ENABLED=.F.SELECT T_DETALLEAPPEND BLANKTHISFORM.REFRESH()

THISFORM.CONTAINER1.GRDDETALLE.CODIGO.TEXT1.SETFOCUS() ELSE

THISFORM.CONTAINER1.GO1.OPCION1/SETFOCUS()ENDIF

VF4 12 - 08 - 2002

PROCESO DE GRID______________________________|T_DETALLE |------------------------------------------|Numero de Factura ||Codigo de Producto ||Cantidad ||Precio ||Total |-----------------------------------------

Header1____________________________________________________________|Numero |codigo |cantidad |precio |total |----------------------------------------------------------------------------------|ab |ab |ab |ab |ab |----------------------------------------------------------------------------------|Text1| | | | |----------------------------------------------------------------------------------| | | | | |----------------------------------------------------------------------------------| | | | | |----------------------------------------------------------------------------------| |

Columna 1________________________|Propiedades |

84

Page 85: Clases de VFP

----------------------------------------------------------------------------------|GrdDetalle | |----------------------------------------------------------------------------------|Column1 | Column4 || Header1 | Header1 || Text1 | Text1 ||Column2 | Column5 || Header1 | Header1 || Text1 | Text1 ||Column3 | || Header1 | || Text1 | |----------------------------------------------------------------------------------

Modificar y se piden todas las propiedades del Grid.

Solo se agrega Grd y se pone Grd_Detalle

Para el Grid

Propiedad Enabled = .F.

a cada columna le va a cambiar el nombre o sea name = ...

a cada column le pone el nombre del campo

name = numero

name = codigo

name = cantidad

name = precio

name = total

Header1 Caption Numero

__________________________________________________________________|Codigo |Descripcion |cantidad |Precio |Total |------------------------------------------------------------------------------------------| | | | | || | | | | || | | | | || | | | | || | | | | |

85

Page 86: Clases de VFP

------------------------------------------------------------------------------------------

Propiedades

Solo Columna1 : ControlSource : T_Detalle.Numero

Columna1 : name = se llama Descripcion

Columna1 ControlSource : T_Detalle.Des_prod

En el Header1 de la column1 se deberia de llamar : Descripcion

De la primera SE arrastra hasta despues del codigo.-

debe colocarlo entre codigo y cantidad

Vamos a crear el Formulario de consulta de factura atras del formulario de

facturas.

_________________________________________________________________| ____________ || Descripcion | | Text1 || ----------------- || Codigo Descripcion Precio || ________________________________________________ || | | || | | List1 || | | || | | || ------------------------------------------------------------------ || || |-------------------------------------------------------------------------------------------

Text1 . LostFocus___________________Selct codigo,descripcion,precio FROM T_Productos ;WHERE T_Productos.Descripcion = Alltrim(THis.Value) ;INTO CURSOR TEMPORALThisForm.List1.ColumnCount = 3ThisForm.List1.ColumnWidth = “50,150,150,”ThisForm.Lts1.ColumnLInes = .T.ThisForm.List1.RowSourceType = 2 AliasThisForm.List1.RowSource = “Temporal”

86

Page 87: Clases de VFP

______________________________| || Codigo || ___________ || | | || | | || ----------------- || |

F2

VF3 13 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

VF3 14 - 08 - 2002

FORM.INIT FACTURAS____________________

Controles(.F.)

ThisForm.Objetos(.F.)

Public Consulta, viva, busqueda

Consulta = .F. 1 2 Viva = 0 __ ____ Boton de ConsultaBusqueda = 0 |Sí| |Nó|

Form1 : Form de Consulta_________________________

List1.DblClick_____________

ThisFormSet.Factura.C1.GrdT_Detalle.codigo.Text1.Value=Temporal.codigoThisFormSet.Factura.C1.GrdT_Detalle.codigo.Text1.Value=Temporal.precioTHisForm.Refresh()

87

Page 88: Clases de VFP

ThisFormSet.Factura.C1.GrdT_Detalle.codigo.Text1.SetFocus()ThisForm.Visible = .F.

Esto de Facturas

Columna.Codigo- Text1.Keypress_______________________LParameters NKeycode,ShiftCtrlAltIF nKeycode = -1

ThisFormSet.Consulta.Visible=.T.Consulta = .T.

Endif- Text1.Valid_______________________

IF Consulta = .T.IF Seek(this.Value,”T_Productso”)

MESSAGEBOX(“PRODUCTO NO EXISTE”,0,”EROR”)RETURN 0

ENDIFENDIF

- Text1.LostFocus_______________________Replace T_Detalle.precio With T_Productos.precio

Column1Header1Text1

Column2Header1Text1

Sí no aparece la descripcion ;escribir eso con la descripcion

Descripcion y total en el Grid deben ir Enabled = .F.

VF4 15 - 08 - 2002

Columna de Precio y Columna de Cantidad

- Text1.Lostfocus()_______________________

88

Page 89: Clases de VFP

Replace T_Detalle.Total With This.Value * ThisForm.C1.GrdT_detalle.;cantidad.Text1.ValueReplace T_EncaFact.SubTotal With T_EncaFact.SubTotal + Tdetalle.TotalVIVA = (T_Factura.SubTotal*0.13)Replace T_EncaFact.Iva With T_encaFact.Iva+VivaReplace T_encaFact.Total With T_EncaFact.Total + (T_EncaFact.SubTotal;+Viva)ThisForm.Refresh()

__________________________________________________________________|Codigo |Descripcion |Cantidad |Precio |Total |-------------------------------------------------------------------------------------------|1 |\\\\\\\ | 1 | 10 | 10 ||2 |\\\\\\\\ | 2 | 20 | 40 || | | | | |-------------------------------------------------------------------------------------------

____________ ______ ____________SubTotal | 10 | Iva |1.13 |Total |11.13 |

----------------- --------- -----------------

Columna de Precio y Columna de Cantidad

Text1.GotFocus()_________________

Replace T_EncaFact.SubTotal With T_EncaFact.SubTotal - TDetalle.TotalReplace T_Encafact.Iva With T_Encafact.Iva-VivaReplace T_EncaFact.Total With T_EncaFact.Total-(T_EncaFact.SubTotal+Viva)ThisForm.Refresh()

VF4 16 - 08 - 2002

Guardar.ClickThisForm.Contrles(.F.)Local vano,vmes,vcodigoc,vcodigoe,dato1,dato2vano=Alltrim(Str(Year(ThisForm.TxtFecha.Value)))vmes=Alltrim(Str(Month(ThisForm.TxtFecha.Value)))

89

Page 90: Clases de VFP

vcodigoc=Alltrim(ThisForm.Container1.Combo1.Value))vcodigoe=Alltrim(ThisForm.Container1.Combo2.Value))dato1=vano+vmes+codigocdato2=vano+vmes+codigoe*Actualizacion estadistico de clientesSelect T_estacliIF !Seek(dato1,”T_estacli”)

Insert into T_Estacli(Ano,mes,codcli) Values(Vano,vmes,vcodigoc)ENDIFReplace T_Estacli.ncompra With T_estacli.ncompra+1Replace T_Estacli.T_Compra With T_Estacli.T_compra + T_Encafact.Total*Actualizacion estadistico de empleadosSelct T_EEmpleaIF !Seek(dato2,”T_EEmplea)Insert into T_EEmplea(ano,mes,cod_emp) Values(Vano,vmes,vcodigoe)ENDIFReplace T_EEmplea.nventas With T_EEmplea.nventas+1Replace T_EEmplea.Tventas With T_EEmplea.nvents+ T_EncaFact.TotalTABLEUPDATE(1,.T.,”T_ENCAFACT)TABLEUPDATE(1,.T.,”T_DETALLE)REPLACE T_Correlativo.numero With T_Correlativo.numero + 1ThisForm.Refresh()

CANCELAR.CLICKTABLEREVERT(.T.,”T_ENCAFACT)TABLEREVERT(.T.,”T_DETALLE)SKIP -1 ThisForm.Refresh()

BOTON AGREGAR.PRODUCTO COMMAND BUTTONSelect T_DetalleAppend BlankThisform.Container1.GrdT_detalle.Codigo.Text1.SetFocus()

TABLEUPDATE ( 1, .T. , ALIAS ) TABLA

Modificaciones En tablas o Registro Sobreescribir o error(.F.)0 Actual1 Cualquiera

VF4 19 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

90

Page 91: Clases de VFP

VF4 20 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

VF4 21 - 08 - 2002

1.- Realizar Consulta de Factura por Fecha.

2.- Realizar Modificaciones de facturas con un combo

-Al llegar al combo de empleados y preguntar si los datos son correctos, no crear registros en blanco, si no dejar modificar los

que ya existen.

1.- Boton de Consulta

Hacer el mismo Form de Consulta

_______________________________| || __________________ |tambien clientes,empleados y| |10/02/1999 | || ------------------------- |productos| || __________________ || |7 | || |8 | | 2 click o doble click| |9 | || |10 | | numero, tipo y total| | | || ------------------------- || |------------------------------------------

2.- Modificacion con un Combo______________________________________________________| __________________ || Numero | | V | || ------------------------- || __________________ || empleado | | V | || ------------------------- || || ___________________________________________ |

91

Page 92: Clases de VFP

| |2 | | | | | Select| ---------------------------------------------------------- | |

T_Detalle| |3 | | | | |No Append | ---------------------------------------------------------- | | Blank| |4 | | | | || ---------------------------------------------------------- | No 1| ______ ______ ______ || |Add | |Con | |Mod | || --------- --------- --------- || |------------------------------------------------------------------------------

No Crear Registros en Blanco

Usar variables para averiguar que boton esta usando

AdMo AdMo Boton de Adicion

Init de Formulario

1 2 poner tambien los Admo

Modificar Adicion IF Boton1.Command1.lastkey = 13Store 1 to dmo

Endif

Combo Empleadosagragr 3 lineas Combo2

Valid y lostFocus de Empleados no quitar sino Agregar

3 lineas

____________________________________________________________

ANULADO

Para Eliminar

- Dibujar Etiqueta/

Ojo { Debo deshabilitar tipo venta Combo1 y Combo2

92

Page 93: Clases de VFP

\

_____________________________________________________________________

Cambiar caption ( Label1 )

- Dibujar Etiqueta

- Cambiar Caption(Anulado)

_ Forecolor

- BackColor

- Font Bold

- Font Size Grande pero no todo el FormularioColores Vivos

Eliminar.Click - Figurade recuperar AnuladoEn el sistema no se pueden eliminar fisicamente nada solo logico

Elimonar.Click

Primero Averiguar si esta eliminada

IF !Delete()DeleteThis.Picture “a:\-----------”Etiqueta,Label1.Visible=.T.ThisForm.Label.Visible=.T.

ElseRecallThisForm.Label1.Visible=.F.This.Picture “a:\------------”

EndifThisForm.Refresh()

En el metodo de la clase cambiar el Enabled para ComboBox y el tipo de Opcion en cuanto a tipo de venta o sea Opcion.Al Refresh del Formulario de Facturas : Form.Facturas.Refresh()

REPORTES========

Reportes : A diferencia de las consultas los datos se

93

Page 94: Clases de VFP

pueden visualizar en pantalla o papel .

En un Reporte se muestran todos los registros de una tabla o aquellos que cumplen una condicion especifica.

Un reporte posee originalmente 3 Areas

______________________________________________________Encabezado | Titulos Fechas campos

|| |---------------------------------------------------------------------------| |

Detalle | |--------------------------------------------------------------------------| |

Pie de ||

Pagina | || |--------------------------------------------------------------------------

El usuario puede personalizar para agregar como maximo 3 areas mas.

Los reportes los va a hacer

Documentos

Informes Nuevo Nuevo Informeal início no va a preguntar nadaal final le pone el nombre

3 AREAS ORIGINALESy 4 AREAS MAS TOTAL 7 AREAS

Encabezado TitulosFechas

94

Page 95: Clases de VFP

Campos que se muestren una sola vez por

Reporte

Detalle Campos a mostrar para el reporte (Todos :

los registros, o aquellos que cumplen una condicion)

Pie Todos los Totales, # de pagina

VF4 22 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

VF4 23 - 08 - 2002

_________________________________________________________________| TITULO |---------------------------------------------------------------------------------------------| - ENCABEZADO DE PAGINA ----------- || || - DETALLE ------------------------------- || || || - pie ----------------------------------------------- |---------------------------------------------------------------------------------------------| resumen |----------------------------------------------------------------------------------------------

Imprime -- Titulo -- \ Resumen - Menu

________________________| || ______ || | |Titulo | Titulos| --------- || ______ || | |Resumen | Totales a continuacion del

95

Page 96: Clases de VFP

| -------- | Ultimo Registro Impreso| |----------------------------------

__________________ ____________ __________________| | | | | || | | | | || | | | | || | | | | || _____ | | ______| | _____ || 100 | | 100 | | 100 || 100 | | 200 | | 300 || | | | | |------------------------- ----------------- -------------------------

(Resumen) (Pie de pagina)

Hay otra area que es :Area de GruposArea de Grupos : Encabezado

Pie de GrupoUno a Muchos

Relacion de Uno a Muchos

Encabezado de Detalle de FacturaFactura

________________________| Numero 1 | EncaFactura =1| || ZZZZZZZZZZ | Detalle.Numero1 =1| || |---------------------------------

Para crear un grupo de datostiene que tener entorno de datos

Campo principalcrear grupo

Numero de la tabla de FacturasIr Opcion Informe - Agrupar datos

________________________Expresion |Tabla Encabezado |.Numero de Factura

---------------------------------

96

Page 97: Clases de VFP

________________________________________________________________| TITULO |------------------------------------------------------------------------------------------| - Encabezado de pagina -----------------------

|| || - Encabezado de Grupo : Numero ------ || || - Detalle ----------------------- || || - Pie de Grupo : Numero -----------

|| || - Pie de pagina : ------------------------ || |-------------------------------------------------------------------------------------------| Resumen || |-------------------------------------------------------------------------------------------

__________________________________________ E | |

---------------------------------------------------------- EG | |

----------------------------------------------------------| | |

D | | || | |----------------------------------------------------------

PG | |----------------------------------------------------------| |

PP | || |----------------------------------------------------------

Tenemos Consulta de Productos

Consulta__________________ ________________________________________|Codigo ---- | |Combo,Descripcion,Pre.Venta,Existencia|

|Descripcion ---- | | \ \ \\ ||Precio Costo ----- | | \ \ \ \ ||Precio Venta ----| | \ \ \ \ ||Existencia ----- | | \ \ \ \ |------------------------- -

------------------------------------------------------

97

Page 98: Clases de VFP

REPORTE DE ARTICULOS

Fecha : = Date()

Codigo DescripcionPrecio de Venta Existencia

\ \ \ \\ \ \ \\ \ \ \

Total de Productos ; _____________________________

Documentos - Informes - Nuevo - Nuevo Informe

________________________________________________| Titulo Reporte de Articulos |Formato Fuente------------------------------------------------------------------ para cambiar| || - Encabezado || - Fecha : ________ ||----------- ----------------- --------------- ------------ |||Codigo| |Descripcion| |Pre.Venta ||Existen.| ||----------- ----------------- --------------- ----------- || - Detalle || ||codigo descripcion Precio Venta Existen. || || Click derecho || - Pie de pagina entorno datos || ||Total de Productos : _____________________ || |------------------------------------------------------------------

__________________ __________________|Controles | |Entorno de Datos |

98

Page 99: Clases de VFP

------------------------- -------------------------| _____ | |Click derecho || A | ab | |Campos o varia |Agregar tablas || |bles | || Imagen | | || | | |------------------------- -------------------------

Entorno de Datos_________________________|Productos |---------------------------------|Campos |---------------------------------|Código ||descripción ||precio costo ` ||precio venta ||Existencia |---------------------------------|Indices |---------------------------------|Código |----------------------------------

Archivos configurar pagina

Hasta 256 caracteres

Contar ------------------- 1+2+3 = 3

Sumar ------------------- 1+2+3 = 6

VF4 26 - 08 - 2002

Continuacion Reportes

____________________________________________________________| Reporte de Articulos || |-------------- Titulo -----------------------------------------------------------| || Fecha : ________ || ||Codigo Descripcion Precio Existencia |

99

Page 100: Clases de VFP

| ||------------------Encabezado ---------------------------------------------- || ||cod_prod desc_prod precio_prod Existencia || || 2 click || ||------------------ Detalle ----------------------------------------------------- || || TOTAL : 2 ||------------------------------Pie de pagina ------------------------------- || || Conteo - Cualquier campo || || Suma - Campo numerico || || |----------------------------------------------------------------------------------TotalCampo TotalDescripcion de producto________________________________________________|Expresion | ||---------------------------------------------------------------- ||___________________ ___ |||T_Prod.Desc_prod| |...| ||------------------------- ---- ____________ || |Aceptar | || ----------------- || _____________ || |Cancelar | || ----------------- || _____________ || |Calculos ... | || ----------------- |_________________________________________________

______________________________________| Calculos ||------------------------------------------------ || Suma _________ || Promedio |Aceptar| || Conteo ----------- || Minimo __________ || Maximo |Cancelar| |

100

Page 101: Clases de VFP

| -------------- || |--------------------------------------------------

No añadir Existencia

Solo contar la cantidad de productos____________

Fecha : | |-----------------

________________________| ____ _____ ____ ||| | | A | | ab | | Campo|------- ------ ------- || || |---------------------------------

__________________________________________| ____________ ______ || |Date() | |... | || ----------------- --------- || ____________ || |Aceptar | || ----------------- || _____________ || |Cancelar | || ----------------- || _____________ || |calcular | || ----------------- || |----------------------------------------------------------

REPORTE MENSUAL DE VENTASPOR EMPLEADOS

_________________________________________________________________

AÑO : ____________

MES : ____________

CODIGO EMPLEADO NOMBRE NUMEVENTAS TOTAL VENTAS

\ \ \ \\ \ \ \

101

Page 102: Clases de VFP

\ \ \ \TOTAL “ _____________ _________________

\ \________________________________________________________________________

ENTORNO DE DATOS

________________________________________________________________________

T_ESTADISTICA DE EMPLEADOS

T_EMPLEADOS

RELACION ENTRE COD_EMP(T_ESTADISTICA) HACIA COD_EMP(T_EMPLEADOS)

ESTADISTICA NECESITA DE EMPLEADOS

____________________________________________________________________| REPORTE MENSUAL DE VENTAS || POR EMPLEADO ||-------Titulo ------------------------------------------------------------------------- || || Año : _____ Estadistica de Empleados Año_Emp

|| Mes : _____ Estadistica de Empleados Mes_Emp

|| || Codigo Empleado Nombre No.Ventas To.Ventas || ||-------Encabezado ---------------------------------------------------------------- || __________ _____________________ _________ _________

|| |Cod_emp| |Nom_Emp+Ape_emp||N_ventas||T_ventas| || -------------- ----------------------------- ------------- ------------ || Tabla 2 click || Estadistica Alltrim(25) Alltrim(25) || || T_empleados T_Empleados

||--------- Detalle -------------------------------------------------------------------- || ||--------- Pie ------------------------------------------------------------------------- || _____________ _____________ || TOTAL : |T_ED.N_vent| |T_Ed.T_Vent| || ------------------ ------------------ |

102

Page 103: Clases de VFP

| || suma suma || calculos calculos ||----------------- Resumen --------------------------------------------------------- || || | -------------------------------------------------------------------------------------------

T_Estadistica T_EmpleadosAño Cod_empMes Nombre

Cod_emp apellidoN_ventas dirreccionT_Ventas telefono

““

__________________________________________________________________|2000 |10 |1 | | ||----------------------------------------------------------------------------------------||2000 |10 |2 | | ||2000 |11 |1 | | ||2000 |11 |3 | | ||2000 |12 |1 | | |-------------------------------------------------------------------------------------------

___________________________________________| 1| Juan |Perez || 2| Pedro |Peres || 3| Luis |Peres || 4| Maria |Peres || | | |----------------------------------------------------------

___________________________________________________________________|Expresion ||--------------------------------------------------------------------------------------- || __________________ ___ || |T_Emp.Nom_emp | |...|

|| ------------------------- ----- _____________ || |Aceptar | || 2 click ----------------- |

103

Page 104: Clases de VFP

| ----------------- || |Cancelar | || Alltrim(T_emp.Nom_emp)+” “+Alltrim ; ----------------- || (T_emp.Apellido_Emp)

|| || |-------------------------------------------------------------------------------------------

Año : 2001Mes : 10

Cod.Emp Nombre Numero Ventas Total Ventas__________________________________________________________________

1 Juan 10 2,500.002 Pedro 15 3,500.00

___________________ ___________________25 6,000.00

3 Reportes

Articulos Tabla ProductosEmpleados Tabla EstadisticaClientes Tabla Estadistica

VF4 27 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

VF4 28 - 08 - 2002

HOY HUBO CENTRO DE COMPUTO

VF4 29 - 08 - 2002

ULTIMO DIA DE CLASE

solo entrega de tarea

104

Page 105: Clases de VFP

VF5 04 - 08 - 2002

MIERCOLES PRIMER DIA DE CLASES

1.- LABORATORIO TEORICO

1.- TAREA.-

TAREA : REPORTES

CONSULTAS

HERRAMIENTAS DEL SISTEMA

MENU

EJECUTABLE

AÑADIR IMAGENES A REGISTROS

GRAFICOS

REPORTES 2 - ESTADISTICOS

Nos quedamos con los reportes

Reporte Mensual de Compras por Clientes = Empleados

_______________________________________________________________________|Año |Mes |CClien |N.Com. |T.Compras ||2000 |01 |001 |010 | 10,000.00 ||2000 |02 |001 |020 | 50,000.00 ||2000 |02 |002 |002 | 100.00 ||2000 |01 |003 |003 | 500.00 ||2000 |03 |002 |004 | 250.00|-----------------------------------------------------------------------------------

105

Page 106: Clases de VFP

Año Text1 Input Mask = 4 Numeros

Año Text2 Input Mask = 2 Numeros

Vista Previa.Click

Report Form “a:\20202\Informes\Report+cli” ;FOR T_estadicli.ano = Alltrim(ThisForm.Text1.Value) ;AND T_estadicli.ano = Alltrim(ThisForm.Text2.Value) ;preview

Imprimir.ClickReport Form “a:\20202\Informes\Report+cli” ;FOR T_estadicli.ano = Alltrim(ThisForm.Text1.Value) ;AND T_estadicli.ano = Alltrim(ThisForm.Text2.Value) ;TO Print prompt Noconsole

Importante

Entorno de Datos

Tabla Estadistica de Clientes

Cliente Empleados

Imprimir.Click

DO CASE

Case Cliente

` Case Empleados

ENDCASE

106

Page 107: Clases de VFP

Reporte por Fecha de empleados

Hacerlo uno mismo

Consulta de Clientes--------------------------------Nuevo Formulario

Sin clases, solo un contenedor

Combo1.propiedadesRowsource : clientes.codcliRowsourceType : - 6 - CamposStyle : - 2 - Lista desplegablePicture : Cualquier figura

Combo1.ValidThisForm.Refresh()

Entorno de DatosClientes

Es solo consulta No Hay Proceso

107

Page 108: Clases de VFP

Herramientas del Sistema___________________________

Copia de Seguridad (Nuevo Formulario)

Etiqueta sobre el Contenedor Solo 3 puntos en el boton Contenedor comando boton1

Cuadro de Text1 e iniciar . Enabled = .F

copia de seguridad = respaldo de datos

Base de datos boton = 3 puntos = caption

C:\----------------- (A:\) transportables - Administrador del sistema

A:\----------------- C:\

VF5 05 - 09 - 2002.

VF5 06 - 09 - 2002Continuar anterior dia

Cuadro de Texto(Text1) e IniciarEnabled=.F.

Boton1.ClickPublic Destinodestino = Getdir()ThisForm.Text1.value = destinoThisForm.Iniciar.Enabled = .T.ThisForm.Refresh()

108

Page 109: Clases de VFP

Iniciar.ClickSet safety offClose DatabaseCopyFile CurDir()+’DATOS\T_*.DBF’ TO destino + “*.DBK”CopyFile CurDir()+’DATOS\T_*.FPT’ TO destino + “*.FPK”CopyFile CurDir()+’DATOS\T_*.CDX’ TO destino + “*.CDK”CopyFile CurDir()+’DATOS\B_*.DBC’ TO destino + “*.BDK”Set default toMESSAGEBOX(“LA COPIA SE REAQLIZO CON EXITO”,0,”COPIAS”)

Reporte de facturas

Entorno de datos

Encabezado Fact Factura - detalle - numeroDetalle Fact Detalle - Producto - codigo productoEmpleados clientes productos estadisticos No

109

Page 110: Clases de VFP

Viñeta datosEncabezado detalle

numero factura numero factura

click derecho propiedades

relacion propiedad One to many

caracteristica

Crea gruposInformeAgrupar datos

110

Page 111: Clases de VFP

1.- Entorno de datos

2.- Relacion de los campos

3.- Encabezado de grupo

Diseño que deberia realizar

111

Page 112: Clases de VFP

VF5 06 - 09 - 2002

C:\copseg

Curdir() directorio actual

BK

BackUp

Set default to a:\20202

or

Set default to C;\20202

proximo miercoles traer todo

VF5 09 - 09 - 2002 - A.D-

Reporte de empleados por fecha de ingreso traerlo

Hoy centro de computo

VF5 10 - 09 - 2002

Iva ir en una tabla sola para colocar solo por el supervisor del sistema a

cambiar solamente por el.- Y otras constantes y variables.

Traer el miercoles todo lo que hagamos ahora.-

RESTAURACION DE ARCHIVOS

112

Page 113: Clases de VFP

Boton1.click

Public OrigenOrigen = getdir()Thisform.text1.value = origenThisform.iniciar.enabled = .T.ThisForm.Refresh()ThisForm.Iniciar.SetFocus()

Iniciar.clickSet safety offclose databaseclose allcopy file origen+”*.dbk to curdir()+”Datos\*.Dbf”copy file origen+”*.cdk to curdir()+”Datos\*.cdx”copy file origen+”*.fpk to curdir()+”Datos\*.fpt”copy file origen+”*.bdk to curdir()+”Datos\*.dbc”MESSAGEBOX”Restauracion Finalizada”,0,”Restauracion”)

_______________________________________________________________

DEPURACION DE REGISTROS (NUEVO FORMULARIO )

Wordwrap = .T.

propiedad del label 1

113

Page 114: Clases de VFP

Depurar.click boto depurarSet safety off : para no mostrar mensaje cuando reeescribaClose databaseclose allUse “a:\20202\datos\T_clientes” ExclusivePackUseUse “a:\20202\datos\T_empleados” ExclusivePackUseUse “a:\20202\datos\T_productos” ExclusivePackUse... Y así todas las tablas

MESSAGEBOX(“Depuracion Finalizada”,0,”Depurar”)

wordwrap = .T. en label1

Zap : eso borra toda la tabla

Pack : borra todo lo eliminado o marcado con delete

Tabla de facturas de detalle y productos

N cli Tot N Prod Total1 1 10 1 1 10 1 jabon

2 cafe3 toalla7 corbatas

114

Page 115: Clases de VFP

Integridad Referencial

penultimo formulario de herramientas

Reindexacion de tablas ( Nuevo Formulario )

Reindexar.click

Set Safety offClose DatabaseClose allUse “a:\20202\datos\T_clientes” ExclusivereindexUseUse “a:\20202\datos\T_empleados” ExclusiveReindexUseUse “a:\20202\datos\T_productos” ExclusiveReindexUse... Y así todas las tablasMessageBox(“Reindexacion Finalizada con exito”,0,”Reindexar”)

115

Page 116: Clases de VFP

VF5 11 - 09 - 2002

CONTROL DE USUARIOS__________________________________________

Crear una tabla con los siguientes campos : T_Usuarios

Usuario caracter 20Nivel numerico 1clave caracter 40 solo 20 + otros 20

Indice Principal ó Candidato por el campo de Usuario

Container

txtusuario y txtnivel campos de la tabla, y text1 y text2 cajas de texto

Entorno de datos T_Usuarios y T_Usuarios1

Crear dos metodos :

1.- Activar y desactivar objetos lo crea uno

2.- Conversion clave tambien lo crea uno

Agregar.clickThisForm.metodo(.T.)Select T_UsuariosAppend BlankThisform.Container1.Text1.value=“”

116

Page 117: Clases de VFP

Thisform.Container1.Text2.value=“”Thisform.Refresh()Thisform.Container1.TxtUsuarios.setfocus()

TxtUsuario.ValidIf seek(This.value,”T_Usuarios1”)

MESSAGEBOX(“USUARIO YA EXISTE”)RETURN 0

ENDIF

Text1.LostFocus()Public clave1ThisForm.conversion(Alltrim(This.value))clave1 = claveirreal

Text2.Lostfocus()Public clave2ThisForm.conversion(Alltrim(This.value))clave2=claveirrealIF clave1 = clave2

Replace T_Usuarios.clave with clave1Thisform.metodo(.F.)

elseMESSAGEBOX(“Claves no coinciden”,0,”Error”)Thisform.Conatiner1.Text1.setfocus()

Endif

Metodo Conversion________________________LParameters claveralPublic claveirrealclaveirreal = “”FOR V = 1 TO LEN(Clavereal)

claveirreal=claveirreal+CHR(ASC(SUBSTR(clavereal,V))+17)+”?”ENDFOR

Formulario de Usuarios____________________________________|Usuarios |Nivel |clave| desde nivel 1 hasta nivel 3--------------------------------------------------|carlos |1 |carlos |--------------------------------------------------

T_Usuarios ---------- Agregar

U_Usuarios1 ---------- Buscar

117

Page 118: Clases de VFP

Passwordchar = * en clave y en confirmacion

para los cuatro campos = Usuarionivelclaveconfirmacion de clave

Select On entry = .T. en todos los 4 campos

Text1 = maxlength = 20 caracteres

Text2 = maxlength = 20 caracteres

clavereal = albertoclaveirreal “” r+?

aASC(a) = 9797+17 = 114CHR(114) = r?}?

CHR(Numero ASCII) devuelve el caracter del numero ASCII

ASC(caracter) devuelve el numero ASCII de un caracter

SUBSTR(caracter,posicion) devuelve el caracter y su posicion,extrae un caracter de una posicion especifica.

claveirreal=claveirreal+CHR(ASC(SUBSTR(clavereal,V))+17)+”?” | | | 3º | | | | | ---------------------- |

4º | 2º 1º | ---------------------------------

2ºCHR(110) = nASC(Ñ) = 164,165SUBSTR(Juan,3) = a

3 = aLEN() = devuelve el numero de caracteres de un campo o de una variable.

FOR - ENDFOR : repetir un conjunto de instrucciones un numero de veces.

118

Page 119: Clases de VFP

VF5 12 - 09 - 2002

V = 2V = 3b =ASC(b) = 9898 + 17 = 115CHR(115) = S + ?

clavereal = albertoclaveirreal = r?}?s?v?â?à?Ç?

______________________________________________________________________

Siguiente.clickIF !EOF()

SKIPELSEIF EOF()

GO TOPENDIF

ENDIFTHISFORM.REFRESH()

Eliminar.clickSelect T_UsuarioDeletePackSkip -1ThisForm.Refresh()

Colocar a la tabla usuario la propiedad exclusive como .T.para que funcione el eliminar

MENUS_____________

Existen dos tipos de menus menu de barras, y menus contextuales. click derecho

De Barra

Archivo Edicion Ver

119

Page 120: Clases de VFP

Mantenimiento Consulta Reportes______________ ____________ __________Clientes Productos General de ClientesEmpleados y Ventas Diarias FacturasProductos Estadisticos ____________ Venta de EmpleadosFacturas Compra de Clientes

Herramientas Ayuda Salir_____________ ___________ _________________Copia de Seguridad Sistema Sólo Salir del SistemaRestauracion Datos FacturasReindexacionDepuracion de Tablas________________Usuarios

________________________________________________________________________DireccionesFormularios

VF5 13 - 09 - 2002HOY HUBO CENTRO DE COMPUTO

VF5 16 - 09 - 2002

Como se hace un spinner ? preguntar a Srta. Yesenia

Alt 92 = \

Alt60 = <

VF5 17 - 09 - 2002

Columna Opciones del Menu

120

Page 121: Clases de VFP

Presionar click para ver cuadro de dialogos

elegir la opcion : saltar por(Skip For) y escribir mnivel > 1

variable de memoriaMnivel Opciones a Restringir_________ |Mantenimeinto1 - Todo |Reportes2 - Mantenimeinto de Herramientas |Herramientas2 - Solo consultas

121

Page 122: Clases de VFP

Crear Formulario de Ingreso al sistema

Usuario : CarlosNivel : 2 -> MnivelClave : ~~~~~~~~~~

Mantenimiento Mnivel >1Reportes Mnivel >2Herramientas Mnivel >1

Reportes

Listado de ClientesListado de FacturasListado de Estadistica de empleadosListado de Estadistica de clientes

VF5 13 - 09 - 2002

EN EL CENTRO DE COMPUTO ME LO DIO

UN NICARAGUENESE LLAMADO MEDARDO

Objeto : Timer1 Procedure : Timer____________________________________Thisform.label1.visible = not(Thisform.label1.visible)

en las propiedades (Todos)name = timer 1enabled = .T. - Verdaderointerval = 450left = 456timer event = procedimeintotop = 60

122

Page 123: Clases de VFP

VF5 17 - 09 - 2002

- Listado de Clientes se va directo al Report Form To Print

- Factura :____________________________________

Crea un formulario | |Entorno de datos |Numero de Factura |Text1| |T_Factura | |

|Vista Previa Imprimir Salir || || |--------------------------------------------------

Comando Do Form Formulario de reporte de facturas

Report Form TO Preview y to Print__________________

Spinner | | || |-------|| | |-------------------------

Crear el ultimo Formulario :

Formulario de Ingreso al Sistema_____________________________________

*Crear de nuevo el metodo de convresion y definir la programacion identica

al formulario de Usuarios.

Entorno de datos_____________________Tabla de Usuarios

123

Page 124: Clases de VFP

Order UsuarioForm.InitPublic intentos,claveirreal,mnivelclaveirreal=“”intentos=0mnivel=0

Text1.ValidIf Empty(This.value)

Messagebox(“Complete el Usuario”)Return 0elseSeek(This.value)Return 1

Endif

Text2.ValidIf Empty(This.value)

Messagebox(“Complete el Nivel”)Return 0elseSeek(This.value)Return 1

Endif

Text3.ValidIf Empty(This.value)

Messagebox(“Complete la Clave”)Return 0elseSeek(This.value)Return 1

Endif

Text3.LostFocusThisForm.Conversion(Alltrim(This.Value))

_______________________Return 1 = pase al siguiente objeto

passwordchar = *

VF5 18 - 09 - 2002

124

Page 125: Clases de VFP

Aceptar.clickLocal MusuarioMusuario = Alltrim(ThisForm.Text1.Value)Mnivel = val(Alltrim(ThisForm.Text2.Value))

If Musuario==Alltrim(T_Usuario.usuario) AND Mnivel==(T_usuario.nivel) ;

AND claveirreal==Alltrim(T_usuarios.clave)

intentos=0Do “a:\20202\menus\mprincipal.mpr”ThisForm.Release()

ElseMessageBox(“Acceso Denegado”,0,”Error”)THisForm.Text1.SetFocus()intentos=intentos+1

EndifIf intentos=3

MessageBox(“Usuario no Autorizado”,0,”El Sistema se Cerrara”)ThisForm.Release()Clear Events

Endif

Salir.ClickThisForm.Release()

Crear el siguiente programa .. (Viñeta Codigo - Proyecto)Opcion Programa Nuevo_SCreen.Caption = “Sistema de Facturas”_Screen.Icon = “a:|20202\imagenes\icono.ico”_Screen.Picture = “a:\20202\imagenes\Fondo.jpg”_Screen.WindowState = 2Set Sysmenu offSet Century onSet Status offSet Date BritishSet Talk offDO Form “a:\20202\Formularios\F_Ingreso”Read Events

___________________________________________

Order es suficiente para llamar cada campo de texto a la tabla con el

125

Page 126: Clases de VFP

order que se establecio.

_SCreen.WindowState = 2 Maximizado

EjecutablePrograma

Formulario de IngresoAccesar todo el Sistema

VF5 19 - 09 - 2002

HOY HUBO CENTRO DE COMPUTO

VF5 20 - 09 - 2002

GENERACION DE EJECUTABLE

BOTON GENERAR EN EL PROYECTO

Verificar estructura de Proyecto

- Elegir Unidad ( Preferible C:\ )

- Definir Nombre (Guardar)

C:\ escritorio Facturas.exe

Copia Sistema

A:\ - Ejecutable- Tabla

126

Page 127: Clases de VFP

- Base de datos

Caracteristica a su programacodigoprogramas

____________________________________________________________________| |Codigo| ----------------------| |Inicio| || Procedimientos click derecho

Establecer principal ó Set Main

EjecutableProgramas

Formulario de IngresoMenu

FormReports

Consultas

Anexar a su sistemaImagenes por registroen empleados1.- Creando 1 campo General en tabla de empleados

2.- Guardando imagenes en un directorio y utilizar un campo en el que almacene la ruta de la imagen

copiando pegando(General)

A:\20202 imagenes

Juan.jpg |Carlos.jpg |.gifJorge.jpg |

Modificar la tabla de empleadosagregar un nuevo campo

Foto caracter 40 = guardar ruta de imagen

modificar formulario de empleados

127

Page 128: Clases de VFP

Seleccionar Foto.ClickPublic imagenimagen = getpic()ThisForm.Container1.imagen.picture = imagenReplace T_empleados.foto with imagenThisform.refresh()Form.refresh()Select T_empleadosThisForm.Container1.imagen.picture = T_empleados.fotogetpic() abrir ventana para seleccinar imagen________________________________________________| buscar en |imagenes | | || --------------------------- || _______________________________ || | | || | | || | | || ----------------------------------------- || ____________ ______ || Nombre | | |abrir| || ----------------- -------- || | -------------------------------------------------------------------

VF5 23 - 09 - 2002

128

Page 129: Clases de VFP

Graficos

Tener Microsoft graphpara crear un graficoSe va a consultar datosen el proyecto solo en datosy activa consultaselige nuevoasistente para consultaasistente para graficosaceptarelegir tabla y camposelegir tabla estadistica en este casoelegir Año, mes, codigo empleadoy total ventasy se elige todosse le da siguientey preguntaejes X -y- Yen la coordenadaal definir los datos a mostrar en las coordenadasen X puedo colocar campos numericos o caracteresse escoge el campo y se arrastra a eje xeje x codigo de empleadoen el eje y solo coloca datos numericostotal de ventasagarra el campo y se lo lleva al eje Ydespues siguientey elige el tipo de grafico que quiere

Se elige el tipo de graficopresiona siguiente

paso #4escribir un titulo para el graficoseleccione una opciondespues de el tituloelige guardar graficoen una tablapara guardar una tabladespues si quiere vista previadesactivar valores nulosagregar una leyenda al graficocuando finalizepregunta donde guardary se guarda el grafico en Datos

129

Page 130: Clases de VFP

y especificar un nombre.-grafico nombrey despues guardary antes de finalizaren la tabla el tipo de dato correspondienteal grafico es general o sea campo general se lellama olegraphpara ver un campo memo=CTRL-PK o page up o doble click en elcampo memo.-

Hay que filtrar los datos desde un formulariopara cambiar los datospara crear el grafico en el formulario de entorno de datostiene que tener los dos tablas estadistica y la tabla de graficoSe hace el formulario

__________________________________________________________________| ____________ || Año |Text1| || ----------------- || ____________ || Mes |Tetx2 | || ----------------- || || Graficar || || Salir || |-------------------------------------------------------------------------------------------

Propiedad Inputmask = año 4 numeros 9999

Propiedad InputMask = mes 2 numeros 99

este campo se va a llenar desde la tabla que se creo en el asistente para graficos y se llama : Olegraph

VF5 24 - 09 - 2002

BOTON Graficar.click

130

Page 131: Clases de VFP

______________________ThisForm.Olegraph.visible=.T. y falso desde el principio#Define CRLF CHR(13) + CHR(10) retorno del cursor#Define TAB CHR(9) generar nueve espacios - 2.5 espaciosLocal LcdataSelect cod_emp,ven_acum FROM T_Eemp ;Where Ano = Alltrim(ThisForm.Text1.value) ;and Mes = Alltrim(ThisForm.Text2.value) ;Order By cod_emp INTO CURSOR Tgraf#Define Cap_loc “Vendedores”Select TgrafIf reccount() != 0

Lcdata = “ ” +TAB+Cap_Loc+CRLFScan

Lcdata = Lcdata+Alltrim(STR(cod_emp))Lcdata = Lcdata + TABLcdata = Lcdata + Alltrim(STR(ven_acum)) + CRLF

EndScanSelect T_GraficoAppend General olegraph data LcdataElseMESSAGEBOX(“NO EXISTEN REGISTROS”)

ENDIFUse in Tgraf Cerrar la tabla TGrafThisForm.Refresh()

______________________________________________________________________

CTRL ACTRL W

____________________________________________________________|Año |Mes |Codemp |Nventas |Total Ventas ||--------------------------------------------------------------------------------||2000 |01 |1 |1 |001,000.00 ||2000 |01 |3 |2 |000,500.00 ||2000 |02 |4 |2 |000,500.00 ||2000 |02 |1 |3 |000,700.00 |----------------------------------------------------------------------------------

TGraf

________________________________________________________________

131

Page 132: Clases de VFP

|cod emp |Ventas Acumuladas |codemp |vtas acumuladas||---------------------------------------------------------------------------------------| 2 | 700 | 1 | 7000 || | | 4 | 500 |-----------------------------------------------------------------------------------------

Recno = Registro Actual

Reccount Total de registros

Scan - Endscan Recorre todo los registros del 1º al ultimo

Do While _ Enddo

CRLF Para centrar el titulo

VF5 25 - 09 - 2002HOY HUBO CENTRO DE COMPUTO

VF5 26 - 09 - 2002

HOY HAY EXAMEN

VF5 27 - 09 - 2002

HOY ENTREGA DE TAREA

Lo siguiente se coloca en el Menu del Proyecto y se pone en la salida del menu del proyecto que usted ha escogido.

IF MESSAGEBOX(" ¿ Desea salir de la Aplicacion Dr. ? ",4+32+0," Salir de mi Aplicacion ") = 6

_Screen.Caption = "Microsoft Visual FoxPro"_Screen.Icon = ""_Screen.picture = ""* Reajusta las Definiciones On Key comunes que pueda* haber usado en la aplicacionOn Key Label BACKSPACEOn Key label ENTEROn Key Label SpaceBarOn key label Escape* Desactiva la redireccion de Impresora y archivosSet Alternate OffSet Alternate ToSet Print OffSet console On

132

Page 133: Clases de VFP

* Cierra la Transaccion - trap erroresIf Txnlevel() > 0

RollBackEnd TransactionClose All

Endif* Libera todas las varibales (y objetos)Release All*Desactiva ventanasDeactivate Window AllDeactivate Window DebugDeactivate Window TraceActivate Window Command* Desactiva cualquier menu de la AplicacionSet sysmenu to Defa* Borra MacrosRestore Macros* Limpia EventosClear Events* Cierra todos los Archivos* Close All* Sale de Visual Foxpro Quit

Endif

FIN DEL MODULO

133