View
141
Download
12
Category
Preview:
Citation preview
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
----------------------------------------------------------
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
| _____________ | 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
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
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
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
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
| 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
__________________________ _____________________________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
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
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
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
||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
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
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
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
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
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
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
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
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
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
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
-------------------------
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
| 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
1º
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
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
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
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
: 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
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
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
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
| 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
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
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
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
| | | |-------------------------------------------------------------------------
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
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
--------------------------|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
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
* 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
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
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
__________________________________________| __________________ || 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
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
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
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
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
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
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
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
-------------------------------------------------------------------------------------------------
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
| |-------------------------
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
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
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
Sí
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
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
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
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
*********
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
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
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
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
----------------------------------------------------------------------------------|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
------------------------------------------------------------------------------------------
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
______________________________| || 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
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
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
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
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
| |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
\
_____________________________________________________________________
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
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
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
| -------- | 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
________________________________________________________________| 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
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
------------------------- -------------------------| _____ | |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
| ||------------------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
| -------------- || |--------------------------------------------------
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
\ \ \ \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
| || 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
| ----------------- || |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
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
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
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
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
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
Viñeta datosEncabezado detalle
numero factura numero factura
click derecho propiedades
relacion propiedad One to many
caracteristica
Crea gruposInformeAgrupar datos
110
1.- Entorno de datos
2.- Relacion de los campos
3.- Encabezado de grupo
Diseño que deberia realizar
111
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
______________________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
|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
* 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
Recommended