Professional Documents
Culture Documents
Nuevo
Puede utilizar la barra de herramientas del Diseador para el control de la Base de Datos.
Descripcin de los botones de la Barra de herramientas (Diseador de Base de Datos):
Crear
2.
Definicin de campos:
Igual que en las versiones anteriores, la definicin de campos es igual. Se introduce
el nombre del campo (name) el tipo de datos que soportar (Type) y el tamao. Los
nombres de los campos pueden tener hasta 254 caracteres sin espacios en blanco
Format (Formato): Es el formato de salida del campo, ejemplo si fuera nmerico
9,999.99 o si fuera carcter !!!!!!!!!!!!, para que solo acepte mayusculas
Input mask (Mscara de entrada): Igual que el Format, lo nico que es para la
entrada de datos.
Captin (Ttulo): Descripcin mas precisa del campo, es de utilidad al disear los
Formularios.
c.
d.
La validacin son triggers o eventos que se ejecutan a nivel de campo. Ejemplo: una
validacin de un campo que solo acepte nmeros positivos. (id > 0)
Rule (Regla): Es la regla de validacin, ejemplo: id > 0, si queremos que acepte valores
positivos.
Message(Mensaje): Es el mensaje personalizado que queremos que aparezca en pantalla a
la hora de violarse la regla de validacin del campo. Ejemplo : Solo se aceptan nmeros
positivos (nota: el texto debe escribirse entre comillas).
Default Value : Valor por defecto del campo. (nota: hay que respetar el tipo de dato del
Campo)
Luego de hacer la definicin de los campos, pasamos a la definicin de Indices de la tabla,
que ser muy importante a la hora de crear las relaciones entre las tablas.
Los ndices facilitan la ubicacin en la tabla de un registro especfico as como tambien
determinan el tipo de relaciones que existen entre las tablas
Los ndices pueden ser CDX o IDX:
Los ndices .IDX son ndices compactos se crean: "INDEX ON estado to estado compact"
crea un archivo de ndice llamado estado.cdx. Desafortunadamente si alguna vez abre la
tabla sin el ndice y aade un registro, ste no se actualizar y tendr que ser recreado.
Los ndices .CDX se crean: "INDEX ON estado tag estado" . Estos archivos se abren
automticamente junto con las tablas.
La estructura interna de los IDX y los CDX es diferente.
a.
b.
Introducir el Nombre del archivo ndice. Es conocido tambin como TAG (etiqueta).
c.
Nota: si los campos no son del mismo hay que forzarlos al tipo de dato deseado, ejemplo: si
id es carcter y linea, entoces el nombre de la expresion sera:
Id + STR(linea)
STR() convierte de nmero a carcter y VAL() convierte de carcter a nmerico.
Despus de detallar los ndices, se define los eventos de La validacin a nivel de registro y
los eventos que se ejecuten a la hora de Insertar un registro, de actualizar o borrar.
Visual Foxpro tiene 37.767 espacios de trabajo, llamadas reas de trabajo porque una tabla
deber ser seleccionada para volverla la tabla actual. Cuando se inicia Visual FoxPro el rea
de trabajo es la 1 por omisin. Para abrir una tabla en el rea de trabajo 1 cuando ninguna
otra tabla est abierta, tecleamos en la Ventana de Comandos:
USE nombretabla
No necesariamente debe estar en un rea de trabajo para abrir una tabla puede especificar:
USE nombretabla IN 3
Sin embargo con mas frecuencia se utiliza: USE nombre tabla IN 0 lo que significa
encuentre el rea de trabajo siguiente en la que no se encuentre abierta una tabla y abre
nombretabla ah.
Cuando se utiliza una tabla Visual FoxPro le asigna un alias, un nombre de hasta 10
caracteres con el cual se refiere a ella en el programa, generalmente el alias es el mismo
nombre que el de la tabla
Para crear una tabla desde la Ventana de Comandos: CREATE < nombretabla>
Para modificar una tabla Administrador de Proyectos | Datos | Base de Datos| Tablas |
Seleccionamos la tabla | Modificar.
Desde la Ventana de Comandos: Use tabla | MODIFY ESTRUCTURE
En Visual FoxPro existe la Ventana de comandos sta funge como la ventana de MSDOS
que puede utilizarse desde Windows con la finalidad de permitir utilizar comandos del
lenguaje para ejecutar algunas funciones. Por ejemplo desde Windows desde el explorador
podemos examinar el contenido de un disckette accin que tambin podemos hacer si
abrimos una ventana de MSDOS y tecleamos DIR A:. Es decir a pesar de que se pueden
tener acceso a la mayora de los elementos de Visual FoxPro desde el men muchas veces es
til simplemente teclear un comando.
Para activar la Ventana de Comandos auque ella aparece por defecto en el en el entorno de
trabajo tecleamos Ctrl. F2
Para agregar registros a una tabla : Administrador de Proyectos | Datos | Base de Datos |
Tablas | Seleccionamos la tabla | Examinar y luego en el men Ver | Modo Aadir
Desde la Ventana de Comandos: Teniendo la tabla activa escribimos APPEND.
Para ver los registros de una tabla: Administrador de Proyectos | Datos | Base de Datos |
Tablas | Seleccionamos la tabla | Examinar.
Desde la Ventana de Comandos: teniendo la tabla activa escribimos BROWSE.
En Visual Foxpro los registros de una tabla pueden borrarse lgicamente y fsicamente.
Para borrar lgicamente un registro : Administrador de Proyectos | Base de Datos | Tablas |
Seleccionamos la Tabla | Examinar luego con el ratn hacemos Click en la primera columna
de izquierda a derecha, la columna en la celda seleccionada se colocar de color negro.
Desde la Ventana de Comandos: DELETE (Teniendo seleccionado el registro)
Para ver los registros de una tabla sin que aparezcan los registros borrados lgicamente:
Primero desde la Ventana de Comandos debemos teclear : SET DELETE ON y luego desde
el Administrador de Proyectos | Datos | Base de Datos | Tablas | Examinar .
Tambin desde la Ventana de Comandos con el comando BROWSE
Si queremos incluso los registros borrados lgicamente tecleamos en la Ventana de
Comandos SET DELETE OFF y luego tecleamos BROWSE.
Para desmarcar los registros borrados lgicamente (desde la Ventana de Comandos):
Suponemos que anteriormente haban sido borrados los empleados cuyo sueldo era 15000:
DELETE FOR sueldo=15000
Para desmarcar estos registros : RECALL FOR sueldo=15000
Para borrar fsicamente registros de una tabla primero deben estar borrados lgicamente
Y luego desde la Ventana de Comandos tecleamos el comando PACK, para utilizar este
comando la tabla debe ser abierta en modo exclusivo USE nombretabla EXCLUSIVE .
Algunos comandos para manipular tablas:
List for cedula="12434213" Muestra en el entorno de trabajo la informacion del registro que
cumpla con esta condicin.
List fields cedula,nombre. Muestra en el entorno de trabajo todas las cdulas y nombres de
la tabla seleccionada.
Sum cantidad (suponemos que la tabla activa tiene un campo de tipo numrico llamado
cantidad). Muestra en el entorno de trabajo la suma del campo cantidad de la tabla activa.
Sum cantidad for cantidad>1000 Obtiene la suma de los campos cantidad de los registros
que cumplen con la condicin indicada
Count to Registros for nota>15 (quermos contar los registros de una tabla cuyo campo nota
sea mayor a 15 puntos, guardar este total en una variable llamada Registros ) Si luego
queremos examinar el contenido de la variable Registros tecleamos ?Registros (signo de
interrogacin que cierra y luego el nombre de la variable que queremos examinar)
Comandos SEEK y LOCATE
Los comandos Locate y Seek permiten buscar un registro en particular. Locate funciona en
cualquier campo dentro de una tabla ya sea que est indexada o no Seek da por hecho que la
clave que est buscando encaja con el ndice actual.
Locate for nombre="Luis" La tabla activa posiciona su cursor el registro que cumpla con
esta condicin.
Seek("Luis") ERROR
Set order to nombre (CORRECTO) Primero se debe activar el ndice
Seek("Luis") y luego hacer la bsqueda
La funcin Set filter:
Esta funcin provoca que Visual FoxPro se comporte como si no existieran los registros que
no coinciden con la expresin de filtro, y en las operaciones que se realicen solo se tomarn
en cuenta las registros que cumplen con la condicin del filtro actual.
Set filter to nota=15
Para desactivar un filtro colocamos set filter to y para
Como moverse en una tabla de VFP
Skip mueve el puntero hacia delante un registro
Skip - 1 mueve el puntero hacia tras un registro
Go top mueve el puntero hacia el primer registro de la tabla
Go bottom mueve el puntero hacia el ltimo registro de la tabla.
Go 3 mueve el puntero hacia el registro #3 de la tabla
Operaciones Ciclcas:
Existen una cantidad de mecanismos de ciclos que puede utilizar para moverse a travs de
una tabla. El principal es SCAN
Por ejemplo:
Select Cliente (No hay necesidad de hacer go top)
Scan
Sueldo=sueldo + 5000
Endscan
Las lneas de cdigo entre Scan y Endscan se ejecutarn 1 vez por cada registro de la tabla.
Lo mismo se puede hacer con :
Select Cliente
Go top
Do While not eof()
Sueldo=sueldo+5000
Skip
Enddo
La instruccin FOR:
For i=1 to 10
Cont=cont+1;
endfor
Para eliminar una tabla:
Para eliminar una tabla con los indices principales, valores predeterminados y reglas de
validacin asociadas a la tabla use el comando DROP nombretabla por ejemplo:
Open Database inscripciones
Drop table alumnos
Uso de Funciones:
Str() convierte a String
Val convierte a nmero
Date() devuelve la fecha del sistema
Hoy=Date()
GetDir() Obtiene el directorio por defecto
Cd GetDir
Imprime el da de la semana
?Dow(Date())
Len() Devuelve el nmero de caracteres de una expresin de caracteres
Recno() Obtiene la posicin de un registro
Para cerrar abierta en el rea de trabajo actual utilizamos el comando USE
Uso de Procedimientos y Funciones:
Procedure Nombreprocedure
*Aqu va el cdigo ejecutable
endproc
Function Nombrefuncion
*aqu va el cdigo ejecutable
endfunc
El valor devuelto de forma predeterminada es verdadero (.t.) pero puede utilizarse el
comando Return
Function semanas(dDate)
Return dDate + 14
Endfunc
Si se incluyen los procedimientos y funciones en un archivo de programa disttinto, podr
hacer accesibles estos procedimientos y funciones desde su programa si utiliza el Set
procedure to. Por ejemplo: Si tiene un archivo llamado: FunProc.prg se utiliza el siguiente
comando:
Set Procedure to FunProc.prg
Llamado a un procedimiento o a una fucin:
-Utilizar el Do:
Do Miproc
-Incluir delante del nombre de la funcin un signo (=) e incluir parentesis despues del
nombre de la funcin. Por ejemplo
=Mifuncion()
Envo de valores a un Procedimiento o a una Funcion:
Procedure Nombreprocedimiento(eString)
*La linea siguiente muestra un mensaje
messagebox("Mi proc" + eString)
endproc
El paso de parmetros a una funcin es exactamente igual.
Para invocar a un procedimiento:
Do nombreprocedimiento with parametro
=NombreFuncin(parmetro)
Con mltiples parmetros:
Procedure nombreproc (dDate, eString,Ntimes)
*Codigo ejecutable
endproc
En la llamada: do nombreproc with Date(), "Hola", 10
Comprobacin de Parmetros en un Procedimiento o una funcin
Function Semanas (dDate)
If type("dDate")="D"
Return dDate + 14
Else
Messagebox("Requiere un parmetro de fecha")
Return{} &&Devuelve una fecha vaca
endif
endfunc
Procedure valores (cStore, dDate2, nDatos)
If parameters()<3
Messagebox("No se han pasado suficientes parmetros")
Return .f.
Else
If parameters()=3
*Operar con los parmetros
endif
endif
endproc
Si se especifican dos parmetros pero llam al procedimiento con tres parmetros,
obtendr un mensaje de erros. Pero si un procedimiento espera mas parmetros de los que
recibe, los parmetros adicionales se inicializarn como falso (.F.)
Ejercicio Prctico:
Cree la siguiente base de datos con el nombre de scott.
La figura muestra una relacin entre las tablas regin y departamento, la relacin se leera
as : "Una regin tiene muchos departamentos".
Generacin de integridad referencial
Reglas que rigen la coherencia de datos, especficamente las relaciones entre las claves
principal y externa de claves de tablas distintas. Visual Foxpro Resuelve la Integridad
Referencial mediante reglas a nivel de campo y a nivel de registro definidas por el usuario.
El Generador de la Integridad Referencial le ayuda a definir reglas para controlar
cmo se insertan actualizan o eliminan registros de tablas relacionadas.
Desencadenante: cdigo de evento a nivel de registro que se ejecuta despues de una
insercin, una actualizacin o una eliminacin. Se ocupan para integridad entre las tablas.
El establecimiento de la integridad referencial implica la creacin de un conjunto de reglas
para preservar las relaciones definidas entre las tablas al introducir o eliminar registros.
Si exige la integridad referencial, Visual FoxPro impedir las acciones siguientes:
Agregar registros a una tabla relacionada cuando no haya ningn registro asociado
en la tabla primaria.
Cambiar valores de una tabla primaria cuando tales cambios supongan dejar
registros hurfanos en una tabla relacionada.
La ventana para agregar las tablas, se utiliza para aadir tablas que se van a ocupar en la
instruccin SELECT SQL, en este caso estaramos seleccionando la parte del FROM.
Seleccionemos s_region y luego Agregar. La tabla se agregar, luego le damos cerrar (close).
Ventana de creacin de la vista:
Fields: (Campos) Aqu se seleccionan los campos de la vista (SELECT campos)
Join : Relaciones entre tablas
Filter : Condicin de filtrado (WHERE condicin)
Order by : campos de ordenamiento (ORDER BY)
Group by : campos de Agrupamiento (GROUP BY)
CREACION DE VISTAS REMOTAS:
Una vista remota es una vista que se hace de otra base de datos va ODBC. Esta base de
datos puede ser Access, ORACLE, SQL-SERVER, entre otros.
Crear una vista remota:
Clic en icono para crear vista remotas.
2.
3.
4.
Luego aparece la Ventana de ODBC del controlador que selecciono (En este caso en
de Access)
Escriba el nombre del Data Source (Fuente de datos), Luego seleccione la Base de Dato a la
que hace referencia ( en el boton Select Database)
Luego de haber seleccionado la base de datos, acepte todas las ventanas que aparecieron
anteriormente y detengase en la siguiente ventana:
Luego seleccione de la lista de data source el data source que usted acaba de crear.
Luego presione Aceptar (OK).
Despus le aparece la primera Ventana donde escoge las conexiones, le aparecer la
conexin que usted ha creado.
Nota: Esta conexin que usted a creado servir para sesiones futuras.
b.nombre AS depto
from s_emp a, s_dept b
where a.id = b.dept_id
and b.id > 20 and b.id < 50
seleccionar el nombre del empleado no. del depto, nombre del depto, para los deptos que
comiencen con 4 y ordenados el numero de depto y nombre del empleado desc
select a.nombre AS empleado,
b.id,
b.nombre AS depto
from s_emp a,
s_dept b
where a.id=b.dept_id
and ALLTRIM(STR(b.id)) like '4%'
order by a.nombre asc,
b.id
Seleccionar el nombre del cliente para aquellos empleados que el no del depto sean 30, 40,
41, 42 y el ( salario sea mayor que 1000 o el depto sea 50 )
select a.nombre AS cliente,
b.nombre AS empleado,
b.salario,
b.id,
b.dept_id
from s_customer a,
s_emp b
where a.emp_id=b.id
and b.dept_id IN (30,40,41,42)
and (b.salario > 1000 or b.dept_id='50')
Otra soluccion:
select a.nombre
from s_customer a
where a.emp_id IN (Select id
from s_emp
where dept_id in (30, 40,41,42)
and (salario > 1000 or dept_id=50 )
Seleccionar el nombre del cliente, nombre de region y el salario para todos los empleados
que el salario sean mayor que 100
select a.nombre AS empleado,
b.nombre AS depto,
a.salario
from s_emp a,
s_dept b
where a.dept_id=b.id
and a.salario > 100
Funciones de grupos
salarios minimos y maximos de los empleados
select max(salario) sal_max,
min(salario) sal_min
from s_emp
Suma, maximo, minimo salario por Departamento
select dept_id,
sum(salario),
max(salario),
min(salario)
from s_emp
group by dept_id
*--select dept_id,
count(dept_id)
from s_emp
group by dept_id
having dept_id > 20
*--select dept_id,
sum(salario)
from s_emp
group by dept_id
having sum(salario) between 2000 and 4000
*--select avg(salario),
min(salario),
max(salario),
sum(salario)
from s_emp
where UPPER(title) like 'SALES%'
*--select count(nombre),
dept_id
from s_emp
where dept_id=31
group by dept_id
SELECT COUNT(ID),
DEPT_ID
FROM S_EMP
GROUP BY DEPT_ID
SELECT COUNT(ID),
CREDIT_RATING
FROM S_CUSTOMER
GROUP BY CREDIT_RATING
*---SELECT SUM(SALARIO), CARGO
FROM S_EMP
WHERE upper(TITLE) NOT LIKE 'VP%'
GROUP BY CARGO
*---SELECT SUM(SALARIO), TITLE
FROM S_EMP
GROUP BY TITLE
*---SELECT TITLE, SUM(SALARIO)
FROM S_EMP
WHERE UPPER(TITLE) NOT LIKE 'VP%'
GROUP BY TITLE
HAVING SUM(SALARIO)> 5000
*---Formularios Sencillos
Un Formulario Sencillo, es el que es realizado generalmente utilizando una sola tabla.
Un ejemplo tpico de formularios sencillos son las pantallas de los catlogos de un Sistema,
que solamente tienen la funcin de registrar, modificar, eliminar y consultar datos de una
tabla.
Por ejemplo vamos a construir una forma sencilla utilizando el Wizard de Visual Foxpro:
1.
Abra su proyecto
2.
3.
4.
Seleccione Wizard.
5.
6.
Luego aparece la ventana donde usted escoge la tabla a utilizar y los campos de esa
tabla.
7.
Una vez seleccionado la tabla y sus respectivos campos, presiones prximo (Next).
8.
Abra su proyecto
2.
3.
4.
5.
6. Seleccione las tablas s_region, que ser el maestro y luego la tabla s_dept que ser
nuestro detalle.
7. Arrastre uno por uno los campos de la tabla s_region a su forma, de tal manera que
queden asi:
1.
Ahora vamos a modificar las propiedades del Grid que hemos insertado:
seleccionan el grid, botn derecho del ratn y luego propiedades. Se sitan en la
pestaa datos, para modificar las siguientes propiedades con el fin de establecer la
relacin entre las dos tablas:
endif
thisform.incluir.caption="incluir"
thisform.salir.caption="Salir"
thisform.text2.enabled=.f.
thisform.text3.enabled=.f.
thisform.text4.enabled=.f.
endif
thisform.refresh
Boton Modificar:
if thisform.modificar.caption="Modificar"
thisform.text1.enabled=.f.
thisform.text2.enabled=.t.
thisform.text3.enabled=.t.
thisform.text4.enabled=.t.
thisform.modificar.caption="Guardar"
thisform.salir.caption="Cnacelar"
else
gather memvar
thisform.text1.enabled=.t.
thisform.text2.enabled=.f.
thisform.text3.enabled=.f.
thisform.text4.enabled=.f.
thisform.modificar.caption="Modificar"
thisform.salir.caption="Salir"
endif
Boton Eliminar
(Recuerden que en la ayuda de Visual FoxPro est la informacin de la aplicacin de la
funcin y/o procedimiento Messagebox)
if messagebox("Esta seguro que desea eliminar este cliente",36,"Confirmacion")=6
(Implementada como funcin)
delete
pack
messagebox("El registro fue eliminado",0,"Aviso")
(implementada como procedimiento)
scatter memvar blank
endif
thisform.refresh
Boton Salir:
if thisform.incluir.caption="Guardar"
thisform.text2.enabled=.f.
thisform.text3.enabled=.f.
thisform.text4.enabled=.f.
thisform.incluir.caption="Incluir"
thisform.Salir.caption="Salir"
else
if thisform.modificar.caption="Guardar"
thisform.text1.enabled=.t.
thisform.text2.enabled=.f.
thisform.text3.enabled=.f.
thisform.text4.enabled=.f.
thisform.modificar.caption="Modificar"
thisform.Salir.caption="Salir"
else
thisform.release
endif
endif
Boton Primero:
go top
m.codigo=clientes.codigo
m.nombre=clientes.nombre
m.telefono=clientes.telefono
m.direccion=clientes.direccion
thisform.refresh
Boton Ultimo:
go bottom
m.codigo=clientes.codigo
m.nombre=clientes.nombre
m.telefono=clientes.telefono
m.direccion=clientes.direccion
thisform.refresh
Boton Siguiente
if eof()
thisform.siguiente.enabled=.f.
go bottom
m.codigo=clientes.codigo
m.nombre=clientes.nombre
m.telefono=clientes.telefono
m.direccion=clientes.direccin
frmactcliente.refresh
else
skip 1
m.codigo=clientes.codigo
m.nombre=clientes.nombre
m.telefono=clientes.telefono
m.direccion=clientes.direccion
if thisform.anterior.enabled=.f.
thisform.anterior.enabled=.t.
endif
endif
thisform.refresh
Boton Anterior
if bof()
thisform.anterior.enabled=.f.
go top
else
skip -1
if thisform.siguiente.enabled=.f.
thisform.siguiente.enabled=.t.
endif
endif
m.codigo=clientes.codigo
m.nombre=clientes.nombre
m.telefono=clientes.telefono
m.direccion=clientes.direccion
thisform.refresh
Creacin de Clases de Objetos
En Visual Foxpro se pueden crear clases de objetos que pueden de uso muy comn, como
por ejemplo el botn salir es muy comun en todas las pantallas.
Pasos para creacin de clases:
1.
Abra su proyecto
2.
3.
4.
Introduzca el nombre de la clase, el tipo de clase (en este caso Boton de comando) y
guardarlo como curso.
5.
6.
7.
1.
2. presione el botn de ver clases y luego agregar (Add) y seleccione la clase que usted
a creado.
2.
3.
4.
En clase se implement una clase basada en la clase TextBox que cambia el color de fondo y
el color de la letra del Textbox cuando el texbox obtiene o pierde el focus ( utilizando los
procedimientos LosFocus y GotFocus) de esta manera el usuario identifica mas facilmente
el texbox activo
Cdigo del Procedimiento LostFocus de la clase TxtColor (obtenel el focus)
This.backcolor=rgb(0,0,255) (color de fondo azul)
This.forecolor=rgb(255,255,255) (color de las letras blancas)
Cdigo del Procedimiento GosFocus del la clase TextColor (perder el focus)
This.backcolor=rgb(255,255,255) (color de fondo blanca)
This.forecolor=rgb(0,0,0) (color de las letras negras)
Soporte de Tecnologa ActiveX
Cuando usted instala Visual Foxpro, se instalan una serie de controles ActiveX soportados
por Visual Foxpro.
Un ActiveX, no es ms que un control externo, es parecido a una clase ya que las clases se
pueden guardar en un archivo (extensin VCX) y los ActiveX tienen extensin OCX. La
diferencia es que los VCX solo puede ocuparse en Visual Foxpro, mientras que los OCX se
consideran como tecnologa abierta, es decir, pueden ser utilizado por cualquier lenguaje
visual como Visual C++ o Visual Basic, por mencionar algunos.
Estos controles ActiveX, vienen hechos de fabrica, son comercializables y no son
modificables, sin embargo uno puede crear sus propios OCX. Los lenguajes donde se
pueden construir estos OCX actualmente son Visual C++ y Visual Basic. En visual Foxpro
5.0 usted no puede crear OCX.
Hay que tener mucho cuidado a la hora de comprar un OCX y verificar que lenguajes
soporta, por que algunos OCX no son soportados por algunos lenguajes visuales incluso con
Visual Foxpro.
Cmo hacer uso de los ActiveX en Visual Foxpro:
Un OCX es un objeto por lo cual tiene propiedades y eventos implcitos en l.
En el curso, utilizaremos dos Controles ActiveX :
OutLine control
OutLine control:
2.
3.
4.
5. Vamos a crear una forma maestro detalle utilizando el Outline Control. El Outline control
presentar la informacin de las Regiones y vamos a agregar un Grid que sern los
departamentos, Algo asi:
Click
El ltimo paso es agregar el Grid con la tabla departamentos y luego establecer la relacin
con la tabla de regiones.
Progress Bar Control:
Este control permite hacer una barra de progreso:
Propiedades :
Propiedad
Max
Min
Value
2.
3.
4.
Region 2
Departamento x
Departamento y
-------------------------------- Matriciales o consolidados
-------------------------------------------Rating
Region Excellent Good Poor
-------------------------------------------Region 1 1 2 0
Region 2 3 0 1
-------------------------------------------Totales 4 2 1
-------------------------------------------Creacin de Informes usando el entorno de datos:
1. En el administrador de proyectos, seleccione la ficha Documentos.
2. Seleccione Informes
3. Pulse el botn nuevo
4. Pulse el botn nuevo informe.
Aparece el generador de informes y al barra de herramientas Controles de informes.
5. Seleccione Entorno de datos y seleccione la tabla
6. Arrastre los campos a utilizar del entorno de datos en el informe en la parte de detalle
7. Introduzca los encabezados del reporte
Men de Reportes
Titulo/Sumario (Title/Summary):
Muestra el rea del Titulo y el Sumario del Informe
Titulo : Aparece solo en la primera pagina del Reporte
Sumario : Aparece solo en la ultima pagina del Reporte
Aparece la pgina otros con las categoras de archivo de Mens, Texto y Otros.
2.
3.
4.
4. Introduzca las opciones del menu y luego el resultado del men ( submenu, comando o
procedimiento)
5. A la derecha del resultado se encuentra la opcin crear o modificar segn el caso. ( crea o
modificar los resultados de la opcin del menu).
Tipos de Resultados :
Submenu : Si el men contiene un submenu
Comando : Si la opcin de ese men invoca un comando (Ejemplo: DO FORM
Regiones, para llamar un formulario;
CLEAR EVENT, por lo general va en la opcin Salir)
Procedimiento : Si la opcin de ese men invoca varias lneas de comandos ( un
procedimiento).
Opciones de Men:
2.
3.
4.
Luego se le pide que proporcione el archivo de salida del menu ( escoja la ruta y el
nombre del archivo, por lo general son extension MPR) y luego seleccione generar.
Si existe ya el archivo se le pide si desea re-escribirlo ( seleccione que si)
Primero se tiene que crear un programa de inicio, al cual se le tiene que decir que ese es el
programa que se ejecutara de primero ( esto se hace haciendo clic derecho en el programa
que designemos como principal y escoger la opcin main ( principal) del men de opciones)
Contenido Ejemplo del programa principal:
CLEAR ALL
* Variables Publicas
PUBLIC w_Output, g_ao, gid_area, g_nivel, g_cambio, g_login_entry ;
,g_pass_entry, V_MENU_PRE, V_ERROR, g_acceso
* Definicion de Ventana para los Reportes
DEFINE WINDOW w_Output ;
FROM 0,0 TO 25,70 ;
TITLE 'Informes - BCN' ;
CLOSE FLOAT GROW ZOOM SYSTEM
* Ambiente
SET SYSMENU TO
SET ECHO OFF
SET TALK OFF
SET CENTURY ON
SET CLOCK STATUS
SET DATE brit
SET DELETE ON
SET PATH TO formenu,bmp,prg,data
SET EXCLUSIVE OFF
SET SAFETY OFF
SET REFRESH TO 5
SET REPROCESS TO AUTOMATIC
SET MULTILOCK ON
SET LOCK OFF
SET PROCEDURE TO .\prg\utility
* Fondo de la Pantalla principal
_SCREEN.Picture=".\bmp\fondo.bmp"
_SCREEN.WINDOWSTATE=2
_SCREEN.CLOSABLE=.F.
_SCREEN.CAPTION="Formulacin Presupuestaria"
* Base de Datos
OPEN DATA .\SCOTT\scott SHARED
* Llamada al Menu
DO .\menu\menu.mpr
READ EVENT
CLEAR ALL
SET SYSMENU TO DEFAULT
Creacin del Ejecutable