Sie sind auf Seite 1von 79

INSTITUTO SUPERIOR TECNOLGICO

NORBERT WIENER
ASIGNATURA: Lenguaje de
Programacin III (Visual Fox Pro)
PROGRAMA: S3C
2
Manual del Alumno
Lima-Per
3
Manual del Alumno
II Diseo del Repositorio de Datos en Visual Foxpro
CREACION DE LA BASE DE DATOS
1. Ubiquese en el folder Data y luego en Databases y presione el botn New
La ventana del Database Designer aparecer :
Puede ocupar el toolbar Database Designer para el control de la Base de Datos.
4
Manual del Alumno
Desripi!n de los botones del toolbar"
Crear una nueva tabla.
gregar una tabla e!istente
"li#inar una tabla seleccionada
$odificar una tabla seleccionada
Creacin de %istas re#otas
Creacin de %istas locales
"ditar Procedi#ientos al#acenados en la Base de Datos
Creacin de Cone!iones con vistas re#otas
"!a#inar el contenido la tabla &B'()*"+
5
Manual del Alumno
Crear una nue#a tabla"
1. Clic, en el boton de -ueva tabla. aparecera la ventana -e/ 0able
1. *e selecciona New Table. luego aparece la ventana de guardar el arc2ivo.
seleccione el directorio y el no#bre de la tabla y luego presione el boton de sal#ar.
6
Manual del Alumno
La ventana de Table desi$ner aparecera en pantalla:
"sta es la parte #as i#portante de la tabla. es aqu3 donde se define la estructura de
datos que contendr dic2a tabla. "l pri#er paso es definir los ca#pos. tipos. ta#a4o.
5or#ato y 'eglas de validacin en el foder de Fields.
a. Definicin de ca#pos :
6gual que en las versiones anteriores. la definicin de ca#pos es igual. *e introduce el
no#bre del ca#po &na%e+ el tipo de datos que soportar &T&pe+ y el ta#a4o.
Definici
n de
campos
Tipos de
Datos
Definici
n del
Formato
de
Entrada
Definici
n de
reglas de
validaci
n de los
campos

Manual del Alumno
b. Definicin del Display
For%at : "s el for#ato de salida del ca#po. e7e#plo si fuera n8#erico 9.999.99 o si
fuera carcter ::::::::::::. para que solo acepte #ayusculas
Input %as' : 6gual que el 5or#at. lo 8nico que es para la entrada de datos.
Capti!n : Descripcin #as precisa del ca#po. es de utilidad al dise4ar los
5or#ularios.
c. Definicin de reglas de validacin a nivel de ca#po
La validacin son triggers o eventos que se e7ecutan a nivel de ca#po. "7e#plo: una
validacin de un ca#po que solo acepte n8#eros positivos. &id ; <+
Rule : "s la regla de validacin. e7e#plo: id ; <. si quere#os que acepte valores
positivos.
(essa$e: "s el #ensa7e personali=ado que quere#os que apare=ca en pantalla a la
2ora de violarse la regla de validacin del ca#po. "7e#plo : >*olo se aceptan n8#eros
positivos? &nota: el te!to debe escribirse entre co#illas+.
De)ault Value : %alor por defecto del ca#po. &nota: 2ay que respetar el tipo de dato
del
Ca#po+
Luego de 2acer la deficion de los ca#pos. pasa#os a la definicion de 6ndices de la
tabla. que ser #uy i#portante a la 2ora de crear las relaciones entre las tablas.
!om"re del
#ndice
Tipo de
$ndice
!om"re del o los
campos %&e
componen el indice
'
Manual del Alumno
a. -o#bre del 6ndice &na%e+
6ntroducir el -o#bre del arc2ivo 3ndice. "s conocido ta#bi@n co#o 0A.
b. T&pe & tipo de 6ndice+
Pri#ary : Llave pri#aria.
Candidate : Llave candidata
Unique : Llave 8nica.
'egular : Llave fornea.
c. -o#bre de la "!presin
-o#bre de los ca#pos que confor#an la llave pri#aria:
"7e#plo : id. o si son varios ca#pos : id B linea
-ota: si los ca#pos no son del #is#o 2ay que for=arlos al tipo de dato deseado.
e7e#plo: si id es carcter y linea. entoces el no#bre de la e!presion ser3a:
Id * STR+linea,
*0'&+ convierte de n8#ero a carcter y %L&+ convierte de carcter a n8#erico.
Despu@s de detallar los 3ndices. se define los eventos de La validacin a nivel de
registro y los eventos que se e7ecuten a la 2ora de 6nsertar un registro. de actuali=ar o
borrar.
(
Manual del Alumno
E-eriio .r/tio"
Cree la siguiente base de datos con el no#bre de sott.
RELACIONES ENTRE TABLAS:
)*
Manual del Alumno
Las relaciones #as co#unes entre tablas se definen :
De uno a uno : "7e#plo de una llave pri#aria a otra llave pri#aria
De uno a %u0os : "7e#plo de una llave pri#aria a una 'egular o 5ornea.
Las relaciones entre tablas se crean arrastrando la llave de la tabla a la llave de otra
tabla.
La figura #uestra una relacin entre las tablas regin y departa#ento. la relacin
se leer3a as3 : CUna regin tiene #uc2os departa#entosD.
+elacin entre
ta"las
,de &no a m&c-os.
))
Manual del Alumno
Aeneracin de integridad referencial
'eglas que rigen la co2erencia de datos. espec3fica#ente las relaciones entre las
claves principal y e!terna de claves de tablas distintas. %isual 5o!pro 'esuelve la
6ntegridad 'eferencial #ediante reglas a nivel de ca#po y a nivel de registro
definidas por el usuario1 El 2enerador de la Inte$ridad Re)erenial le ayuda a
definir reglas para controlar c#o se insertan actuali=an o eli#inan registros de
tablas relacionadas.
Desenadenante: cdigo de evento a nivel de registro que se e7ecuta despues de
una insercin. una actuali=acin o una eli#inacin. *e ocupan para integridad
entre las tablas.
"l estableci#iento de la integridad referencial i#plica la creacin de un con7unto de
reglas para preservar las relaciones definidas entre las tablas al introducir o
eli#inar registros.
*i e!ige la integridad referencial. %isual 5o!Pro i#pedir las acciones siguientes:
E gregar registros a una tabla relacionada cuando no 2aya ning8n registro
asociado en la tabla pri#aria.
E Ca#biar valores de una tabla pri#aria cuando tales ca#bios supongan de7ar
registros 2u@rfanos en una tabla relacionada.
E "li#inar registros de una tabla pri#aria cuando tengan registros relacionados
coincidentes.
*i lo desea. puede escribir sus propios desencadenantes y procedi#ientos
al#acenados para e!igir la integridad referencial. *in e#bargo. el Aenerador de
integridad referencial &6'+ de %isual 5o!Pro per#ite deter#inar los tipos de reglas
que desea e!igir. las tablas a las que desea e!igirlas y los eventos del siste#a que
2arn que %isual 5o!Pro las co#pruebe.
"l Aenerador de 6' trata #8ltiples niveles de eli#inaciones y actuali=aciones en
cascada. y es reco#endable co#o 2erra#ienta para asegurar la integridad
referencial.
.ara abrir el 2enerador de IR
3 bra el Diseador de bases de datos.
4 "n el #en8 Base de datos. eli7a Editar inte$ridad re)erenial.
l utili=ar el Aenerador de 6' para crear reglas que se van a aplicar a la base de
datos. %isual 5o!Pro guarda el cdigo generado para e!igir las reglas de integridad
referencial co#o desencadenantes que 2acen referencia a procedi#ientos
al#acenados. Para ver este cdigo puede abrir el editor de te!to de
procedi#ientos al#acenados en la base de datos. *i desea infor#acin sobre la
for#a de crear desencadenantes por progra#a. consulte Uso de desencadenantes
en el cap3tulo F. 0raba7o con tablas.
.reaui!n Cuando 2aga ca#bios en el dise4o de una base de datos5 co#o
#odificaciones en sus tablas o alteraciones en los 3ndices utili=ados en una
)2
Manual del Alumno
relacin persistente5 debe volver a e7ecutar el Aenerador de 6' antes de utili=ar de
nuevo la base de datos. De esta for#a se revisarn el cdigo de procedi#iento
al#acenado y los desencadenantes utili=ados para e!igir la integridad referencial.
de for#a que refle7en el nuevo dise4o. *i no vuelve a e7ecutar el Aenerador de '6.
puede que obtenga resultados inesperados. ya que no se 2abrn actuali=ado los
procedi#ientos al#acenados y los desencadenantes para a7ustarlos a las
#odificaciones.
El 2enerador IR se %uestra uando"
Gace doble clic en una l3nea de relacin entre dos tablas del Diseador de bases de
datos y elige el botn Inte$ridad Re)erenial en el cuadro de dilogo Editar relai!n.
"lige Inte$ridad re)erenial en el #en8 conte!tual del Diseador de bases de datos.
"lige Editar inte$ridad re)erenial en el #en8 Base de datos.
Fi0as del $enerador
Re$las para la atuali6ai!n "specifica reglas para aplicar cuando se #odifica el valor
clave de la tabla pri#aria.
Re$las para la eli%inai!n "specifica las reglas que se aplican cuando se eli#ina un
registro de la tabla pri#aria.
Re$las para insertar "specifica las reglas que se aplican cuando se inserta un nuevo
registro o cuando se actuali=a un registro e!istente en la tabla secundaria.
)3
Manual del Alumno
VISTAS LOCALES:
HIu@ es una vistaJ
Una vista es un ob7eto que se crea e#pleando la instruccin *"L"C0 de *IL para
bases de datos relacionales. Las vistas pueden ser locales o 'e#otas
SELECT ca#pos
FRO( tablas
78ERE condicion
2RO9. BK ca#pos de agrupa#iento
ORDER BK ca#pos de ordena#iento
"7e#plo:
*"L"C0 id. na#e
5'($ sLregion
('D"' BK na#e
Creacin de una vista local.
Clic en el botn para crear vistas locales.
La ventana para agregar las tablas. se utili=a para a4adir tablas que se van a ocupar
en la instruccin *"L"C0 M *IL. en este caso estar3a#os seleccionando la parte del
5'($. *eleccione#os sLregion y luego gregar. La tabla se agregar. luego le
da#os cerrar &close+.
/gregar
&na ta"la
0er el
comando
12L
Eliminar
ta"la
/gregar
&na
relacin
)4
Manual del Alumno
Ventana de reai!n de la #ista"
Fields" &Ca#pos+ qu3 se seleccionan los ca#pos de la vista &*"L"C0 ca#pos+
:oin : 'elaciones entre tablas
Filter : Condicin de filtrado &)G"'" condicin+
Order b& : ca#pos de ordena#iento &('D"' BK+
2roup b& : ca#pos de grupa#iento &A'(UP BK+
CREACION DE VISTAS RE(OTAS"
Una vista re#ota es una vista que se 2ace de otra base de datos v3a (DBC. "sta base
de datos puede ser ccess. ('CL". *ILN*"'%"'. entre otros.
)5
Manual del Alumno
Crear una vista re#ota:
Clic en icono para crear vista re#otas.
"scoger -ueva %ista &New View+
*i no a creado una onexi!n es necesario crear en New. si ya esta creada seleccione
la cone!in y luego O;.
HCo#o crear una cone!inJ
*i no 2a creado la cone!in seleccione New
)6
Manual del Alumno
*iga estos pasos cuidadosa#ente:
1. *eleccione New Data Soure &-ueva 5uente de Datos+ y aparecer la
configuracin del (DBC:
1. "n el folder 9ser DSN Presione el botn Add &gregar+
)
Manual del Alumno
O. "sco7a de la ventana el Controlador deseado. "7e#plo: (iroso)t Aess Dri#er
+<1%db, y luego el botn Finali6ar.
P. Luego aparece la %entana de (DBC del controlador que selecciono &"n este caso
en de ccess+
"scriba el no#bre del Data *ource &5uente de datos+. Luego seleccione la Base de
Dato a la que 2ace referencia & en el boton *elect Database+
)'
Manual del Alumno
Luego de 2aber seleccionado la base de datos. acepte todas las ventanas que
aparecieron anterior#ente y detengase en la siguiente ventana:
Luego seleccione de la lista de data source el data source que usted acaba de crear.
Luego presione ceptar &(Q+.
Despu@s le aparece la pri#era %entana donde escoge las cone!iones. le aparecer la
cone!in que usted 2a creado.
-ota: "sta cone!in que usted a creado servir para sesiones futuras.
Seleccin de la lista el Data
Souce !ue "a ceado
)(
Manual del Alumno
*eleccione la cone!in creada y luego Aeptar &(Q+
Luego le aparecer la ventana donde usted escoge las tablas que utili=ar:
Luego aparecer la ventana donde se dise4a la vista:
2*
Manual del Alumno
"l procedi#iento para crear la vista es igual a la creacin de vista Locales.
Consultas a la BD usando SELECT=S>L
*"L"C0 N *IL usando dos o #as tablas:
2)
Manual del Alumno
Sintaxis :
*"L"C0 alias1.ca#po1
.alias2.ca#po1
.alias3.ca#poO
5'($ tabla3 alias1
.tabla4 alias2
.tabla? alias3
)G"'" alias1.ca#po1 R alias2.ca#po1
alias1.ca#po1 R alias2.ca#poO
E-e%plo :
Un e7e#plo sencillo: si quere#os listar el no%bre del e%pleado. el id del
departa%ento. y el no%bre del departa%ento al que pertenece el e#pleado
la query ser3a:
*"L"C0 A.no#bre * e#pleado
.A.deptLid
.B.no#bre * depto
5'($ sLe#p A
.sLdept B
)G"'" A.id R B.regionLid
22
Manual del Alumno
E-eriios :
*eleccionar el -o. depto. apellido. salario y cargo para los e#pleados que
ganen #as de 1<< y el departa#ento este en P1. 1< y S<
select dept_id
,nombre
,salario
,cargo
from s_emp
where salario > 100
and dept_id IN (41,10,50)
seleccionar el apellido. del e#pleado. id del depto. y el no#bre del depto.
select a.nombre ! empleado
,b.id
,b.nombre ! depto
from s_emp a
,s_dept b
where a.id " b.dept_id
*eleccionar el apellido del e#pleado. no del depto. el no#bre deldepto para los depto
que esten entre 1< y S< sin incluirlos.
select a.nombre ! empleado,
b.id,
b.nombre ! depto
from s_emp a, s_dept b
where a.id " b.dept_id
and b.id > #0 and b.id $ 50
seleccionar el no#bre del e#pleado no. del depto. no#bre del depto. para los deptos
que co#iencen con P y ordenados el nu#ero de depto y no#bre del e#pleado desc
select a.nombre ! empleado,
b.id,
b.nombre ! depto
from s_emp a,
s_dept b
where a.id"b.dept_id
and %%&'I((!&'(b.id)) li)e *4+*
order b, a.nombre asc,
b.id
23
Manual del Alumno
*eleccionar el no#bre del cliente para aquellos e#pleados que el no del depto sean
O<. P<. P1. P1 y el & salario sea #ayor que 1<<< o el depto sea S< +
select a.nombre ! cliente,
b.nombre ! empleado,
b.salario,
b.id,
b.dept_id
from s_c-stomer a,
s_emp b
where a.emp_id"b.id
and b.dept_id IN (.0,40,41,4#)
and (b.salario > 1000 or b.dept_id"*50*)
(tra soluccion:
select a.nombre
from s_c-stomer a
where a.emp_id IN (!elect id
from s_emp
where dept_id in (.0, 40,41,4#)
and (salario > 1000 or dept_id"50 )
*eleccionar el no#bre del cliente. no#bre de region y el salario para todos los
e#pleados que el salario sean #ayor que 1<<
select a.nombre ! empleado,
b.nombre ! depto,
a.salario
from s_emp a,
s_dept b
where a.dept_id"b.id
and a.salario > 100
Funiones de $rupos
salarios #ini#os y #a!i#os de los e#pleados
select ma/(salario) sal_ma/,
min(salario) sal_min
from s_emp
24
Manual del Alumno
*u#a. #a!i#o. #ini#o salario por Departa#ento
select dept_id,
s-m(salario),
ma/(salario),
min(salario)
from s_emp
gro-p b, dept_id
3---
select dept_id,
co-nt(dept_id)
from s_emp
gro-p b, dept_id
ha0ing dept_id > #0
3---
select dept_id,
s-m(salario)
from s_emp
gro-p b, dept_id
ha0ing s-m(salario) between #000 and 4000
3---
select a0g(salario),
min(salario),
ma/(salario),
s-m(salario)
from s_emp
where 1223'(title) li)e *!%3!+*
3---
select co-nt(nombre),
dept_id
from s_emp
where dept_id".1
gro-p b, dept_id
!3%34& 451N&(I6),
632&_I6
7'5( !_3(2
8'512 9: 632&_I6
!3%34& 451N&(I6),
4'36I&_'&IN8
25
Manual del Alumno
7'5( !_41!&5(3'
8'512 9: 4'36I&_'&IN8
3----
!3%34& !1((!%'I5), 4'85
7'5( !_3(2
;<3'3 -pper(&I&%3) N5& %I=3 *>2+*
8'512 9: 4'85
3----
!3%34& !1((!%'I5), &I&%3
7'5( !_3(2
8'512 9: &I&%3
3----
!3%34& &I&%3, !1((!%'I5)
7'5( !_3(2
;<3'3 1223'(&I&%3) N5& %I=3 *>2+*
8'512 9: &I&%3
<>IN8 !1((!%'I5)> 5000
3----
26
Manual del Alumno
.ro$ra%ai!n (ultiusuario"
"n la progra#acin #ultiusuario 2ay que tener #uy en cuenta el control de la
=ona critica. "n %isual 5o!pro. esto se puede 2acer uto#atica#ente o
$anual#ente.
"n la for#a uto#tica. 5o! controla la =ona critica con los enllava#ientos
auto#ticos. lo que nos a2orra tie#po ya que no tene#os que preocuparnos
por ello. & esta es la for#a que utili=are#os +
HIu@ se requiereJ
*e requiere algunas definir variables de a#biente en el progra#a principal de
nuestro *iste#a:
T Definicion de para #biente 'ed
*"0 "UCLU*6%" (55 bre las tablas en #odo co#partido
*"0 $UL06L(CQ* (- Para que se puedan bloquear #as de un registro
*"0 D"L"0" (- Para que los registros #arcados no se vi=ualicen
*"0 '"5'"*G 0( S 'efresca#iento cada S segundos en el Bro/se
*"0 '"P'(C"** 0( U0($06C *i un registro esta bloqueado o enllavado
5o! intenta acuali=arlo 2asta que uno
presione
esc
TSET REPROCESS TO 5 SECONDS *i despues de S segundos no puede
actuali=arlo
5o! #anda un error.
T (tro #biente
*"0 "CG( (55
*"0 0LQ (55
*"0 C"-0U'K (-
*"0 CL(CQ *00U*
*"0 D0" B'60
*"0 P0G 0( #enu.for#s.b#p.prg.data
*"0 *5"0K (55
*"0 P'(C"DU'" 0( .VprgVutility
2
Manual del Alumno
9sando el Bu))er on las tablas1
Buffer (pti#ista: Dos usuarios pueden estar #odificando el registro sin ning8n
proble#a.
Pesi#ista : *olo un usuario puede estar #odificando el registro.
@C!%o )i-ar el Bu))erA
T *et buffering #ode and store logical result
l*uccess R C9RSORSET.RO.&WBufferingW. B. Wcusto#erW+
65 l*uccess R .0.
R$"**A"B(U&W(peration successful:W.<.W(peration *tatusW+
"L*"
R$"**A"B(U&W(peration -(0 successful:W.<.W(peration *tatusW+
"-D65
Con el buffer activado pode#os 2acer uso de los co#andos :
0BL"'"%"'0&.0.+
0BL"UPD0"&.0.+
Tipos de Buffer
1 M -o utili=ar el buffer
1 M Pessi#istic ro/ buffering on.
O M (pti#istic ro/ buffering on.
P M Pessi#istic table buffering on.
S M (pti#istic table buffering on.
2'
Manual del Alumno
TABLE9.DATE+1T1,
Araba los ca#bios 2ec2os en la tabla.
!3& (1%&I%54=! 5N ?? (-st be on for table b-ffering
" 41'!5'!3&2'52(*9-ffering*, 5, *emplo,ee* ) ?? 3nable table
b-ffering
IN!3'& IN&5 emplo,ee (c%astName) >%13! (*!mith*)
4%3'
@ *5riginal c%astName 0al-eA *
@@ c%astName ?? 6ispla,s c-rrent c%astName 0al-e (!mith)
'32%43 c%astName ;I&< *Bones*
@ *New c%astName 0al-eA *
@@ c%astName ?? 6ispla,s new c%astName 0al-e (Bones)
" &9%3126&3(.&.) ?? 4ommits changes
@ *1pdated c%astName 0al-eA *
@@ c%astName ?? 6ispla,s c-rrent c%astName 0al-e (Bones)
TABLEREVERT+1t1,
Cancela los ca#bios 2ec2os a la tabla
1!3 4-stomer ?? 5pen c-stomer table
" 41'!5'!3&2'52(*9-ffering*, 5, *c-stomer*) ?? 3nable table
b-ffering
4%3'
@ *5riginal c-st_id 0al-eA *
@@ c-st_id ?? 6ispla,s c-rrent c-st_id 0al-e
'32%43 c-st_id ;I&< *CCC* ?? 4hanges field contents
@ *New c-st_id 0al-eA *
@@ c-st_id ?? 6ispla,s new c-st_id 0al-e
" &9%3'3>3'&(.&.) ?? 6iscard all table changes
@ *'e0erted c-st_id 0al-eA *
@@ c-st_id ?? 6ispla,s re0erted c-st_id 0al-e
Dise4o de 5or#ularios
2uCa r/pida #isual"
la 2ora de dise4ar for#ularios usted tiene que estar fa#iliari=ado con las ventanas
siguientes:
Geneado de
#o$ulaios %
Contoles $&s
co$unes
Entono de Datos'
son las ta(las !ue
ocu)a el *o$ulaio
2(
Manual del Alumno

Po)iedades de los
o(+etos
3*
Manual del Alumno
C!%o rear un nue#o For%ulario"
,- En el Ad$inistado de Po%ectos' )ulse docu$entos
.- Pulse #o$ulaio )aa selecciona la cate/o0a
1- Pulse (otn nue2o
parece en cuadro de dilogo -uevo 5or#ulario. "ste cuadro refle7a la posibilidad de
utili=ar el sistente para for#ularios o construir uno nuevo.
Su$erenia: utilice el sistente para for#ularios para desarrollar for#ularios
si#ples de introduccin de datos. "l sistente para for#ularios 2ace una serie
de preguntas para guiarle durante el proceso de creacin del for#ulario. "l
sistente per#ite la creacin de un for#ulario para 8nica tabla o para tablas
uno a #uc2os.
3- Pulse el (otn Nue2o *o$ulaio
parecer el Aenerador de for#ularios.
"l Aenerador de for#ularios visuali=a Form1 en la ventana DocForm1.
indicando que @ste es el pri#er for#ulario que tiene abierto en este proyecto.
Podr ca#biar de no#bre Docform1 por el no#bre que indique al guardar el
for#ulario. Form1 es un rea de traba7o en blanco.
0a#bi@n aparecer la barra de 2erra#ientas con los controles para la creacin
de for#ularios.
3)
Manual del Alumno
A$re$ai!n de Ob-etos a su )or%ulario1
Una ve= que tenga en pantalla una ventana de for#ulario en blanco. 5or#1.
inserte ob7etos para crear el su for#ulario.
$* %isual 5o!pro S.< ofrece dos tipos de ob7etos que se pueden insertar en un
nuevo for#ulario: ob7etos contenedores y ob7etos de control. Pode#os accesar
a estos ob7etos desde la barra de 2erra#ientas Controles de for#ulario o desde
el d#inistrador de proyectos.
Ob-etos ontenedores: Un ob7eto contenedor es un ob7eto pri#ario que
contiene otros ob7etos subordinados. Por e7e#plo. un for#ulario es el ob7eto
contenedor que es propietario de un botn de co#ando visuali=ado en el
for#ulario. (tros ob7etos contenedores pueden incluir #arcos de pgina.
cuadr3culas y grupos de botones de co#ando.
(b7etos de control: Un ob7eto de control per#ite al usuario seleccionar opciones.
introducir datos y escoger acciones. "n un for#ulario. estos ob7etos pueden incluir
casillas de verificacin. botones de co#ando. cuadros de te!to y cuadr3culas.
El ob-eto FOR(
Propiedades #as co#unes de la 5or#a :
No%bre Tipo de dato Desripi!n
Caption Carcter 0itulo de la ventana o 5or#a
utocenter Booleano Para central la 5or#a
*2o/0ips Booleano Para que se #uestren los 0ooltips
Closable Booleano %isuali=a el boton de Cerrar la %entana &U+
$a!Button Booleano %isuali=a el boton de $a!i#i=ar la %entana
$inButton Booleano %isuali=a el boton de $ini#i=ar la %entana
ControlBo! Booleano %isuali=a el $enu de Control de la %entana.
"ventos o $@todos #s co#unes de la 5or#a
No%bre Desripi!n
32
Manual del Alumno
6nit *e dispara a la 2ora que se iniciali=a todos los
ob7etos de la for#a.
Load *e dispara antes que se inicialicen los ob7etos de
la for#a &ante que 6nit+
Destroy *e dispara al cerrar la for#a
Unload *e dispara despues de Destroy.
9tili6ai!n de %Dltiples p/$inas en un )or%ulario si%ple1
"n %5P. un for#ulario si#ple puede contener #8ltiples pginas que visualicen
diferentes con7untos de datos y controles. "n la parte superior del for#ulario.
una fic2a representa cada pgina. Pode#os pulsar en una fic2a para #ostrar el
contenido de la pgina.
C!%o rear un )or%ulario de #arias p/$inas1
1. Pulse el botn $arco de pgina &page frame+ en la barra de 2erra#ientas
Controles de for#ulario.
1. *it8e el cursor en la esquina superior i=quierda de form1. & "l cursor ca#bia
su for#a a cruceta+
O. Pulse en la esquina superior i=quierda del for#ulario y arrastre el cursor
2acia la esquina inferior derec2a para crear un #arco de pgina que cubra
la #ayor parte de la ventana form1. De7e un espacio de unos dos
cent3#etros en la parte inferior del for#ulario para los botones de co#ando
que se agregarn despu@s en esta leccin.
33
Manual del Alumno
Propiedades #as co#unes de la pginas :
No%bre Tipo de dato Desripi!n
Pagecount -8#erico 5i7a el n8#ero de 5olders o pginas
&Page1. page1...+
0ab*tyle -8#erico Xustificacion de las pginas.
%isible Booleano *i el control es visible al usuario.
A$re$ai!n de uadros de texto & uadros de edii!n:
C!%o a$re$ar ob-etos en la pa$ina 3 +pa$e3,"
)4 5on el "otn derec-o del ratn6 p&lse so"re Page) en el form&lario4 /parece &n
men instantaneo
24 1eleccione la ventana propiedades
/parece el c&adro de di7logo propiedadades6 donde m&estra Page) en el c&adro
de te8to4
34
Manual del Alumno
34 P&lse el "otn Flec-a -acia a"a9o4
44 1eleccione Page) en el c&adro de te8to :"9eto4
Su$erenia: Cada ve= que inserte un ob7eto en un for#ulario. #arco de pgina
o cuadricula. co#pruebe en la ventana Propiedades que 2a colocado el ob7eto
en el contenedor apropiado.
Co%o A$re$ar de uadros de texto direta%ente de una tabla"
1. *eleccione %er el #en8 Aenerador de 5or#ularios
1. *eleccione "ntorno de Datos &Data "nviron#ent+
O. *eleccione "ntorno de datos &Data "nviron#ent+ en el #en8 de %isual
5o!pro y luego gregar.
Su$erenia: 0a#bi@n puede abrir la ventana gregar tabla o vista con el botn
derec2o del ratn. Utili=ando el botn derec2o del ratn. pulse en cualquier
parte del "ntorno de datos y luego seleccione gregar. Para obtener la ventana
de "ntorno de Datos o la ventana de propiedades. utilice el botn derec2o del
ratn pulsando fuera del #arco de pgina. pero dentro del for#ulario. parece
un #en8 instantneo desde el que puede 2acer la seleccin.
35
Manual del Alumno
parece la ventana gregar tabla o vista.
P. Confir#e si es la Base de Dato deseada.
S. Pulse dos veces en la tabla a utili=ar.
Y. *eleccione el campo deseado en la lista de ca#pos de la tabla. arrstrelo
2acia el for#ulario y d@7elo en cualquier parte del #is#o.
"n el for#ulario aparecer el cuadro de texto.text1
F. Pulse y arrastre el cuadro de te!to text1 a la posicin que desee.
Su$erenia: Para despla=ar un control de te!to. pulse sobre @l y arrastrelo
2acia otro lugar en le for#ulario. Para #odificar el ta#a4o del cuadro de te!to.
pulse sobre @l y luego arrastre algunos de los #rgenes.
Propiedades #as co#unes del 0e!t &control de te!to+:
No%bre Tipo de dato Desripi!n
Controlsource *eg8n la
variable
"s la variable o no#bre del ca#po al cual
2ace referencia.
%alue *eg8n la Contenido de la variable o ca#po
36
Manual del Alumno
variable referenciado en controlsource
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
Control Bot!n de Co%ando"
Propiedades #as co#unes del Botn :
No%bre Tipo de dato Desripi!n
Caption Carcter "tiqueta del co#ando &"7. Clic, qu3+
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
"ventos o $@todos #s co#unes del control
No%bre Desripi!n
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
'efres2 'efresca el ob7eto.
3
Manual del Alumno
C#o asociar un procedi#iento a un botn:
1. Gaga doble clic, en el boton. parece una ventana de cdigo:
Control Bot!n de Cuadro de Edii!n"
*e utili=a para los ca#pos #e#o.
Propiedades #as co#unes del control de edicin
No%bre Tipo de dato Desripi!n
Controlsource *eg8n la
variable
"s la variable o no#bre del ca#po al cual
2ace referencia.
%alue *eg8n la
variable
Contenido de la variable o ca#po
referenciado en controlsource
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
"ventos o $@todos #s co#unes del control de edicin
Escoga el evento
deseado4 ,En este
caso 5lic; < 1e
e9ec&ta al Presionar
el =oton.
$ntrod&>ca el cdigo
deseado4
/seg&rese %&e esta
&"icado en el control
deseado
3'
Manual del Alumno
No%bre Desripi!n
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
%alid *e dispara despues de presionar "nter o 0ab. se
utili=a para validar.
'efres2 'efresca el ob7eto.
Control de Opiones"
Propiedades #as co#unes del control de opciones
No%bre Tipo de dato Desripi!n
Controlsource -8#erico "s la variable o no#bre del ca#po al cual
2ace referencia.
%alue -8#erico Contenido de la variable o ca#po
referenciado en controlsource
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
"ventos o $@todos #s co#unes del control de opciones
No%bre Desripi!n
6nteractiveC2ange *e dispara cuando #odifica#os el ca#po
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
%alid *e dispara despues de presionar "nter o 0ab. se
utili=a para validar.
'efres2 'efresca el ob7eto.
3(
Manual del Alumno
Control C0e'"
Propiedades #as co#unes del control C2ec,
No%bre Tipo de dato Desripi!n
Controlsource Booleano "s la variable o no#bre del ca#po al cual
2ace referencia.
%alue Booleano Contenido de la variable o ca#po
referenciado en controlsource
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
"ventos o $@todos #s co#unes del control C2ec,
No%bre Desripi!n
6nteractiveC2ange *e dispara cuando #odifica#os el ca#po
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
%alid *e dispara despues de presionar "nter o 0ab. se
utili=a para validar.
'efres2 'efresca el ob7eto.
4*
Manual del Alumno
Control 2rid"
Propiedades #as co#unes del control Arid:
No%bre Tipo de dato Desripi!n
'ecordsource Carcter -o#bre de la tabla
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
Colu#nCount -8#erico -u#ero de colu#nas del Arid
Delete#ar, Booleano Per#ite registro para borrar & parece en
la parte i=quierda del Arid+
"ventos o $@todos #s co#unes del control Arid:
No%bre Desripi!n
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
'efres2 'efresca el ob7eto.
4)
Manual del Alumno
Control Listas"
Propiedades #as co#unes del control Listas
No%bre Tipo de dato Desripi!n
Controlsource *eg8n la
variable
%ariable a que 2ace referencia &ca#po
donde se al#acena el valor de la lista+
'o/*ource Carcter 0abla o query de los ele#entos de la lista
'o/*ource0ype -u#@rico 0ipo de la 5uente &*i es tabla o query.+
%isible Booleano *i el control es visible al usuario.
"nabled Booleano *i el control esta 2abilitado o no.
BoundColu#n -u#@rico %alor que retorna la lista &-8#ero de la
colu#na del 'o/*ource +
Bound0o Booleano "specifica si el valor de la lista esta
deter#inado por los valores o por la
propiedad List6nde!
"ventos o $@todos #s co#unes del control Listas
No%bre Desripi!n
6nteractiveC2ange *e dispara cuando #odifica#os el ca#po
6nit *e dispara a la 2ora que se iniciali=a el ob7eto
Clic, *e dispara al dar clic, en el ob7eto
*etfocus "l cursor se va al ob7eto.
Lostfocus *e dispara cuando el ob7eto pierde el cursor.
%alid *e dispara despues de presionar "nter o 0ab. se
utili=a para validar.
'efres2 'efresca el ob7eto.
5or#ularios *encillos
Un 5or#ulario *encillo. es el que es reali=ado general#ente utili=ando una sola tabla.
42
Manual del Alumno
Un e7e#plo t3pico de for#ularios sencillos son las pantallas de los
catlogos de un *iste#a. que sola#ente tienen la funcin de
registrar. #odificar. eli#inar y consultar datos de una tabla.
Por e7e#plo va#os a construir una for#a sencilla utili=ando el
)i=ard de %isual 5o!pro:
)4 /"ra s& pro?ecto
24 @"#%&ese en la pestaAa de documentos ,doc&ment. ? l&ego en Formas ,Forms.4
34 Presione el =otn Nuevo ,!eB.4
44 1eleccione Ci>ard4
/parece la sig&iente ventanaD
54 1eleccione Form Wizard ? :E.
64 L&ego aparece la ventana donde &sted escoge la ta"la a &tili>ar ? los campos de esa
ta"la4
1eleccione
la ta"la
a &tili>ar
1eleccione
Los
campos
%&e
aparecer7n
en la forma
43
Manual del Alumno
4 @na ve> seleccionado la ta"la ? s&s respectivos campos6 presiones prximo ,!e8t.4
'4 1e vis&ali>ar7 la sig&iente ventanaD
)*4 1eleccione el estilo de la forma ? el tipo de "otones a &tili>ar en la forma ? l&ego
presione prximo ,!e8t.4
11. parecer la siguiente ventana:
1eleccion
e el tipo
de "otn
*elecci
one el
estilo de
la
5or#a
1eleccione
el
ordenamient
o de la ta"la4
,por lo
general se
selecciona el
indice
44
Manual del Alumno
11. *eleccione el ordena#iento de la tabla. aqu3 por lo general se selecciona el 3ndice
de la tabla & los 3ndices aparecen con asterisco T+
45
Manual del Alumno
)34 $ntrod&>ca el tit&lo de la forma ? l&ego Finalizar ,Finis-.
%isual 5o!pro Aenerar la for#a. luego usted puede #odificar la for#a si lo
desea.
La for#a. que crea#os con el /i=ard. quedar3a de esta for#a:
Nota: 'econstruya el proyecto en la opcin Bil! &botn del proyecto+. Luego
*eleccione Re"il! Pro#ect y O$. %isual 5o!pro. co#pila su proyecto.
-otar que en la pesta4a de clases de su proyecto %isual 5o!pro le 2a
agregado una clase que @l ocupa para construir for#as con el %i&ar!. el
no#bre de la clase es %i&St#le.
=arra de
"otones creada
por el Bi>ard
,5ontenido en
la clase
Ci>st?le.
*i usted.
crea una
for#a con el
)i=ard.
%isual fo!pro
le incorpora
la clase
Ci>1t?le
46
Manual del Alumno
5or#ularios $aestro N Detalle
Un for#ulario #aestro detalles es aquel en que entran en 7uego dos o #s
tablas. las cuales tengan una relacin de uno a #uc2os. "7e#plo la relacin de
sLregion con sLdept & una regin puede tener #uc2os departa#entos+.
*e pueden construir for#as #estroNdetalle utili=ando el )i=ard. sin e#bargo.
nosotros utili=are#os la for#a #anual para personali=ar a nuestro gusto la
for#a.
Pasos para construir una forma maestro - detalle
Para este e7e#plo utili=are#os las tablas s'regio( y s'!ept
)4 /"ra s& pro?ecto
24 @"#%&ese en la pestaAa de documentos ,doc&ment. ? l&ego en Formas ,Forms.4
34 Presione el =otn Nuevo ,!eB.4
44 1eleccione !&eva Forma en "lanco4
54 En la forma en "lanco presione el "otn derec-o del ratn ? l&ego Entorno de Datos
,Data Environment.
64 1eleccione las ta"las s_region6 %&e ser7 el maestro ? l&ego la ta"la s_dept %&e ser7
n&estro detalle4
4
Manual del Alumno
F. rrastre uno por uno los ca#pos de la tabla sLregion a su for#a. de tal #anera que
queden asi:
'4 L&ego arrastre toda la ta"la s_dept al form&lario
4'
Manual del Alumno
(4 /-ora vamos a modificar las propiedades del Frid %&e -emos insertadoD seleccionan
el grid6 "otn derec-o del ratn ? l&ego propiedades4 1e sitan en la pestaAa datos6
para modificar las sig&ientes propiedades con el fin de esta"lecer la relacin entre
las dos ta"lasD
1<. colocare#os los botones para Despla=arnos en la tabla. agregar. eli#inar . grabar.
cancelar y salir.
Propiedad 5ontenido
Lin;Gaster La ta"la maestra
,sHregion.
+ecor1o&rce La ta"la -i9a
,sHdept.
+ecord1o&rceT?pe Tipo de f&ente de
datos ,/lias.
+elationalE8pr La relacion entre
las ta"las
,sHregion4id <
sHdept4regionHid
4(
Manual del Alumno
Cdigo para los botones :
Bot!n
C!di$o
gregar
IN!3'& IN&5 s_dept ( region_id ) D
>%13! (s_region.Id)
ZZ
!=I2 E1
;;
!=I2
"li#inar
63%3&3 IN s_dept
Arabar
!3%34& s_dept
"&9%3126&3(.&.)
Cancelar
!3%34& s_dept
"&9%3'3>3'&(.&.)
*alir
&<I!75'(.'elease
Cdigo a nivel de 5or#a :
(Etodo
C!di$o
Destroy
!3%34& s_dept
"&9%3'3>3'&(.&.)
I%portante: la tabla sLdept debe de estar en #odo buffer. para que funcionen
los co#ando de 0BL"UPD0"&+ y 0BL"'"%"'0&+. "l #odo buffer de la
tabla lo puede fi7ar en "ntorno de datos y luego en la propiedades de la tabla
sLdept. espec3fica#ente en la propiedad Bffer)o!eO*erri!e.
5*
Manual del Alumno
Creacin de Clases de (b7etos
"n %isual 5o!pro se pueden crear clases de ob7etos que pueden de uso #uy
co#8n. co#o por e7e#plo el botn salir es #uy co#un en todas las pantallas.
Pasos para creacin de clases:
)4 /"ra s& pro?ecto
24 @"#%&ese en la pestaAa de classes4
34 Presione el =otn Nuevo ,!eB.4
P. 6ntrodu=ca el no#bre de la clase. el tipo de clase &en este caso Boton de
co#ando+ y guardarlo co#o curso.
S. 6n#ediata#ente aparecer la siguiente pantalla:
Y. Personalice el botn y luego cierre la ventana y slvelo.
5)
Manual del Alumno
F. La clase que usted a creado aparecer en la pesta4a clases de su proyecto:
C#o 2acer uso de la clase :
1. Cree o bra una for#a
1. presione el botn de *er clases y luego agregar &dd+ y seleccione la clase
que usted a creado.
%er
Clases
52
Manual del Alumno
1. parecer la clase que usted a creado con el botn de salir
O. Para poner el botn en la for#a. seleccione el botn en la barra de
controles y luego clic en la for#a.

53
Manual del Alumno
*oporte de 0ecnolog3a ctiveU
Cuando usted instala %isual 5o!pro. se instalan una serie de controles ctiveU
soportados por %isual 5o!pro.
Un ctiveU. no es #s que un control e!terno. es parecido a una clase ya que
las clases se pueden guardar en un arc2ivo &e!tensin %CU+ y los ctiveU
tienen e!tensin (CU. La diferencia es que los %CU solo puede ocuparse en
%isual 5o!pro. #ientras que los (CU se consideran co#o tecnolog3a abierta.
es decir. pueden ser utili=ado por cualquier lengua7e visual co#o %isual CBB o
%isual Basic. por #encionar algunos.
"stos controles ctiveU. vienen 2ec2os de fabrica. son co#erciali=ables y no
son #odificables. sin e#bargo uno puede crear sus propios (CU. Los
lengua7es donde se pueden construir estos (CU actual#ente son %isual CBB y
%isual Basic. "n visual 5o!pro S.< usted no puede crear (CU.
Gay que tener #uc2o cuidado a la 2ora de co#prar un (CU y verificar que
lengua7es soporta. por que algunos (CU no son soportados por algunos
lengua7es visuales incluso con %isual 5o!pro.
C#o 2acer uso de los ctiveU en %isual 5o!pro:
Un (CU es un ob7eto por lo cual tiene propiedades y eventos i#pl3citos en @l.
"n el curso. utili=are#os dos Controles ctiveU :
(utLine control
$icrosoft Progress Bar Control
(utLine control:
"l (utline Control se utili=a para 2acer rboles co#o por "7e#plo: 'egiones con
departa#entos &#aestroNdetalle+
54
Manual del Alumno
C#o agregar un ctiveU a la for#a:
1. bra o Cree una nueva for#a.
1. *eleccione %er clases
O. *eleccione ctiveU Control
P. *eleccione el control deseado. en este caso el (utline Control y pngalo en
la for#a.
S. %a#os a crear una for#a #aestro detalle utili=ando el (utline Control. "l
(utline control presentar la infor#acin de las 'egiones y va#os a agregar un
Arid que sern los departa#entos. lgo asi:
55
Manual del Alumno
Co#pletar Cdigo del (utline control:
(Etodo
C!di$o
Init
CEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
C 4argar el 54F
CEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
CEEEEEEEE
pnInde/ " 0
&<I!.dditem( G'egionesG )
&<I!.Indent( pnInde/ ) " pnInde/
!elect s_region
!4N
pnInde/ " pnInde/ H 1
datos " %%&'I((name)
&<I!.dditem(datos)
&<I!.Indent( pnInde/ ) " 1
&<I!.2ict-re&,pe(pninde/) " #
&<I!.%istInde/ " pninde/
&<I!.Item6ata(pnInde/) " '34N5()
3N6!4N
Clic,
!3%34& s_region
85 '345'6 &<I!.Item6ata(&<I!.%istInde/)
&<I!75'(.'37'3!<()
"l 8lti#o paso es agregar el Arid con la tabla departa#entos y luego establecer
la relacin con la tabla de regiones.
56
Manual del Alumno
Progress Bar Control:
"ste control per#ite 2acer una barra de progreso:
Propiedades :
.ropiedad
Desripi!n
$a! $!i#o valor de la Barra &n8#erico+
$in $3ni#o valor de la Barra &n8#erico+
%alue %alor actual de la barra &n8#erico+
5
Manual del Alumno
Al%aenar ob-etos OLE en la Base de Datos"
Con %isual 5o!pro se pueden al#acenar ob7etos (L" en la Base de Datos.
estos ob7etos (L" van desde una si#ple i#agen B$P de Paintbru2s 2asta un
video clip. un docu#ento en )ord. una 2o7a en "!cel un grafico.
"sto se lla#a (L" uto#ation &auto#ati=acin (L"+
HIu@ se necesita para 2acer (L" uto#ationJ
$uy sencillo:
- "l ca#po de la tabla debe ser tipo Aeneral
- Utili=ar el control (L" Bound Control de %isual 5o!pro
- Utili=ar el Co#ando PP"-D A"-"'L
*inta!is de PP"-D A"-"'L
A..END 2ENERAL Nom"re Campo tipo +e(eral
[FRO( Nom"re ,rc-i*o\
[DATA Nom"re !e .aria"le\
[CLASS Nom"re !e la Clase O/E0
FRO( : Por si desea#os insertar un rc2ivo e!istente en el disco
DATA : *i no es un arc2ivo puede ser una variable. entonces se especifica
aqu3.
CLASS : "l no#bre de la clase de la aplicacin al que esta asociada el arc2ivo
o la variable.

0oda aplicacin )indo/s & )ord. "!cel. Arap2. Paint. )ordPad. Bloc, de -otas.
Po/er Point. entre otras+ tienen un no#bre de clase:
Por mencionar algunos nombres de clases:
,plicaci1(
No%bre de la lase
2aintbr-sh 2ict-re 2IN&.2I4&1'3
6oc-mento de ;ord IJ ;5'6.6541(3N&
<oKa de 4alc-lo de 3/cel 3F43%.!<33&
5'
Manual del Alumno
Co%o onoer el no%bre de lase de una apliai!n 7indows"
1. Cree un for#ulario nuevo
1. 6nserte en el for#ulario el control OLE Container Control
O. 6nsertar la plicacin deseada: &"scoger el ob7eto y luego (Q+
P. Luego en las propiedades del ob7eto insertado buscar la propiedad
(L"CL**:
Propiedad (leClass. se
puede ver el no#bre de la
clase de la plicacin
PaintBrus2t
5(
Manual del Alumno
Inluir en el For%ulario el Ob-eto OLE"
Diseo de Reportes
Auia rpida visual:
!3%34& s_prod-ct
223N6 83N3'% picture 7'5(
83&7I%3(*9(2*) 4%!!
2IN&.2I4&1'3
:LE =o&nd 5ontrol
,5ontrol1o&rce <
sHprod&ct4pict&re.
Tit&loD /parece solo en la
primera pagina
"ncabe=ado:
parece en todas
las paginas
DetalleD 1e
especifican los
campos de la ta"la
1&marioD /parece
en la &ltima pagina
Entorno de Datos
=arra de
Ierramientas de
+eportes
6*
Manual del Alumno
Los infor#es #uestran datos y resu#en datos en un for#ulario i#preso o en pantalla.
Los dos co#ponentes principales de los infor#es son los datos y el for#ato. La fuente
de datos del infor#e puede ser una tabla de base de dato. una consulta o una vista.
"l pri#er paso para dise4ar un infor#e es deter#inar los datos que se van a #ostrar.
y el segundo paso es deter#inar cul va a ser el #e7or for#ato para #ostrar ese
infor#e. Puede crear listados que se basen en una 8nica tabla o en infor#es
co#ple7os.
"l Aenerador de 6nfor#es es una 2erra#ienta fle!ible y de fcil uso para la creacin.
dise4o y #odificacin de infor#es.
.asos para Creai!n de In)or%es "
6. *eleccin de los datos
"sta es la parte #s i#portante del infor#e. la seleccin de datos. 2ay que saber qu@
es lo que quiere el usuario o que el usuario #uestre el dise4o del infor#e que desea.
para co#en=ar a traba7ar.
Los datos pueden ser si#ples &utili=ando una sola tabla+. co#o listados de regiones.
listado de departa#entos. entre otros] o pueden ser algo #as co#ple7os &utili=ando
#as de una tabla+ "7e#plo 'eportes agrupados. reportes consolidados. etc.
Los datos se pueden obtener directa#ente utili=ando las tablas o utili=ando *IL para
crear cursores. esta 8lti#a es la #s reco#endada para una aplicacin #ultiusuario.
"!isten varios tipos de infor#es entre ellos :
N Listados &"7. Listados de regiones+
$uestra:
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
id name
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
01 'egion 1
0# 'egion #
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
6)
Manual del Alumno
62
Manual del Alumno
N 2rupos on detalles & o #aestro detalles+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Region
Departamento
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
'egion 1
6epartamento a
6epartamento b
'egion #
6epartamento /
6epartamento ,
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
N $atriciales o consolidados
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Rating
Region Excellent Good Poor
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
'egion 1 1 # 0
'egion # . 0 1
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Totales 4 # 1
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Creai!n de In)or%es usando el entorno de datos:

1. "n el ad#inistrador de proyectos. seleccione la fic2a Docu#entos.
1. *eleccione 6nfor#es
O. Pulse el botn nuevo
P. Pulse el botn nuevo infor#e.
parece el generador de infor#es y al barra de 2erra#ientas Controles de infor#es.
S. *eleccione "ntorno de datos y seleccione la tabla
Y. rrastre los ca#pos a utili=ar del entorno de datos en el infor#e en la parte de
detalle
F. 6ntrodu=ca los encabe=ados del reporte
^. Puede ver co#o queda el infor#e con el botn de presentacin preli#inar:
/rrastre el
campo a la
parte de
detalle
63
Manual del Alumno
Presentacin Preli#inar :
64
Manual del Alumno
(enD de Reportes
0itulo_*u#ario &0itle_*u##ary+:
$uestra el rea del 0itulo y el *u#ario del 6nfor#e
Titlo : parece solo en la pri#era pagina del 'eporte
Smario : parece solo en la ulti#a pagina del 'eporte
A$rupa%iento de datos +Data 2roupin$,
"l agrupa#iento de datos se utili=a para infor#es #aestro M detalle.
"specifique el
ca#po por el
cual esta
agrupando
65
Manual del Alumno
%ariables:
Las variables son 8tiles para 2acer clculos con los datos del reporte y luego
presentarlas en el #is#o reporte.
!om"re de
la varia"le
Tipo de
5alc&lo
5ampo a
calc&lar
66
Manual del Alumno
.ropiedades de los a%pos
Cada ca#po en el 6nfor#e posee propiedades :
Doble clic en el
ca#po para
#ostrar las
propiedades
*i
desea
#os
2acer
clculo
s con
el
ca#po
6
Manual del Alumno
Creai!n de In)or%es usando Cursores S>L:
1. Crear el cursor con el co#ando *"L"C0..... 5'($ .....)G"'"....
1. Crear el 6nfor#e #anual#ente. con los no#bres de ca#pos del cursor.
O. Correr el 'eporte.
E-e%plo"
C !e define -na 0entana 2ersonaliLada
637IN3 ;IN65; w_5-tp-t D
7'5( 0,0 &5 #5,J0 D
&I&%3 *Informes E IN&34* D
4%5!3 7%5& 8'5; M55( !:!&3(
1!3 IN .NdataNs_region IN 0
!3%34& id, name
7'5( s_region
IN&5 41'!5' c_region
* Si lo queremos por pantalla
'325'& 75'( .NreportNpp_detalles D
2'3>I3; ;IN65;! w_o-tp-t D
N53B34& N545N!5%3
* Por Impresora
'325'& 75'( .NreportNpp_detalles D
&5 2'IN&3' 2'5(2& D
N53B34& N545N!5%3
* Hacia un Archivo
'325'& 75'( .NreportNpp_detalles D
&5 7I%3 21&7I%3() D
!4II
* errar el cursor
1!3 IN c_region
Integracin de la plicacin
6'
Manual del Alumno
Creai!n de (enDs"
Au3a rpida %isual:
$nstr&ccin de men
Presentacin preliminar del men
Godificacin o creacin de +es&ltados
del men
:pciones del men
Lista de +es&ltados del men
,1&" men6 comando6
procedimiento.
6(
Manual del Alumno
Tipos de (enDs"
"!isten dos tipos de #en8s : #en8 y *2ortcut.
El 1-orc&t men se
invoca con el "otn
derec-o del mo&se
Gen& desplega"le a
nivel de la ventana
s&perior de 0is&al
Fo8pro4
*
Manual del Alumno
Creai!n de (enDs"
La creacin de #en8s es un proceso que conlleva diferentes pasos. Pri#ero.
debe#os definir las opciones del #en8 y de los sub#en8s. Luego. asignar
funcionalidad a las opciones de #en8. 5inal#ente. generar el progra#a de
#en8s.
Puede l generador de #en8s de %isual 5o!pro para que le ayude a construir
#en8s rpida#ente. "l Aenerador de #en8s le per#ite definir la estructura y
funcionalidad de su siste#a de #en8s a trav@s de cuadros de dilogo de fcil
uso y de listas desplegables que puede utili=ar para crear y #odificar su site#a
de #en8s.
De)inii!n de las opiones de %enD1
Los #en8s presentan su aspecto con una lista de opciones para iniciar una
actividad. La #ayor3a de los ele#entos de #en8 #uestran sub#en8s u
opciones adicionales cuando el usuario selecciona uno de estos ele#entos.
ntes de generar un #en8 para una aplicacin. tendr que deter#inar que
selecciones tendr disponibles el usuario final y qu@ opciones de #en8s
pertenecen a otras opciones de #en8s &sub #enus+.
C!%o rear un nue#o %enD
1. Pulse la fic2a de otros
en el d#inistrador de
proyectos.
parece la pgina
otros con las
categor3as de arc2ivo
de $en8s. 0e!to y
(tros.
1. *eleccione #en8s en
la lista de categor3as
O. Pulse el botn nuevo y
esco7a si es $enu o un *2ortcut
P. 6ntrodu=ca las opciones del #enu y luego el resultado del #en8 & sub#enu.
co#ando o procedi#iento+
S. la derec2a del resultado se encuentra la opcin crear o #odificar seg8n el
caso. & crea o #odificar los resultados de la opcin del #enu+.
)
Manual del Alumno
Tipos de Resultados :
Sub%enu : *i el #en8 contiene un sub#enu
Coma(!o : !i la opcin de ese men" in#oca un
comando $E%emplo: DO &O'(
'egiones. para lla#ar un for#ulario]
CLEAR EVENT. por lo general va en la opcin *alir+
.roedi%iento : *i la opcin de ese #en8 invoca varias l3neas de co#andos
& un procedi#iento+.
Opiones de (enD"
"n las opciones del #en8 se
especifican:
- 0eclas de cceso directo
- $ensa7es del #en8
- Condicin de 2abilita_-o 2abilitar
2enerai!n del %enD "
1. "n el #en8 esco7a la opcin $en8.
1. *e le pregunta si desea grabar los ca#bios & responda que si+
O. Luego se le pide que proporcione el arc2ivo de salida del #enu & esco7a la
ruta y el no#bre del arc2ivo. por lo general son e!tension $P'+ y luego
seleccione generar.
P. *i e!iste ya el arc2ivo se le pide si desea reNescribirlo & seleccione que si+
2
Manual del Alumno
Co%o in#oar al %enD reado"
l generar el #en8 se crea un arc2ivo que por lo general tiene e!tensin $P'
que contiene el cdigo para desplegar el #en8.
La instruccin ser3a:

DO ruta & no%bre del ar0i#o (.R
E-e%plo " DO %enu1(.R
Para volver a re establecer el #en8 por default de %isual 5o!pro utilice la
instruccin: *"0 *K*$"-U 0( D"5UL0
Creai!n del E-eutable de la Apliai!n1
Pri#ero se tiene que crear
un progra#a de inicio. al
cual se le tiene que decir
que ese es el progra#a
que se e7ecutara de
pri#ero & esto se 2ace
2aciendo clic derec2o en el
progra#a que designe#os
co#o principal y escoger la
opcin mai( & principal+ del
#en8 de opciones+
3
Manual del Alumno
Contenido "7e#plo del progra#a principal:
4%3' %%
C >ariables 2-blicas
219%I4 w_5-tp-t, g_aOo, gid_area, g_ni0el, g_cambio, g_login_entr, D
,g_pass_entr,, >_(3N1_2'3, >_3''5', g_acceso
C 6efinicion de >entana para los 'eportes
637IN3 ;IN65; w_5-tp-t D
7'5( 0,0 &5 #5,J0 D
&I&%3 *Informes E 94N* D
4%5!3 7%5& 8'5; M55( !:!&3(
C mbiente
!3& !:!(3N1 &5
!3& 34<5 577
!3& &%= 577
!3& 43N&1': 5N
!3& 4%54= !&&1!
!3& 6&3 brit
!3& 63%3&3 5N
!3& 2&< &5 formen-,bmp,prg,data
!3& 3F4%1!I>3 577
!3& !73&: 577
!3& '37'3!< &5 5
!3& '32'543!! &5 1&5(&I4
!3& (1%&I%54= 5N
!3& %54= 577
!3& 2'54361'3 &5 .NprgN-tilit,
C 7ondo de la 2antalla principal
_!4'33N.2ict-re"G.NbmpNfondo.bmpG
_!4'33N.;IN65;!&&3"#
_!4'33N.4%5!9%3".7.
_!4'33N.42&I5N"G7orm-laciPn 2res-p-estariaG
C 9ase de 6atos
523N 6& .N!45&&Nscott !<'36
C %lamada al (en-
65 .Nmen-Nmen-.mpr
'36 3>3N&
4%3' %%
!3& !:!(3N1 &5 6371%&
4
Manual del Alumno
Creai!n del E-eutable
"n el d#inistrador de proyectos seleccione la opcion Build. luego la opcin
build "!ecutable y luego (Q.
"n las opciones es reco#endable seleccionar 'eco#pile ll y display "rror.
para reco#pilar todos sus progra#as y for#ularios ] y Por si 2ay un error
#ostrarlo al final de la generacin del "7ecutable.
Visual Foxpro F1G en la 7eb
En este e9ercicio pondremos &n form&lario de 0is&al Fo8pro en la Ce"6 En el pro?ecto tenemos el
form&lario sHregion D
/s# se vera el form&lario en el =roBserD
Este form&lario se
ver7 en la Ce"
5
Manual del Alumno
6
Manual del Alumno
Con %isual 5o!pro usted puede desplegar su aplicacin para que sea vista desde un
Bro/ser & de Preferencia 6nternet "!plorer +. La #odificacin es #3ni#a si usted ya
tiene una aplicacin.
Si/a las si/uientes instucciones:
)4 Desde s& pro?ecto6 crearemos &na clase n&eva6 =asada en Doc&mento /ctivo ,/ctiveDic.D
24 En el evento Run de la clase pondremos el cdigo para la llamada al form&lario %&e %&eremos %&e se
mire en la Ce"4
Presionamos /ceptar
,:E.
Esta es la clase

Manual del Alumno
34 En el evento ContaineRelease escri"a lo sig&ienteD
44 1alvamos la clase4
54 Esta"lecemos como principal ,1et Gain. las clase %&e creamos4
'
Manual del Alumno
64 Iaremos &na pe%&eAa modificacin en el form&lario6 agregaremos la instr&ccin 5LE/+ E0E!T en
el "otn de salirD
,Esto es m&? importante 6 no se nos de"e de olvidar.
4 5onstr&?a el /PP de s& pro?ectoD
5onstr&ir la /plicacin ,app.
(
Manual del Alumno
4 E9ec&te el /PP desde $nternet E8prorerD
I$)otanteD En la ma%&ina del 5liente6 se de"en de instalar los +@!T$GE de 0is&al Fo8pro6 para %&e
se p&eda ver en el =roBser4

Das könnte Ihnen auch gefallen