Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Visual FoxPro Programacion Multiusuario 1
Visual FoxPro Programacion Multiusuario 1
1
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Edición 1.0
2
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
1. Haga click en el botón Inicio, ubique Programas, luego Microsoft Visual Studio y
finalmente Microsoft Visual FoxPro.
J Conviene crear un acceso directo, para ello haga Clic en el botón derecho del mouse sobre el
escritorio de Windows, luego elija Nuevo y despúes Acceso Directo, finalmente ubique el archivo
VFP6.EXE
3
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
La barra de título
La barra de menús
L Las vías rápidas no funcionan cuando el menú de Visual FoxPro ha sido sustuido por otro, en ese
caso para reponer el menú de Visual FoxPro, puede anotar:
4
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
J Cuando en pantalla tenga mas de dos ventanas, resulta util la vía rápida Ctrl-F1 para alternar entre
éstas ventanas, si desea hacer un salto directo a la ventana de comandos use Ctrl-F2.
La Ventana de Comandos
La usará para ingresar ordenes escritas a Visual FoxPro, al igual que en una
ventana de código, los comandos, variables y constantes de muestran en distintos
colores.
J Puede cambiar el color y fuente usada en la ventana de comandos o en la de código, haciendo click
en el botón derecho en el interior de la ventana y accediendo a la opción Propiedades.
5
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
SET BELL on
SET CENTURY on
SET DECIMAL TO 2
K Siempre que desee averiguar la sintaxis de una orden, seleccione el nombre del comando y pulse la
tecla F1, o use la orden:
HELP comando
6
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
El Administrador de Proyectos
Un proyecto organiza y administra los diversos archivos que compone una
aplicación, estos pueden ser Bases de Datos, Tablas, Indices, Formularios,
Informes, Consultas, etc.
Administrador de Proyectos
1. Vaya al menu Archivo, opción Nuevo, luego señale el tipo de archivo Proyecto y
pulse el botón Nuevo Archivo.
7
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Archivo Bienvenida.PRG
*
* Este es mi primer programa
* Autor: Pepe Coyote
*
_Screen.Caption = "Estoy aprendiendo Visual FoxPro"
_Screen.BackColor = RGB(0,125,125)
@ 0,0 SAY "MiFoto.GIF" BITMAP CENTER
WAIT WINDOW "Pulsa una tecla para proseguir"
CLEAR
4. Para guardar el contenido pulse las teclas Ctrl-W, asígnele el nombre Bienvenida,
entonces de habrá creado el archivo Bienvenida.PRG.
En caso deseara retirar el archivo del Proyecto haga click en el botón Quitar.
J Puede escribir los comandos de forma parcial, como minimo las cuatro primeras letras, por
ejemploda lo mismo escribir:
MODIFY FILE?
MODI FILE?
Aunque no se sugiere aplicarlo, solo le ahorrara pulsar mas teclas, a las finales el producto a distribuir
tendrá el mismo tamaño.
8
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Actividad económica
1. Atención lenta.
3. Control de ingresos manual, por lo que el cierre de caja lleva muchas horas.
9
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
10
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Tablas
Cuando una tabla no está asociada a una Base de Datos se le llama Tabla Libre, el
estar asociada a una Base de Datos, le provee de ciertas propiedades además de
poder consistenciar el ingreso de datos (mediante los desencadenantes).
Relaciones
Vistas
J Puede consultar los criterios que debe tener para Diseñar un modelo de Base de Datos adecuado en
www.LibrosDigitales.NET
11
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Iniciemos creando una carpeta para la aplicación y dentro de ella una destinada
para los componentes de la Base de Datos.
Dado que vamos a acceder a la carpeta Datos para guardar nuestros archivos,
conviene que la establezca como carpeta de trabajo, anote:
Las comillas son necesarias siempre que se usen nombres largos, caso contrario las
puede omitir.
J Hay otra forma de seleccionar una carpeta de trabajo, puede usar la orden
CD?
12
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
La aplicación está compuesta por distintos tipos de archivo, tales como tablas,
bases de datos, indices, formularios, menus, clases, informes, etc.
1. Diríjase al menú Archivo, opción Nuevo y señale Proyecto, luego haga click en
Nuevo archivo.
13
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Creación de Tablas
• Tablas libres
• Tablas asociadas a una Base de Datos
Las tablas libres no están asociadas a una Base de Datos, un ejemplo podría ser la
tabla Parametro, no es necesario incluirla en la Base de Datos, ya que no tiene que
relacionarse con otras tablas.
14
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
J También puede crear tablas libres directamente de la ventana de comandos, haciendo uso del
comando:
CREATE Parametro
15
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Si ha de crear una tabla puede usar el botón Nueva tabla y si va a retirar una tabla
de la Base de Datos simplemente pulse la tecla Delete.
J Puede resultar mas rápido usar el botón derecho del mouse en el Diseñador, el menú emergente que
se despliega muestra las mismas opciones que la caja de herramientas.
16
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Boton Acción
Nueva tabla
Agregar tabla
17
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Una vez agregada la tabla Parametro a la Base de Datos, la tabla Parametro deja
de ser libre y se convierte en una tabla asociada a una Base de Datos.
18
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
19
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Relacionando Tablas
Se puede establecer una relación entre dos tablas de dos formas distintas:
• Relación Persistente
• Relación Temporal
1. Para el análisis tome una pareja de tablas, por ejemplo Articulo y Detalle.
Ambas presentan un campo en común, en este caso el campo IdArticulo.
4. Respecto al nombre de los indices usaremos los prefijos PK para las llaves
primarias y FK para las foráneas seguido del nombre de la tabla.
5. Para indexar la tabla Articulo, haga click derecho sobre ésta en el Diseñador de
Base de Datos, luego elija la opción Modificar.
20
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
8. Una vez indexada las tablas solo resta crear la relación entre éstas. Para crear
la relación sólo debe arrastrar el índice pkArticulo hacia fkArticulo
El siguiente cuadro resume los índices que debe crearse en cada tabla a fin de
poder establecer la relación entre estos:
21
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Una vez indexada cada una de las tablas y establecida las relaciones entre estas, la
Base de Datos debe quedar mas o menos así:
22
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Obtensión de Resultados
Una vez creada la Base de Datos, surge la necesidad de obtener ciertos resultados
a partir de ella, por ejemplo:
23
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Consiste en generar otra tabla a partir de los campos de una de las tablas de la
actual Base de Datos.
Por ejemplo si queremos obtener un archivo que contenga los articulos agotados:
USE Articulo
SORT TO Agotados ON NomArticulo/A, Stock FOR Stock = 0
La tabla generada:
USE Agotados
BROWSE
El ordenamiento por defecto es ascendente, puede ordenar una tabla por uno o dos
campos simultáneamente, uno en forma ascendente y otro de forma descendente.
L Esta instrucción está limitada a crear tablas a partir de una sola tabla, ahora en el diseño de una
aplicación raras veces es necesario generar tablas con resultados, salvo debe exportarse. Las siguientes
tecnicas le serán de mayor provecho.
24
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Los indices los hemos usado en el diseño de la Base de Datos, podemos optimizar
nuestra aplicación si usamos con mejor criterio los indices.
Para usar con criterio los indices debe conocer las caracteristicas de cada uno:
Principal:
crear solo
Pueden ser usadas en tablas asociadas a
uno por
Garantiza la unicidad de los datos en la clave de indice
Puede
tabla
una Base de Datos
Candidato:
Pueden ser usadas en tablas
Normal:
Libres
Solo ordena
Unico:
J Todos los tipos de indice ordenan una tabla según el campo que se haya elegido (clave de indice).
Las caracteristicas propias de cada índice se muestra en el cuadro, algunos están lismitados a ser usados
solo una vez y en determinadas tablas, mientras que otros no.
25
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Es mucho más rápido buscar en una tabla indexada que efectuarla de forma
secuencial (como en el caso del comando LOCATE).
USE Cliente
LOCATE FOR IdCliente = “C0007”
? FOUND()
USE Cliente
SET ORDER TO TAG pkCliente
SEEK “C0007”
? FOUND()
USE Articulo
SET ORDER TO TAG NomArt
SEEK “Teclado”
? FOUND()
26
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
USE Factura
DISPLAY IdFactura, IdCliente FOR IdCliente = “C0007”
Resulta ser lenta cuando en la tabla Factura se tiene unos cien mil registros.
USE Factura
SET ORDER TO TAG pkCliente
SEEK “C0007”
Se supone que despues del primer registro ubicado hay todo un grupo de registros
que corresponden a este código. Así que podemos usar el comando DISPLAY a
partir de la posición del puntero hasta el final, siempre que el resto de registros
tenga por codigo de cliente C0007:
J La clásula WHILE se detiene cuando encuentra un registro que no cumple con la condición.
27
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Uno de tales comandos tiene por función obtener resultados, se trata del comando
SELECT, cuya sintaxis se muestra a continuación:
La forma mas simple considera todos los campos de la tabla para ser vistos:
28
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Selección de campos
Puede elegir los campos que considere necesarios, por ejemplo si desea mostrar
solo el nombre del articulo y su stock:
Este resultado puede estar ordenado por ejemplo según en forma alfabética:
Podemos condicionar la salida, mostrando solo los articulo con stock distinto a cero:
29
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Un cursor representa una tabla temporal de solo lectura. Como cualquier tabla
ocupará un área de trabajo, siempre que quiera acceder al cursor deberá anotar:
SELECT ResArt
BROWSE
SELECT ResArt
USE
En el supuesto que éste resultado deba grabarse en disco a manera de tabla puede
usar el término SAVE
30
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Puede efectuar calculos sobre las columnas, mediante el uso de funciones SQL de
columna.
Por ejemplo podemos calcular el numero de facturas que se han emitido el dia de
hoy:
31
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Operador Comparación
= Igual
== Exactamente igual
LIKE SQL LIKE
<>, !=, # Distinto de
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
Tabla : Operadores SQL
Este operador será usado para establecer comparaciones con expresiones carácter,
se caracteriza por permitir el uso de caracteres comodin:
Comodín Acción
_ (subrayado) Sustituye un carácter
Por ejemplo si quiere obtener una lista de clientes cuyo primer o segundo nombre
sea “Jose”:
SELECT NomCliente
FROM Cliente
WHERE NomCliente LIKE “%JOSE%”
32
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Agrupando resultados
Otra de las operaciones frecuentes corresponde a las agrupar, por ejemplo se desea
obtener la cantidad de facturas emitidas en cada mes.
La orden:
si se desea el total por grupo, hay que identificar primero el campo por el cual se
desea agrupar y despues implementarlo con ayuda de la claúsula GROUP BY:
J Cuando se generan expresiones, Visual FoxPro asigna un nombre a cada columna, podemos
asignarle uno apropiado usando la claúsula AS.
33
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Las vistas pueden crearse mediante el mandato CREATE VIEW. La sintaxis de este
mandato es:
Podemos crear una vista a partir de la tabla Articulo considerando solo los campos
nombre del articulo y stock, ordenado alfabéticamente y stock distinto a cero:
Las vistas cuando son creadas se guardan como un elemento mas de la Base de
Datos, puede veficar:
MODIFY DATABASE
34
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
El Diseñador de Vistas
Tal como se vió en la pagina anterior las vistas se almacenan como un elemento
mas de la Base de Datos. Por tanto podrá utilizarlos como un objeto mas en el
entorno de programación.
• Vistas Locales
Las Vistas Locales se generan a partir de una Base de Datos de Visual FoxPro.
• Vistas Remotas
Las Vistas Remotas se generan a partir de una fuente de datos externa, por
ejemplo una Base de Datos Access, SQL Server, Oracle u otra.
35
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Vistas Locales
MONTH(Factura.Fecha) AS Mes
Detalle.PreVentas*Detalle.Cantidad*0.18 AS IGV
36
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
37
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
4. Puede verse en la ventana examinar que falta agrupar los datos por la columna
Mes y al mismo tiempo sumar el contenido de la columna IGV.
5. Hay un cambio mas que se debe realizar, vaya a la pagina Campos, y corrija la
especificacion de los campos Mes e IGV y agregue el campo nMes:
MONTH(Factura.Fecha) AS nMes
CMONTH(Factura.Fecha) AS Mes
SUM(Detalle.PreVenta*Detalle.Cantidad*0.18) AS IGV
Finalmente ejecute.
Si desea calcular el IGV del año, bastará que desde la Ventana de comandos anote:
USE PCVentas!IGVMensual
SUM IGV TO IGVTotal
? IGVTotal
38
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Vistas parametrizadas
Usando el parámetro:
MONTH(FacDet.Fecha) = ?nMes
J El simbolo de interrogación debe estar junto al parámetro, el dejar un espacio en blanco ocasionará
un error.
nMes = 11
USE PCVentas!VenVentas
BROWSE
39
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Por ejemplo, podemos crear una vista parametrizada a partir de la tabla Cliente,
para actualizar la direccion, el telefono y email.
Tablas Cliente
Campos Cliente.IdCliente
Cliente.NomCliente
Cliente.DirCliente
Cliente.TelCliente
Cliente.Email
40
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
codCliente = "C0023"
USE PCVentas!vCliente
EDIT
Realice algunos cambios, luego pulse Ctrl-W. Para actualizar la tabla deberá cerrar
la vista, mediante el uso de:
SELECT vCliente
USE
41
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Consultas
Tablas Factura
Detalle
42
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
7. El Asistente le pedirá que defina los ejes del gráfico, así que arrastre el campo
Mes de la lista de Campos disponibles hacia el eje X del gráfico, luego arrastre
el campo Total de la lista de Campos disponibles a la lista Serie de datos.
10. En la ventana Vista preliminar del gráfico, puede hacer algunos cambios, por
ejemplo escoger un tipo de letra diferente para los títulos, cambiar de color las
barras, etc. Para acceder a estos objetos en modo de edición haga click derecho
sobre el objeto y escoja la opción Editar o Modificar:
12. Puede abrir el archivo, en modo de edición, hallará un objeto ole, llamado
oChart.
L Si altera los cambios de la tabla Detalle, notará que el gráfico del formulario no se actualiza.
43
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
DO FORM VenMensual
44
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Impresión
El origen de datos
Puede iniciar el diseño de un informe a partir de una tabla o a partir de múltiples
tablas.
Puede diseñar un informe a partir de una tabla, y luego usar el mismo informe con
otra tabla, siempre que especifique en el informe en lugar de “alias.campo” solo
“campo”, por ejemplo en lugar de anotar “clientes.nombres”, anote solo “nombres”,
ya que la tabla puede variar.
45
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
El Generador de Informes
Determine que tablas serán necesarias para solucionar el caso, en nuestro caso
se trata de una sola tabla: Articulo
Catálogo de Precios
2. Configure la pagina
Hay otras bandas adicional, como la banda Título, la banda Resúmen y las
bandas de Grupo, que luego se describirán.
46
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
A continuación fije el alto de cada banda, para mayor precisión puede ayudarse
con la regla guía.
Diseñador de informes
47
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
48
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
3. Diseñe el informe
Puede ver el aspecto del informe, haciendo click derecho sobre el Diseñador de
Informes y eligiendo la opcion Vista preliminar del menu emergente.
Presentación preliminar
Para colocar los titulos, haga uso del control Etiqueta de la barra de
herramientas Controles de Informe.
Diseñando un informe
49
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Por ejemplo para colocar la fecha de impresión, haga uso del control Campo, al
hacer click sobre el Diseñador, se mostrará el diálogo Expresion de informe,
en la region Expresion, puede anotar la funcion DATE().
Diseñando un informe
Puede aplicar un estilo de fuente a uno de los objetos vaya al menu Formato
opcion Fuente.
50
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
4. Imprima el informe
J En quince dias estará disponible la siguiente edición, para que sea posible te agradeceremos
remitirnos tus inquietudes, aportarnos con ideas y por que no soluciones. De ti depende que este libro
mejore en contenido.
www.LibrosDigitales.NET
51
Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP
Próxima Entrega
Edición 1.1
Dentro de una semana
52