Base de Datos II_practicas-VFP

57
Manual de ejercicios y prácticas CON LA COLABORACIÓN DE Claudia Adriana López González ( Ver s ió n p ar a f as e i n i c ia l ) BASES DE DATOS II

Transcript of Base de Datos II_practicas-VFP

Page 1: Base de Datos II_practicas-VFP

1

Manual de ejercicios y prácticas

CON LA COLABORACIÓN DE

Claudia Adriana López González

(Versión para fase inicial)

BASES DE DATOS II

Page 2: Base de Datos II_practicas-VFP

2

BASES DE DATOS IIManual de ejercicios y prácticas2000. Secretaría de Educación Pública/ Dirección General del Bachillerato

Page 3: Base de Datos II_practicas-VFP

3

ÍNDICE

Presentación........................................................................................................................................................... 5

Sección de ejercicios1. Técnicas de diseño de sistemas........................................................................................................................ 62. Diseño de bases de datos.................................................................................................................................... 63. Normalización...................................................................................................................................................... 74. Expresiones........................................................................................................................................................... 75. Instrucción de apertura y cierre...................................................................................................................... 76. Control de pantalla............................................................................................................................................. 77. Índices y filtros..................................................................................................................................................... 88. Inserción de registros......................................................................................................................................... 99. Eliminación de registros.................................................................................................................................... 910. Modificación del contenido de los registros............................................................................................... 911. Creación de vista............................................................................................................................................... 1312. Inserción de campos por arrastre.................................................................................................................. 1413. Inserción de campo por propiedad control source.................................................................................... 1514. Procedimientos................................................................................................................................................... 1715. Variables por valor y referencia..................................................................................................................... 1816. Reporte agrupado por nombre de paciente................................................................................................. 1917. Reporte agrupado por nombre de tratamiento y uso de variable de reporte..................................... 21

Sección de prácticas1. Generación de bases de datos........................................................................................................................... 232. Uso de variables, expresiones y control de flujo.......................................................................................... 263. Manejo de registros............................................................................................................................................ 284. Creación del formulario..................................................................................................................................... 305. Creación de una pantalla de ayuda.................................................................................................................. 416. Enlace de la ayuda en el formulario................................................................................................................ 467. Procedimientos..................................................................................................................................................... 488. Procedimientos y manejo de variables........................................................................................................... 509. Reportes en formularios.................................................................................................................................... 5210. Etiquetas............................................................................................................................................................. 55

Page 4: Base de Datos II_practicas-VFP

4

Page 5: Base de Datos II_practicas-VFP

5

PRESENTACIÓN

BA

SES D

E D

ATO

S II

La capacitación para el trabajo te brinda herramientas para poder desarrollarprocesos de trabajo para un área específica; asimismo, te generará una actitudpositiva hacia el trabajo y a nuestros valores humanos.

Es importante señalar que la Capacitación en Informática te permitirá desarrollaraptitudes, habilidades y destrezas en procesos específicos del área, incorporandoconocimientos teórico-metodológicos.

Este �Manual de ejercicios y prácticas� te apoya en el logro de tus aprendizajespropuestos en la Guía de Estudios de Bases de Datos II, ya que:

- Se presentan problemas sencillos en forma de ejercicios que consolidan losaprendizajes de un tema.

- En las prácticas se presenta parte de la solución de la Situación de aprendizajeplanteada en la unidad I, dejándote que resuelvas la parte faltante.

Es así como este manual de ejercicios y prácticas se encuentra dividido en dossecciones, la sección de ejercicios y la sección de prácticas.

No olvides que el desarrollo del manual te dará los elementos necesarios pararesolver situaciones específicas de trabajo, muy similares a la situación deaprendizaje presentada.

Page 6: Base de Datos II_practicas-VFP

6

Paciente

Recibe

N

N

Tratamientos

SECCIÓN DE EJERCICIOS

Ejercicio 1. TÉCNICAS DE DISEÑO DE SISTEMAS

Instrucción: Completa el siguiente diagrama entidad-relación correspondiente a nuestrasituación de aprendizaje.

Ejercicio 2. DISEÑO DE BASES DE DATOS

Instrucción: A partir del diagrama de entidad-relación realizado en el ejercicio anterior, añadelos campos faltantes a las siguientes tablas.

RFC

NOMBREAPELLIDOS

CVE SEXO

OBSERVACIONES

CVE TRAT

PACIENTE TRATAMIENTO

CVE SEXO

SEXO

SEXO

CVEAPL

_____________

RFCFECHA

APLICACIÓN

Page 7: Base de Datos II_practicas-VFP

7

Ejercicio 3. NORMALIZACIÓN

Instrucción: Normaliza las tablas resultantes del ejercicio 2. Recuerda que uno de los objetivosprincipales de la normalización es evitar la redundancia de datos.

Nota: No es absolutamente necesario generar tablas con un número menor a 3 registros.

Ejercicio 4. EXPRESIONES

Instrucción: Proporciona el resultado de las siguientes expresiones, donde A y D es igual aTrue, y B y C es igual a False.

Ejercicio 5. INSTRUCCIÓN DE APERTURA Y CIERRE

Instrucción: Identifica todos los elementos de apertura y cierre en el programa de la prácticaNo. 3.

Ejercicio 6. CONTROL DE LA PANTALLA

Instrucciónes: Para el desarrollo de este punto se creará un formulario.

1. Del Administrador de Proyectos selecciona la pestaña Docs, luego selecciona Formulariosy presiona el botón Nuevo.

2. Se desplegará una ventana de diálogo en la que seleccionarás Nuevo Formulario, lo cualabrirá una ventana de Modificación de formularios.

3. En el formulario introduciremos los siguientes objetos:

Expresión Resultado

7*5+(2-4)/2

((5+3)*9-2)*10

A AND B

C OR D

A AND D

C OR B

Not B

Objeto Símbolo Propiedades Código

Formulario public dato

Etiqueta Name:Descuento

Cuadro de texto Name:Descuento dato=this.value

Botón decomando

Name:Command1

Caption: Aceptar

thisform.descuento.value = ""

? dato

Page 8: Base de Datos II_practicas-VFP

8

Tu formulario puede quedar como sigue:

Nota: Recuerda que para introducir código dentro de algún objeto, es necesariopresionar 2 veces el mismo.

1. Para correr el formulario selecciona el botón (Ejecutar).2. Introduce un número en la caja de texto y presiona el botón Aceptar. Observa que el dato

se imprime en la ventana del formulario.

Ejercicio 7. ÍNDICES Y FILTROS

Instrucción: Completa el siguiente programa que indexa la tabla aplicación y despliega lospacientes que hayan recibido el tratamiento T003. Corrobora su funcionamientoimplementandolo en Visual FoxPro.

close databases &&Cierra todas las bases de datosset path to �ruta�

&&Establece la ruta donde se &&guarda laBase de Datos&&Revisa el path de tu BD y &&corrige la línea

open database consultorio exclusive &&Abre la base de datosuse aplicación &&Abre la tabla aplicación en un &&espacio

de memoriaindex on _____set exact offstore �______� to _______seek clave

if found ( )display fields ________________endif

Page 9: Base de Datos II_practicas-VFP

9

Ejercicio 8. INSERCIÓN DE REGISTROS

Instrucción: Termina el siguiente programa que inserta un registro en blanco a la tablapacientes e impleméntalo en Visual FoxPro.

close databases &&Cierra todas las bases de datosset path to «ruta» &&Establece la ruta donde se guarda la

&&Base de Datos&&Revisa el path de tu BD y corrige la &&línea

open database __________- exclusive &&Abre la base de datosuse ____________ &&Abre la tabla pacientes en un espacio

&&de memoria

________________- &&inserta registro en blancobrowse

Ejercicio 9. ELIMINACIÓN DE REGISTROS

Instrucción: Completa las instrucciones para que el programa funcione correctamenteeliminando el registro que se introdujo en el ejercicio 8. Desarróllalo en Visual FoxPro.

close ______________ &&Cierra todas las bases de datosset path to «ruta» &&Establece la ruta donde se &&guarda la

Base de Datos&&Revisa el path de tu BD y &&corrige la línea

open database ___________ exclusive &&Abre la base de datosuse___________index on rfc to lista1

store ��____________» to nulo__________ for rfc = nulo___________ &&Elimina físicamente el registrobrowse

Ejercicio 10. MODIFICACIÓN DEL CONTENIDO DE LOS REGISTROS

Instrucción: Llena los espacios en blanco con las instrucciones correctas y elabora el programaen Visual FoxPro. Este programa localiza y cambia los registros con �M� en el campo sexo por�m�.

close ______________ &&Cierra todas las bases de datosset path to «ruta» &&Establece la ruta donde se &&guarda la

Base de Datos&&Revisa el path de tu BD y &&corrige la línea

open database ___________ exclusive &&Abre la base de datossex = �m�use________________________

___________ sexo with sex __________ sexo=»M»endscanbrowse

Page 10: Base de Datos II_practicas-VFP

10

Ejercicio 11. CREACIÓN DE VISTA

Instrucciones: Sigue los puntos que a continuación se te presentan para crear una vista conlas tablas de Pacientes, Aplicación y Tratamientos ordenados por la clave del paciente. A lavista deberás introducir todos los campos excepto Aplicación.rfc y Tratamientos.clavetrat.

1. Selecciona del Administrador de Proyectos la pestaña Datos, posteriormente la palabraVistas locales y luego el botón de Nuevo. Observa que se despliega un cuadro de diálogoen donde elegirás Nueva Vista y luego Aceptar.

2. Se desplegará otro cuadro de diálogo con los nombres de las tablas, las agregaremos una auna empezando por Pacientes, luego Aplicación y por último Tratamientos.

3. Al insertar la tabla de Tratamientos se desplegará una ventana de relación de datos,selecciona relación Derecha y luego presiona Aceptar.

4. Cierra la ventana de Agregar tabla o vista.5. Inserta después los campos con la opción Agregar a la sección de Campos seleccionados,

quedando como sigue:

6. En la pestaña de Ordenar por seleccionamos el campo de pacientes.rfc.7. Guarda la vista con el nombre de Consultorio.

Page 11: Base de Datos II_practicas-VFP

11

Ejercicio 12. INSERCIÓN DE CAMPOS POR ARRASTRE

Instrución: Con las siguientes características llena los espacios en blanco del formulario, parapoder así contar con las instrucciones completas. Una vez que tengas completas las instruccionessíguelas para la implementación del formulario en Visual FoxPro.

1. Del ___________________________ se selecciona la pestaña de Docs, luego la palabraFormularios y por último el botón _____________. De la pantalla que se despliega se eligela opción de Nuevo Formulario.

2. De la pantalla de diseño de formulario se selecciona el icono (Entorno de datos). De laventana que se despliega seleccionamos la opción ____________, luego el nombreTratamientos y finalmente presionamos el botón _____________.

3. Con la ventana de Entorno de datos abierta seleccionamos el campo de Clavetrat y loarrastramos dentro del formulario. Verificamos que contenga las propiedades de la tabla.

4. Seleccionamos ahora el campo de costo y lo arrastramos también dentro del formulario.Verificamos sus propiedades.

5. Seleccionamos el botón de (______________) para crear la etiqueta de Tratamientos.En la ventana Propiedades seleccionamos Caption para escribir Tratamientos.

6. Seleccionamos el botón (_________________) para crear el campo NombreTrat.7. Aplicamos las propiedades RowSource con la expresión Tratamientos.Nombretrat y

________________________ con valor 6 � Campos.8. Ahora insertaremos el código en el evento Click del cuadro de lista para escribir la

instrucción _______________________________________.9. Seleccionamos el botón (_____________________) para crear el control de Salida del

formulario.10. De las propiedades de dicho botón seleccionamos Caption para insertar el texto Salida.11. En el evento click del botón se escribe la instrucción thisform.___________________ para

descargar el formulario de memoria.

Controles Propiedades CódigoEtiqueta Caption: ClaveEtiqueta Caption: TratamientosEtiqueta Caption: CostoCuadro de texto Name: txtclavetrat

ControlSource: Tratamientos.clavetratCuadro de lista Name: Tratamientos

RowSource: tratamientos.nombretratRowSourceType: 6 - Campos

Evento click:Thisform.refresh

Cuadro de texto Name: txtcostoControlSource: Tratamientos.clavetrat

Botón de comando Caption: Salir Evento click:Thisform.release

Page 12: Base de Datos II_practicas-VFP

12

12. El formulario puede quedar como se muestra a continuación:

Ejercicio 13. INSERCIÓN DE CAMPO POR PROPIEDAD CONTROL SOURCE

Instrución: Con las siguientes características, completa los espacios en blanco para tenertodos los pasos necesarios para la creación del formulario. Una vez completos implementa elformulario en Visual FoxPro.

Control Propiedades CódigoCuadro combinado Name: RFC

RowSource: pacientes.rfc__________________: 6 - camposStyle: 2 � Lista desplegable

Evento _______________:Thisform.refresh

Etiqueta Caption: NombreCuadro de texto Name: Nombre

ControlSource: Pacientes.nom breEtiqueta Caption: ApellidosCuadro de texto Name: Apellidos

ControlSource: Pacientes.apellidosEtiqueta Caption: DirecciónCuadro de texto Name: Dirección

ControlSource:Pacientes.dirección

Page 13: Base de Datos II_practicas-VFP

13

1. Del ____________________________ se selecciona la pestaña de Docs, luego la palabraFormularios y por último el botón _____________. De la pantalla que se despliega se eligela opción de Nuevo Formulario.

2. De la pantalla de diseño de formulario se selecciona el icono (Entorno de datos). De laventana que se despliega seleccionamos la opción ____________, luego el nombreTratamientos y finalmente presionamos el botón _____________.

3. Creamos el primer campo seleccionando el botón cuadro combinado.4. En las propiedades del control seleccionamos RowSource y seleccionamos de la lista

desplegable pacientes.rfc.5. Luego seleccionamos RowSourceType con opción 6 � campos.6. Entrando a la ventana de código en el evento click se escribe el código

____________________________.7. Ahora se crea la etiqueta de Nombre con el icono (______________).

8. Seleccionamos la herramienta (____________________).9. De las propiedades de este control buscamos ControlSource y seleccionamos de la lista

pacientes.nombre.10. Repetimos los pasos 6 al 8 para los demás controles.11. Insertamos el botón de comando, en la propiedad de Caption escribimos Salir y en el evento

click escribimos el código thisform._________________.12. El formulario podría quedar como a continuación se muestra.

Page 14: Base de Datos II_practicas-VFP

14

Ejercicio 14. PROCEDIMIENTOS

Planteamiento del problema: Se desea hacer un programa que ejecute otros dos llamadosCicloFor y Suma Total, de los cuales el primero da los registros que sean pares, y el segundopresentará la suma de los costos de la tabla de Tratamientos. Después se debe crear el últimoprograma que ejecutará a CicloFor y Suma Total respectivamente, sobre la consola de VisualFoxPro.

Instruciones: Llena los espacios en blanco con el código o rutas correspondientes en lospuntos que se presentan a continuación. Una vez terminado el proceso anterior, sigue paso apaso las instrucciones para su implementación en Visual FoxPro.

1. Selecciona Código del Administrador de Proyectos y luego la palabra Programas,posteriormente selecciona el botón Nuevo.

2. Guarda en el subdirectorio de Proyecto consultorio, el primer programa con el nombre deCiclofor.prg.

3. Copia el código de este programa:

&&Selecciona los registros paresdo cicloFor &&ejecuta el procedimiento

PROCEDURE cicloForclose databasesset path to «c:\escribe aquí tu ruta\proyecto consultorio»open ____________ consultorio exclusiveuse pacientesclearregistro =reccount()store 2 TO _____________ && Valor inicialstore registro TO _____________ && Valor finalstore 2 TO increm && Valor de incrementofor registro=valorinicio to valorfinal step increm

goto registro && Mueve el puntero de registrodisplay fields nombre,apellidos && Muestra el nombre del paciente

endfor

4. Guarda el código y ejecútalo con el botón Ejecutar.5. Crea otra ventana de código, siguiendo el paso 1.6. Guarda la ventana con el nombre de Costo total.7. Escribe el siguiente código:

do sumatotal

PROCEDURE sumatotalclose databasesset path to «c:\escribe aquí tu ruta\proyecto consultorio»open database consultorio exclusiveuse tratamientossum costo to costototal &&Uso de la función sum que totaliza costoendproc

Page 15: Base de Datos II_practicas-VFP

15

8. Guarda el código y ejecútalo.9. Crea la tercera ventana de código repitiendo el paso 1.10. Copia y completa el siguiente código:

DO «c:\__________________________________________\___________________»___ «c:\__________________________________________\sumatotal.prg»En este punto es importante que establezcas la ruta que tú mismo elegiste para elprocedimiento y programa sumatotal.

11. Guarda el programa en el subdirectorio Proyecto consultorio y nómbralo como �Ejecutarprogramas�.

12. Ejecuta el código.

Ejercicio 15. VARIABLES POR VALOR Y REFERENCIA

Planteamiento del problema: Se realizarán tres programas en los que se utilicen parámetrospor valor o referencia. Los programas a implementar son los siguientes:

• Función que multiplicará los parámetros.• Programa de paso de parámetros por valor a una función que multiplicará el número por 10.• Programa de paso de parámetros por referencia a una función que multiplicará el número

por 10.

Instrucciones: A continuación se presentan algunas pistas del proceso a seguir para laelaboración de los programa. Completa cuando sea necesario, una vez que termines sigue lospasos para la implementación de los programas en Visual FoxPro.

1. Selecciona del Administrador de Proyectos la pestaña Código y luego la palabraProgramas, posteriormente oprime el botón Nuevo.

2. Copia el siguiente código.

function multiplicaparameter numeronumero= numero* 10return numero

3. Guarda con el nombre de �multiplicaparámetros.prg� en el subdirectorio de Proyectoconsultorio.

4. Crea otra pantalla de código repitiendo las acciones del paso No. 1.

5. Escribe el siguiente código.

&&Variable de memoria por valordo ______________

procedure porvalorclearset _________ off

Page 16: Base de Datos II_practicas-VFP

16

____ udfparms to valuestore 1 to numero

&& El valor de número no cambia cuando termina el procedimiento@ 2,2 say �Valor modificado: � + str(multiplica(número))@ 4,2 say �Valor de numero original: � + str(número)________________ �Datos transferidos por valor�endproc

6. Guarda el archivo con el nombre de �Parámetroporvalor.prg� dentro del mismo subdirectoriodel punto 3.

7. Crea otra pantalla de código e inserta las siguientes instrucciones:

&&Variable por referenciado porreferencia

procedure __________________________________________________store 1 to numero

&&El valor de número cambia cuando termina el procedimiento@ 6,2 say �Valor modificado: � + str(multiplica(______________))@ 8,2 say �Valor de número: � + str(________________)wait window»Datos transmitidos por referencia»endproc

8. Guarda el programa con el nombre de �Parámetroporreferencia.prg�.

Ejercicio 16. REPORTE AGRUPADO POR NOMBRE DE PACIENTE

Planteamiento del problema: Se desea hacer un reporte con datos agrupados por el nombredel paciente de la vista de Consultorio con las siguientes características:

- Insertar en la barra de agrupación por nombre de paciente los campos de Nombre yApellidos.

- Insertar en la barra de detalles los campos de Nombretrat, Costo y Fecha.- Crear dos controles de campo para desplegar la Fecha y el número de página en la barra

de pie de página.

Instrución: Completa correctamente los siguientes pasos que te permitirán la generación dereporte requerido en Visual FoxPro. Una vez terminado, impleméntalo.

1. Antes de iniciar la creación del reporte establece el orden de los datos en la vista deConsultorio.

2. Abre la vista desde Datos del Administrador de proyectos y selecciona de la sección deVistas la palabra Consultorio.

3. Una vez abierto el Diseñador de vistas selecciona la pestaña de Ordenar por.

Page 17: Base de Datos II_practicas-VFP

17

4. Elimina todo lo que contenga Criterios de ordenación, seleccionando el elemento ypresionando el botón Quitar.

5. De la sección de campos seleccionados busca Pacientes.nombre y agrégalo a Criterios deOrdenación presionando el botón Agregar.

6. Guarda la vista seleccionando (Guardar) y cierra el diseñador.

7. Del _________________________ se selecciona la pestaña de _______________, luegola palabra ____________ y por último el botón Nuevo del cual se despliega un cuadro dediálogo en el que seleccionará _________________.

8. Guarda con el nombre de �ReportePacientes.frx� en el subdirectorio de Proyecto Consultorio.

9. Oprime el botón (__________________).

10. Presiona click derecho del mouse sobre la ventana que se abrió y elige la opción Agregar.

11. Del cuadro de diálogo selecciona Vistas, de la lista que se presenta elige Consultorio, despuésel botón de ____________ y finalmente Cerrar.

12. Selecciona de la vista uno a uno los campos de Nombretrat, costo y fecha y arrástralosarriba de la banda de Detalles.

13. Ahora se creará un grupo de datos con el campo de Nombre. Selecciona Agrupar datos...del menú Informe del cual se desplegará un cuadro de diálogo con el nombre Agrupardatos.

14. Elige el botón con 3 puntos, la pantalla que se desplegará es el Generador de expresiones.En la sección de Campos selecciona Consultorio.nombre y presione doble click, se insertaráen el área superior de dicha ventana, por último presiona el botón Aceptar. La pantalla deAgrupar datos quedará como sigue:

Page 18: Base de Datos II_practicas-VFP

18

15. De la pantalla anterior selecciona el botón de Aceptar y observa dentro del generador deinformes que se han creado dos bandas de agrupación.

16. Inserta los campos de Nombre y Apellidos en este grupo, por medio del control de cuadrode texto. De la barra de herramientas de reporte selecciona el botón (_____________________________________).

17. Presiona el botón (________) y dibuja un cuadro arriba de la banda de Encabezado degrupo.

18. De la opción Expresión elige el botón de 3 puntos y del generador seleccionaConsultorio.Nombre y doble click, presiona Aceptar en ambas pantallas.

19. Inserta el campo de Apellidos de la misma forma. Selecciona el botón (Campo) y dibujaun cuadro arriba de la banda de Encabezado de grupo al lado derecho del primer campo.

20. De la opción Expresión utiliza el botón de 3 puntos y del generador seleccioneConsultorio.Apellidos y doble click, presiona Aceptar en ambas pantallas.

21. Para ejecutar el reporte selecciona el botón (____________________). Observa losgrupos que se crean cuando un paciente tiene más de 1 tratamiento. Regresa al generadorde reportes presionando el botón (____________________).

22. Inserta en el reporte el número de página y la fecha. De la barra de herramientas de informe,presiona el botón Campo y dibuje un cuadro arriba de la banda de Pie de página del ladoderecho.

23. Del cuadro que se despliega selecciona de la opción Expresión el botón con los 3 puntos.

24. Del Generador de expresiones en la sección de Variables busca la palabra �_pageno� y dadoble click, presiona Aceptar en ambos cuadros de diálogo.

25. De igual forma crea otro cuadro del lado izquierdo de la banda con el botón de Campo,selecciona de la opción Expresión el botón con los 3 puntos.

26. Del Generador de Expresiones en la sección de Fecha busca y selecciona la palabra Date(),yda Aceptar a ambos cuadros de diálogo.

27. Ejecuta el reporte seleccionando el botón de Vista preliminar, ve al final de la hoja delreporte y observa la fecha del sistema y el número de página ya insertados.

28. Crea un título con el texto �Reporte por pacientes�. Describe los pasos para crearlo.

29. Guarda el reporte generado.

Page 19: Base de Datos II_practicas-VFP

19

Ejercicio 17. REPORTE AGRUPADO POR NOMBRE DE TRATAMIENTOY USO DE VARIABLE DE REPORTE

Instrucciones: Desarrolla un reporte en el que se agrupe el campo de nombre de tratamientos.Los datos que se desplegarán son rfc, nombre, apellidos, teléfono de la tabla de Pacientes; fechade la tabla de Aplicación y nombretrat, costo de la tabla de Tratamientos. Inserta una variableal reporte aplicando el IVA al costo. Para la correcta implementación en Visual FoxPro delreporte requerido, llena todos los espacios en blanco de los pasos a seguir para su realizacióny después síguelos dentro del paquete.

1. Crea primero el origen de los datos por medio de una vista.

2. Selecciona del __________________________, la pestaña de ______________.

3. Elige la palabra Vistas y luego el botón ___________. De la pantalla que se despliegaselecciona la opción de Nueva vista.

4. Una vez abierto el Diseñador de vistas, selecciona las tablas Pacientes, Aplicación yTratamientos, respectivamente. Para el cuadro de diálogo de Condición de combinaciónselecciona la opción Derecha y luego el botón Aceptar. Cierra el otro cuadro de diálogotambién.

5. Utiliza los campos ____, _________, __________, __________ de la tabla de Pacientes yenvíalos a la sección de Campos seleccionados.

6. De igual manera harás con los campos de _______ de la tabla Aplicación y ______________,_________ de la tabla de Tratamientos.

7. Elige la pestaña de OrdenarPor y de la sección ____________________selecciona el campode Nombretrat de la tabla ______________ y envíalo a la sección de ______________.

8. Guarda la vista con el nombre de �Vista Tratamientos�.

9. Para crear el reporte, del _______________ se selecciona la pestaña de _________________,luego la palabra _____________ y por último el botón _________ del cual se despliega uncuadro de diálogo en el que seleccionará Nuevo informe.

10. Guarda con el nombre de �ReportePacientes.frx� en el subdirectorio de Proyecto Consultorio.

11. Presiona el botón (_________________).

12. Da click derecho sobre la ventana que se abrió y elige la opción Agregar.

13. Del cuadro de diálogo, selecciona ____________ de la lista que se presenta elige VistaTratamientos, posteriormente seleccionamos los botones _____________ y Cerrar.

14. De la vista selecciona uno a uno los campos de rfc, nombre, apellidos y fecha y arrástralosarriba de la banda de Detalles.

15. Crea un grupo de datos con el campo de nombre de tratamientos. Selecciona Agrupardatos... del menú Informe del cual se desplegará un cuadro de diálogo con el nombreAgrupar datos.

Page 20: Base de Datos II_practicas-VFP

20

16. Utiliza el botón con 3 puntos, la pantalla que se desplegará es el _______________________.En la sección de Campos selecciona Tratamientos.nombretrar y presiona doble click, seinsertará en el área superior de dicha ventana, por último presiona el botón de Aceptardos veces.

17. Una vez creada la banda de agrupamiento por nombre de tratamiento inserta el campo denombretrat por medio de la opción de entorno de datos.

18. Añade a la función Upper para que el texto se despliegue en mayúsculas quedando laexpresión como sigue: ___________________________________.

19. Para insertar el campo de IVA, selecciona Variables del menú ______________.

20. Del cuadro de diálogo que se despliega en la sección de Variables escribe IVA.

21. En la sección de Almacenar valor selecciona el botón con 3 puntos para lo cual se desplegaráel cuadro de diálogo de Generador de expresiones.

22. La expresión queda como sigue ______________________. Presiona Aceptar dos veces.

23. Para insertar la variable al reporte de la barra de herramientas de reportes, selecciona elbotón (_______________________________________).

24. Presiona el botón (_______) y dibuja un cuadro arriba de la banda de Detalle.

25. De la opción Expresión del cuadro que se despliega, utiliza el botón de 3 puntos y delgenerador busca IVA de la sección de ___________ y presiona doble click, de Aceptar dospantallas.

26. Para ejecutar el reporte utiliza el botón de Vista preliminar. Observa los grupos que secrean cuando hay más de un tratamiento. Regresa al generador de reportes presionando elbotón de (Cerrar vista previa).

27. Inserta en el reporte el número de página. De la barra de herramientas de informe, seleccionael botón Campo y dibuja un cuadro arriba de la banda de Pie de página del lado derecho.

28. Del cuadro que se despliega utiliza la opción Expresión el botón con los 3 puntos.

29. Del Generador de expresiones en la sección de Variables busca la palabra �_pageno� y dadoble click, presiona Aceptar dos veces.

30. Ejecuta el reporte seleccionando el botón de Vista preliminar, ve al final de la hoja delreporte y verifica el número de página.

31. Inserta un título con el texto �INFORME POR TRATAMIENTO� al reporte en la bandaTítulo.

32. Para crearlo selecciona el botón ___________________, escribe el texto y da click en otrolado para aceptarlo.

Page 21: Base de Datos II_practicas-VFP

21

SECCIÓN DE PRÁCTICAS

Práctica 1. GENERACIÓN DE BASES DE DATOS

Objetivo

Al finalizar la práctica el alumno será capaz de generar la base de datos y las tablascorrespondientes a la situación de aprendizaje dada, a través de la aplicación de Visual FoxPro.

Antecedentes

Tener los conocimientos de generación de Bases de Datos Relacionales de la asignatura Basesde Datos I, así como haber realizado los ejercicios 1-3, mismos que te permitirán establecer laestructura y relaciones de las tablas necesarias para la creación de la aplicación.

Descripción del problema

Para que puedas identificar estructuras de programas, corrobores la utilización de instruccionesy comandos, y acceses la base datos a través de un lenguaje de programación, requieres unaherramienta sobre la cual probar y practicar todos los nuevos conocimientos, llámenseinstrucciones, comandos o estructuras.

Solución del problema

La herramienta necesaria a utilizar es la base de datos correspondiente al consultorioodontológico VázquezAguilar y que puedes generar a través del Administrador de Proyectosde Visual FoxPro como lo desarrollaste en Base de Datos I.

Desarrollo de la solución

1. Abrir la aplicación de Microsoft Visual FoxPro 5.0 que se encuentra en Visual FoxProdel menú de Programas del botón .

2. Selecciona del menú Archivo el comando Nuevo..., del cual se desplegará la siguiente cajade diálogo.

Page 22: Base de Datos II_practicas-VFP

22

3. Selecciona el botón Nuevo archivo y genera una nueva carpeta llamada ProyectoConsultorio en la cual guardarás tu proyecto con el nombre de CONSULTORIO.

4. Elige la pestaña Datos, verifica que esté seleccionada la opción Bases de Datos y presionael botón Nuevo

5. Verifica que la ruta de acceso sea la misma para el proyecto (carpeta Proyecto Consultorio)y guarda la base de datos con el nombre CONSULTORIO, lo cual generará la siguientepantalla.

Page 23: Base de Datos II_practicas-VFP

23

6. Oprime el botón (Nueva tabla).

7. De la nueva caja de diálogo selecciona el botón Nueva tabla, verifica la ruta y asigna elnombre Pacientes a la nueva tabla. Lo cual despliega la siguiente caja de diálogo.

8. Introduce los datos correspondientes al anexo 1a.

9. Selecciona la pestaña Índices y verifica con el anexo 1b. las características de las claves.

10. Presiona el botón Aceptar y elige la opción de no introducir registros.

11. Repite los pasos 6-10 para crear la tabla Tratamientos, consulta los anexos 2a. y 2b.

12. Repite los pasos 6-10 para crear la tabla Aplicación, consulta los anexos 3a. y 3b.

13. Establece las ligas seleccionando y arrastrando las llaves indicadas de una tabla a otra paraque quede de la siguiente forma.

14. Recuerda que puedes introducir los registros a las tablas seleccionando el comandoExaminar del menú Ver. Utiliza los anexos 1c, 2c y 3c que se localizan al final del manual.

Page 24: Base de Datos II_practicas-VFP

24

Práctica 2. USO DE VARIABLES, EXPRESIONES Y CONTROL DE FLUJO

Objetivo

El alumno será capaz de manipular la información, a través de un programa, medianteasignaciones, la implementación de una función y la aplicación de una de las instrucciones máscomunes para el control de flujo.

Antecedentes

Haber realizado la práctica 1, los ejercicios 4 y 5, además de las actividades de aprendizajesugeridas en la Guía de estudio de Bases de datos II, unidad 2.

Descripción del problema

Se requiere insertar un comentario que indique si el paciente es niño, adolescente, adulto oanciano, esto con la finalidad de otorgar algunas facilidades, como descuento a las personas dela tercera edad, o hacer cálculos de anestesia y tratamientos sugeridos. Dicho comentario seintroducirá en el campo Observaciones en letras mayúsculas.

Solución del problema

Para la solución de este problema se deben analizar todos los registros del campo edad paradeterminar si el paciente es niño, adolescente, adulto o anciano. Realizaremos un programa enel que se utilizará una función de conversión de caracteres para insertar el texto en el campoObservaciones en mayúsculas.

Desarrollo de la solución

1. Selecciona Programas de la pestaña Código y presione el botón Nuevo. Esto desplegará lasiguiente ventana.

Page 25: Base de Datos II_practicas-VFP

25

2. Introduce el código que a continuación se presenta en la ventana activa. Es importante quereconozcas que toda la información escrita después de && son comentarios sobre elfuncionamiento del programa y que también debes incluirlos en el programa que estásgenerando.

close databases &&Cierra todas las bases de datosset path to «c:\mis documentos\b_datos2\proyecto consultorio»

&&Establece la ruta donde se &&guarda la Basede Datos&&Revisa la ruta de tu BD de &&acuerdo a lacomputadora que &&estás usando y corrige lalínea.

open database consultorio exclusive &&Abre la base de datosuse pacientes &&Abre la tabla pacientes en &&un espacio de

memoria

scan &&Inicia ciclo scando case && Comienza ciclocase edad<=12 &&Compara el primer caso

&&cuando edad<=12store �Paciente infantil� to población &&Almacena

&&en la variable población el&&texto �Paciente infantil�

case edad>=13 and edad<=18 &&Compara el caso &&cuandoedad>=13 y &&edad<=18

store �Paciente Adolescente� to población&&Almacena en la variable&&población el texto �Paciente&&Adolescente�

case edad>=19 and edad<=40 &&Compara el caso &&cuando edad>=19y &&edad<=40

store �Paciente Madura� to población&&Almacena en la variable &&poblaciónel texto �Paciente &&madura�

otherwise &&Último casostore �Paciente de Tercera Edad� to población

&&Almacena en la variable &&poblaciónel texto �Paciente &&anciano�

endcase && Termina cicloreplace observaciones with Upper(población) &&Reemplaza en el &&campo

Observaciones lo &&que contienepoblaciones.

endscan &&Termina ciclo scanbrowse &&Despliega en una ventana &&los registros de la tabla

Page 26: Base de Datos II_practicas-VFP

26

3. Para revisar el programa elige el comando Compilar del menú Programa.

4. Selecciona el icono de (Ejecutar) para correr el programa.5. Posteriormente se desplegarán los datos de la tabla Pacientes. Corrobora el contenido de

los registros del campo Observaciones de dicha tabla.6. Observa cómo queda tu programa una vez que ya lo pudiste ejecutar. Es importante que

tengas mucho cuidado en el proceso de captura del programa, para evitar posibles errores.

Práctica 3. MANEJO DE REGISTROS

Objetivo

El alumno será capaz de manipular la base de datos a través de instrucciones de despliegue deinformación, inserción, eliminación y modificación de registros. Además, podrá aplicar funcionesde registros para obtener resultados específicos sobre los datos contenidos en la base de datos.

Antecedentes

Haber realizado la Práctica 2 así como los ejercicios 7 al 10 y las actividades de aprendizajesugeridas en la Guía de estudio de Bases de Datos II, unidad 3.

Descripción del problema

Se requiere realizar algunas modificaciones a la tabla de tratamientos, ya que a partir de lasiguiente semana se va a aplicar también el tratamiento de ortodoncia que tendrá un costoinicial de $ 6,000.00. Por otro lado, se desea incrementar el costo de la ortodoncia con pulpotomíade $ 100.00 a $ 120.00.

Otra modificación que necesita hacerse a la tabla es la eliminación del tratamiento de Placasparciales acrílico 8, 9, 10 y 11 piezas, ya que por experiencia se puede concluir que tantaspiezas resultan muy pesadas para el acrílico y se aconseja usar otro material.

Finalmente, se desean obtener algunos datos estadísticos que nos permitan saber los costosmayor y menor que se cobran por tratamiento, el promedio de costos de los diferentestratamientos que se realizan y de cuántos tratamientos se dispone después de haber realizadolas modificaciones.

Solución del problema

Para poder resolver el problema se requiere de la manipulación de los registros de la tablaTratamientos. Las operaciones a aplicar son la inserción para un nuevo tratamiento, lamodificación para cambiar el costo del tratamiento especificado, la eliminación física del registroque ya no se va a utilizar y finalmente la aplicación de funciones de registro para sacar todoslos datos estadísticos solicitados.

Page 27: Base de Datos II_practicas-VFP

27

Desarrollo de la solución

1. Del Administrador de Proyectos selecciona la pestaña de Código y presiona el botón deNuevo.

2. Para la ventana de código nuevo que se abre escribe el siguiente código.

close databases &&Cierra todas las bases de datosset path to «ruta en donde se encuentra tu base de datos»

&&Establece la ruta donde se&&guarda la Base de Datos&&Revisa el path de tu BD y &&corrige lalínea

open database consultorio exclusive &&Abre la base de datosuse tratamientos &&Abre la tabla tratamientos en

&&un espacio de memoria

&&Inserta registroinsert into tratamientos ( clavetrat,nombretrat,costo) ;

values («T034»,»Ortodoncia»,6000.00)browse

&&Reemplaza costoreplace costo with 120.00 while ;

nombretrat=ltrim(«ENDODONCIA PULPOTOMÍA»)browse

&&borra registrodelete for clavetrat=»T023"packbrowse

set talk onCalculate min(costo)Calculate max(costo),avg(costo)Count for clavetrat to cuenta?wait window �El número de tratamientos que se manejan son� ;

+ str(cuenta)

3. Compila el código y ejecútalo.

Page 28: Base de Datos II_practicas-VFP

28

Práctica 4. CREACIÓN DEL FORMULARIO

Objetivo

El alumno implementará una pantalla de entrada-salida del sistema, mediante la utilización deformularios, vistas, eventos y manejo de registros, con la finalidad de que sea capaz de crear lainterface del sistema con el usuario integrando así los temas vistas en la unidades I - IV.

Antecedentes

Haber realizado las prácticas 1-3 y haber resuelto los ejercicios 11 al 13, que te permitiránentender los elementos que conforman un formulario.

Descripción del problema

Se requiere una pantalla que permita al usuario el acceso a la base de datos para consultar suinformación, insertar registros nuevos a las tablas de pacientes y aplicaciones, modificar de lainformación de los registros e incluso, para borrar registros cuando ya no se utilicen.

Solución del problema

A través del Generador de Formularios se creará un formulario que despliegue la informaciónde una vista que permitirá conjuntar las tablas de pacientes, tratamientos y aplicación. Paraello se insertarán cuatro botones que permitirán realizar las acciones (Nuevo, Modificar,Eliminar y Guardar) para el manejo de los registros. Además se hará uso de otros botones queposibiliten el movimiento entre los registros y finalmente uno más de Salida del formulario.

Desarrollo de la solución

1. Del Administrador de proyectos ,selecciona la pestaña de Docs, luego la palabra Formulariosy por último el botón Nuevo. De la pantalla que se despliega elige la opción de NuevoFormulario.

2. Guarda el formulario con el nombre de Consultorio.scx en el subdirectorio de Proyectoconsultorio.

3. De la pantalla de diseño de formulario se selecciona el icono (Entorno de datos), de laventana que se presenta selecciona Vistas y por último Consultorio que es el nombre de lavista.

4. Selecciona los campos del cuadro de Consultorio y arrástralos encima del formulario, seintroduce una etiqueta y cuadro de texto por cada campo. Acomódalos como la siguientepantalla:

Page 29: Base de Datos II_practicas-VFP

29

Nota: Las flechas indican que los cuadros de texto de sexo y nombretrat van encima de loscuadros de lista.

5. Para presentar las propiedades de cada control selecciónalo y presiona click en el botón (Propiedades) o click derecho.

Nota: Elimina de todos los nombres de los controles las iniciales txt. Para establecer la propiedadde control source selecciona Fx o la lista desplegable de dicha opción.

6. Establece las siguientes propiedades y su código a los controles:

Control Propiedades CódigoForm Caption: Consultorio

Name : ConsultorioWhatsThisButton: T-VerdaderoWhatsThisHelp: T -VerdaderoWhatThisHelpID: 1

Evento Activate:set exclusive offselect consultoriothisform.refresh

public bandera, banderaclave, band_mod,banderacosto, insertaprivate costo

bandera = 0banderaclave = 0band_mod = 0banderacosto = 0inserta = 0

´

Page 30: Base de Datos II_practicas-VFP

30

Control Propiedades CódigoCveAplicacion ControlSource:

consultorio.cveaplicacionDisabledBackColor:255,255,255DisabledForeColor: 255,0,0Enabled: F � FalsoName: Cveaplicacion

RFC ControlSource:consultorio.rfcDisabledBackColor:255,255,255DisabledForeColor: 0,0,255Enabled: F � FalsoName: Cveaplicacion

Nombre ControlSource:consultorio.nombreName: Nombre

Apellidos ControlSource:consultorio.apellidosName: Apellidos

Direccion ControlSource:consultorio.direccionName: Direccion

CP ControlSource:consultorio.cpName: CP

Telefono ControlSource:consultorio.telefonoName: Telefono

Combosexo Enabled: T � VerdaderoName: CombosexoRowSource: F,MRowSourceType: 1 � ValorStyle: 2 � Lista desplegableVisible: F - Falso

Sexo ControlSource:consultorio.sexoName: Sexo

Edad ControlSource:consultorio.edadName: Edad

Peso ControlSource:consultorio. PesoName: Peso

Page 31: Base de Datos II_practicas-VFP

31

Control Propiedades CódigoEdocivil ControlSource:

consultorio. EdocivilName: Edocivil

Observaciones ControlSource:consultorio. ObservacionesName: Observaciones

Trat (combo) ControlSource:tratamientos.nombretratName: TratRowSource:tratamientos.nombretratRowSourceType: 6 �camposStyle: 2 � Lista desplegableVisible: F - Falso

Nombretrat ControlSource:consultorio. NombretratName: Nombretrat

Costo ControlSource:consultorio. CostoEnabled: F � FalsoName: Costo

Fecha ControlSource:consultorio. FechaName: Fecha

7. Inserta 4 botones al formulario en la parte inferior derecha con las siguientes propiedadesy código:

Nota: El código se introducirá en el evento (método) pulsando un click de cada botón.

Botones Propiedades CódigoInicio Caption: Inicio

Name: iniciogo top in consultoriothisform.refresh

Anterior Caption: AnteriorName: anterior

if not bof()skip -1if bof()

go bottom in consultorioendif

endifthisform.refresh

Siguiente Caption: SiguienteName: siguiente

if not eof()skip 1if eof()

go top in consultorioendif

endifthisform.refresh

Fin Caption: FinName: fin

go bottom in consultoriothisform.refresh

Page 32: Base de Datos II_practicas-VFP

32

8. Guarda el formulario en su directorio y ejecuta el formulario seleccionando el botón (Ejecutar). Con los botones de navegación puedes ir de un registro a otro dependiendo delos datos que existan en las tablas.

9. Selecciona el botón de (Modificar formulario) para introducir al formulario los siguientesbotones:

Nota: El código se introducirá en el evento (método) con un click de cada botón.

Botones Propiedades CódigoNuevo Caption: Nuevo

Name: nuevoappend blankselect aplicacionif reccount() = 0

thisform.cveaplicacion.value = "A001"banderaclave = 1

elsego bottomcuenta=recno()+1if cuenta >= 10

clave = "A0"+alltrim(str(cuenta))thisform.cveaplicacion.value= clave

elseclave = "A00"+alltrim(str(cuenta))thisform.cveaplicacion.value= clave

endifendifthisform.guardar.visible = .T.thisform.nombretrat.visible = .F.thisform.trat.visible = .T.thisform.Sexo.visible = .F.thisform.comboSexo.visible = .T.thisform.rfc.enabled = .T.

respuesta = messagebox ('NuevoTratamiento?',4+32+0,'Nuevo tratamiento parapaciente')if respuesta = 6

select consultoriothisform.rfc.enabled = .F.thisform.rfc.DisabledBackColor =

rgb(255,255,255)locate for rfc=thisform.rfc.valueif found()

Page 33: Base de Datos II_practicas-VFP

33

Botones Propiedades Códigothisform.cveaplicacion.value = clavethisform.nombre.value = nombrethisform.apellidos.value = apellidosthisform.direccion.value = direccionthisform.cp.value = cpthisform.telefono.value = telefonothisform.combosexo.value = sexothisform.edad.value = edadthisform.peso.value = pesothisform.edocivil.value = edocivilthisform.observaciones.value =

observacionesthisform.costo.value = 0thisform.fecha.value = " "inserta = 1

endifelse

bandera = 1endifthisform.refresh

Guardar(Guarda losdatos deNuevo yModificar)

Caption: GuardarName: GuardarVisible: F - Falso

local clave

&& toma los datos de formulario y los inserta en lapacientes (and band_mod = 0)if thisform.rfc.value <> " " and bandera=1 andband_mod = 0

insert into pacientes(rfc,apellidos,nombre,direccion,cp,telefono,sexo,;

edad,peso,edocivil,observaciones);values

(thisform.rfc.value,thisform.apellidos.value,;

thisform.nombre.value,thisform.direccion.value,;

thisform.cp.value,thisform.telefono.value,;thisform.combosexo.value,thisform.edad.value,;thisform.peso.value,thisform.edocivil.value,;thisform.observaciones.value)

&& toma el nombre del tratamiento e inserta en latabla de aplicación clave de aplicación&& rfc, tratamiento y fecha

Page 34: Base de Datos II_practicas-VFP

34

Botones Propiedades Código&& toma el nombre del tratamiento e inserta en latabla de aplicación clave de aplicación&& rfc, tratamiento y fecha

&&Si el registro es el primero se ejecuta un ifif banderaclave = 1

&&Selecciona clave de tratamientosselect tratamientos&&set index to nomb.idxlocate for alltrim(nombretrat) =

alltrim(thisform.trat.value)if found()

clave = clavetratendif

&& Inserta los campos de la tabla de aplicación en elprimer registro

insert into aplicacion(cveaplicacion,rfc,clavetrat,fecha);

values (thisform.cveaplicacion.value,thisform.rfc.value,;

clave,thisform.fecha.value)else

&&Selecciona clave de tratamientosselect tratamientoslocate for alltrim(nombretrat) =

alltrim(thisform.trat.value)if found()

clave = clavetratendif

&& Inserta los campos de la tabla de aplicacióninsert into aplicacion(cveaplicacion,rfc,

clavetrat,fecha);values (thisform.cveaplicacion.value,

thisform.rfc.value,;clave,thisform.fecha.value)endifwait window "Datos actualizados" nowaitthisform.guardar.visible = .F.thisform.trat.visible = .F.thisform.nombretrat.visible = .T.thisform.rfc.enabled = .F.bandera = 0

endif

Page 35: Base de Datos II_practicas-VFP

35

Botones Propiedades Código&&Inserta nuevos datos solo en aplicacion si yaexisten los datos del paciente&&en la tabla pacientes

if thisform.rfc.value <> " " and inserta = 1select tratamientoslocate for alltrim(nombretrat)= alltrim

(thisform.trat.value)if found()

clave = clavetratendif

&& Inserta los campos de la tabla de aplicacióninsert into aplicacion(cveaplicacion,rfc,

clavetrat,fecha);values (thisform.cveaplicacion.value,thisform

.rfc.value,;clave,thisform.fecha.value)

endif

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Actualiza los datos de la base de datos

if band_mod = 1if thisform.trat.value = "SIN

TRATAMIENTO"wait window "No hay tratamiento"

nowaitelseselect aplicacionlocate for cveaplicacion = thisform.

cveaplicacion.valueif found()

select pacientesreplace apellidos with thisform.

apellidos.value;,nombre with thisform.nombre.

value,direccion with thisform.direccion.value;,cp with thisform.cp.value,

telefono with thisform.telefono.value;,sexo with thisform.combosexo.

value,edad with thisform.edad.value;,peso with thisform.peso.value

,edocivil with thisform.edocivil.value;,observaciones with thisform.

observaciones.value

Page 36: Base de Datos II_practicas-VFP

36

Botones Propiedades Código&&Selecciona dato de

tratamientosselect tratamientoslocate for alltrim(nombretrat)

=alltrim(thisform.trat.value)if found()

clave = clavetratendif

&& Actualiza la tabla aplicacionselect aplicacionif rfc <> thisform.rfc.value or

clavetrat <> clave or fecha <> thisform.fecha.valuereplace rfc with thisform.

rfc.value,clavetrat with clave,;fecha with thisform.fecha.valueendifwait window "Actualizando

Datos" nowaitendif

endifthisform.inicio.visible = .T.thisform.anterior.visible = .T.thisform.siguiente.visible = .T.thisform.fin.visible = .T.thisform.salir.visible = .F.thisform.guardar.visible = .F.

endifselect Consultoriouseuse consultorio!consultorio in 0thisform.refresh

Modificar Caption: ModificarName: Modificar

&& Actualiza los datos de la tabla pacientesif alltrim(thisform.nombretrat.value) =alltrim(nombretrat)

dato = thisform.nombretrat.valuethisform.trat.value = dato

endif

&&Establece el mismo dato en el display de combosexo

if alltrim(thisform.sexo.value) = "F" oralltrim(thisform.sexo.value) = "M"

datosexo = thisform.sexo.valuethisform.combosexo.value = datosexo

endifselect consultorio

Page 37: Base de Datos II_practicas-VFP

37

Botones Propiedades Códigothisform.combosexo.visible = .T.thisform.sexo.visible = .F.thisform.trat.visible = .T.thisform.nombretrat.visible = .F.thisform.guardar.visible = .T.thisform.inicio.visible = .F.thisform.anterior.visible = .F.thisform.siguiente.visible = .F.thisform.fin.visible = .F.thisform.salir.visible = .T.band_mod = 1

Salir (Nospermitesalir de laopciónmodificar)

Caption: SalirName: salirVisible: F - Falso

&&Muestra los botones de movimiento de archivothisform.inicio.visible = .T.thisform.anterior.visible = .T.thisform.siguiente.visible = .T.thisform.fin.visible = .T.thisform.salir.visible = .F.

&&Presenta u oculta los controles de sexo, tratamientoy guardarthisform.combosexo.visible = .F.thisform.sexo.visible = .T.thisform.trat.visible = .F.thisform.nombretrat.visible = .T.thisform.guardar.visible = .F.

if banderacosto = 1thisform.iva.visible = .F.thisform.total.visible=.F.

endifEliminar Caption: Eliminar

Name: eliminarwait window "Eliminando registro" nowait

&&Elimina registro de aplicacionselect aplicaciondelete from aplicacion where cveaplicacion =thisform.cveaplicacion.value

&&Elimina registro de pacientesselect pacientesdelete from pacientes where rfc = thisform.rfc.value

&&Elimina los registros marcados con eliminacionlogicaset delete on

Page 38: Base de Datos II_practicas-VFP

38

Botones Propiedades CódigoEliminar Caption: Eliminar

Name: eliminar&&Ejecución de la vista consultorio para asegurar elcambio de los datosselect consultoriouseuse consultorio!consultorio in 0thisform.refresh

Salir Caption: SalirName: salirforma

thisform.release

Quedando la pantalla como sigue:

10. Guarda el formulario y ejecútalo con el botón de �Ejecutar�, posteriormente introducealgunos pacientes y sus tratamientos. Si es posible introduce 2 ó 3 veces a un mismo pacientecon diferentes tratamientos.

´

Page 39: Base de Datos II_practicas-VFP

39

Práctica 5. CREACIÓN DE UNA PANTALLA DE AYUDA

Objetivo

El alumno desarrollará la tabla de información que contendrá la ayuda del sistemacorrespondiente a la pantalla de interface, mediante las herramientas que brinda Visual FoxPro,con el fin de contar con la información que posteriormente se integrará a la interface.

Antecedentes

Haber realizado las actividades de aprendizaje correspondientes a Diseño de pantallas de ayudaen línea y anteriores, además de haber resuelto los ejercicios 1-13 y las prácticas 1-4.

Descripción del problema

Un aspecto importante es la integración de ventanas de ayuda al sistema del consultorio, ycomo primer paso debes generar todas las pantallas que contengan información del objetivo yfuncionamiento de cada uno de los controles contenidos en el formulario.

Solución del problema

Se creará una tabla libre que contará con 3 campos: uno para la clave de acceso, otro para lostítulos de los elementos de ayuda y el tercero para incluir las descripciones necesarias de loscontroles que conforman el formulario.

Desarrollo de la solución

1. Del Administrador de proyectos selecciona Datos, luego la palabra Tablas Libres yposteriormente el botón Nuevo; de la pantalla que se despliega selecciona Nueva Tabla eintroduce el nombre �Ayuda� en el subdirectorio Proyecto Consultorio del cuadro de diálogode Crear, por último selecciona el botón Guardar.

2. Introduce los siguientes campos y sus características.

Nombre campo Tipo Anchocontextid Numérico 2topic Carácter 70details Memo

Page 40: Base de Datos II_practicas-VFP

40

3. Introduce el texto de descripción que corresponde a cada control (botón) del formulariosegún se muestra en la siguiente tabla.

Contextid Topics Details0 Antes de comenzar Antes de comenzar12 Contenido Contenido

- Introducción* Formulario de edición de los datos del

Consultorio Vázquez -Aguilar

- Detalles de la pantalla* Nuevos datos del paciente* Modificar datos del paciente* Eliminar datos del paciente

- Reportes* Reporte agrupado por pacientes· Reporte agrupado por tratamientos y

costo total* Etiquetas con datos generales del paciente

0 Introducción Introducción

La pantalla de captura para el Consultorio Vázquez-Aguilar tiene como objetivo principal organizar toda lainformación concerniente a los pacientes y los tratamientosrequeridos.

En esta ayuda se describirán las secciones queconforman la pantalla de captura

0 Formulario deedición de los datos delConsultorio Vázquez-Aguilar

Formulario de edición de los datos del ConsultorioVázquez-Aguilar

El presente formulario permite editar los datos demodo amigable de tal forma que el usuario se familiarice encuanto lo empiece a manejar.

Este formulario contiene varias secciones de edición dedatos, fórmulas y reportes que permitirán la interrelación delusuario y el sistema adecuando funciones de entrada,modificación y eliminación de los datos. Aplica funcionesmatemáticas a los mismos dentro de la pantalla, y los reportes yetiquetas despliegan la información de manera útil y eficaz.

11 Detalles de la pantalla Detalles de la pantalla

La pantalla de edición de datos Vázquez-Aguilar definevarias secciones por las cuales el usuario puede manipular losdatos e imprimir reportes y etiquetas.

Estas secciones son:Inserción de datos del pacienteModificar datos del pacienteEliminar datos del pacienteAplicar IVA al costo de un tratamiento

y los reportes como son:Reporte agrupado por pacientesReporte agrupado por tratamientos y costo

totalEtiquetas con datos generales del paciente

Page 41: Base de Datos II_practicas-VFP

41

0 Inserción de datosdel paciente

Inserción de datos del paciente

Esta sección se utiliza para capturar los datos generalesde cada paciente y su tratamiento, del cual se asignaautomáticamente una clave consecutiva, este dato no esmodificable.

Para introducir un nuevo paciente dentro de la pantallasigue los pasos:

1.- Presiona el botón de Nuevo2.- Se desplegará un cuadro de diálogo que te

preguntará si el paciente tendrá unnuevo tratamiento.

3.- Presiona SI y verás como los cuadros de inserción selimpian para introducir los nuevos datos.

Nota: Es importante que incluyas el RFC, ya que es uncampo principal.

Nota: Introduce el dato del RFC sin equivocaciones, yaque no se permite modificar dicho dato por ser dato principal deunión entre tablas.

4.- Presiona el botón Guardar.

---------------------------Observa también: Modificar datos del paciente,

Eliminar datos del paciente, Aplicar IVA al costo de untratamiento.

---------------------------0 Modificar datos del

pacienteModificar datos del paciente

Esta etapa se utiliza para modifcar algún dato de unpaciente.

Para modificar algún dato o todos, sigue los pasos:

1.- Con los botones para navegar (Inicio, Anterior,Siguiente, Fin), busca el registro a modificar.

2.- Selecciona el botón de Modificar.3.- Escribe los nuevos datos en los campos,

dependiendo de cuál dato vaya a cambiar.Nota: Es importante resaltar que es imposible

modificar el RFC por ser un dato principal.4.- Terminando de introducir tus nuevos datos presiona

el botón Guardar.

Nota: Si no deseas modificar nada del registrosimplemente presiona el botón de Salir para dejar el modoModificar.

---------------------------Observa también: Inserción de datos, Eliminar datos

del paciente, Aplicar IVA al costo de un tratamiento.---------------------------

Page 42: Base de Datos II_practicas-VFP

42

0 Eliminar datos delpaciente

Eliminar datos del paciente

Esta etapa se usa básicamente para eliminar algúnregistro no deseado dentro de la base de datos.

Para eliminar cualquier registro lee los siguientespasos:

1.- Con los botones para navegar (Inicio, Anterior,Siguiente, Fin), busca el registro a eliminar.

2.- Selecciona el botón de Eliminar.

Nota Importante: No es posible recuperar el registroque se eliminó.

---------------------------Observa también: Inserción de datos, Modificar datos

del paciente, Aplicar IVA al costo de un tratamiento.---------------------------

0 Aplicar IVA alcosto de un tratamiento

Aplicar IVA al costo de un tratamiento

Esta operación es muy importante en el manejo de loscostos, ya que es posible dar un costo total al cliente.

Para aplicar el IVA a cualquier costo de un pacientesigue los pasos:

1.- Con los botones para navegar (Inicio, Anterior,Siguiente, Fin), busca el registro a aplicar la operación IVA.

2.- Selecciona el botón de IVA. Observa que sedespliegan dos cuadros mostrando el valor del costo por el 15%de IVA y el Gran total.

3.- Para quitar este despliegue selecciona le botónAceptar.

Nota: No es posible que los cuadros de despliegue delos valores numéricos se actualicen si va de un registro a otro,ya que aún no se programa.

---------------------------Observa también: Inserción de datos, Modificar datos

del paciente, Eliminar datos del paciente.---------------------------

10 Reportes Reportes

Los reportes son elementos necesarios que se utilizanpara el análisis de datos y seguimiento de situaciones.

Las etiquetas también son elementos importantes, yaque pueden utilizarse para etiquetar cualquier objeto con ciertosdatos o características.

Page 43: Base de Datos II_practicas-VFP

43

0 Reporte agrupadopor pacientes

Reporte agrupado por pacientes

El reporte agrupado por pacientes despliega los datosdel paciente y todos sus tratamientos. El nombre del pacientesse resalta con un color azul para determinar el inicio del grupode datos.

Para generar este reporte sigue los pasos:

1.- Selecciona el botón reportes. Observa que sedespliega un cuadro de diálgo con el nombre de Informes delconsultorio Vázquez-Aguilar.

2.- Selecciona la opción Reporte por pacientes.3.- Selecciona el botón de Presentación preliminar para

observar los datos en pantalla o el botón de Impresión si deseaslos datos ya impresos.

4.- Para cerrar esta pantalla selecciona el botón Salir.

---------------------------Observa también: Reporte agrupado por tratamientos y

costo total, Etiquetas con datos generales del paciente.---------------------------

0 Reporte agrupadopor tratamientos ycosto total

Reporte agrupado por tratamientos y costo total

El reporte agrupado por tratamientos y costo totalpermite ver los pacientes que pertenecen a cierta agrupación detratamiento, además muestra el total de cada grupo.

Para generar este reporte sigue los pasos:

1.- Selecciona el botón reportes. Observa que sedespliega un cuadro de diálgo con el nombre de Informes delconsultorio Vázquez-Aguilar.

2.- Selecciona la opción Reporte por tratamientos ycosto total.

3.- Selecciona el botón de Presentación preliminar paraobservar los datos en pantalla o el botón de Impresión si deseaslos datos ya impresos.

4.- Para cerrar esta pantalla selecciona el botón Salir.

---------------------------Observa también: Reporte por pacientes, Etiquetas con

datos generales del paciente.---------------------------

Page 44: Base de Datos II_practicas-VFP

44

4. Guarda la tabla con el nombre de Ayuda.dbf en el subdirectorio de Proyecto consultorio.

Práctica 6. ENLACE DE LA AYUDA EN EL FORMULARIO

Objetivo

Al finalizar la práctica el alumno será capaz de enlazar la información de ayuda generada entablas libres en la pantalla principal del sistema, mediante las instrucciones correspondientes,para así proporcionar al usuario una interface funcional y de fácil manejo.

Antecedentes

Haber realizado las prácticas 1-5 y haber resuelto los ejercicios 1 al 13, así como las actividadesde aprendizaje que cubren el tema: Diseño de pantallas de ayuda en línea y otras consideracionesergonómicas y estéticas.

0 Etiquetas condatos generales delpaciente

Etiquetas con datos generales del paciente

Estas etiquetas son importantes para el consultorio, yaque se utilizarán para etiquetar los expedientes de los pacientescon sus datos generales.

Para generar este reporte sigue los pasos:

1.- Selecciona el botón reportes. Observa que sedespliega un cuadro de diálgo con el nombre de Informes delconsultorio Vázquez-Aguilar.

2.- Selecciona la opción Etiquetas.3.- Selecciona el botón de Presentación preliminar para

observar los datos en pantalla o el botón de Impresión si deseaslos datos ya impresos.

4.- Para cerrar esta pantalla selecciona el botón Salir.

---------------------------Observa también: Reporte por pacientes, Reporte

agrupado por tratamientos y costo total.---------------------------

0 Help Help Menú

ContenidoMuestra el contenido general de la ayuda.

IntroducciónDescribe brevemente el uso de la pantalla de

captura del Consultorio Vázquez-Aguilar.

Detalles de la pantallaExplica el uso general de la pantalla de captura

y las funciones que la conforman.

ReportesSon informes que permiten visualizar los datos

con ciertas características de agrupación, además de crearetiquetas que se utilizarán para expedientes.

Page 45: Base de Datos II_practicas-VFP

45

Control Propiedades CódigoForm Evento Init

Public ayudausuarioayudausuario = SET("HELP",1)

set path to c:\ establece la ruta de tuproyecto\proyecto consultorio

set help to Ayuda.dbfthis.setall("HelpContextID",2)Evento Unloadset help to (ayudausuario)

Imagen Name: AyudaPicture:c:\vfp\samples\graphics\bmps\fox\help.bmp

Evento Click:help id this.HelpContextID

Descripción del problema

Una vez generada la información que contendrá la ayuda es necesario integrarla al formularioprincipal, para que desde éste se ejecute y quede completo.

Solución del problema

En el formulario se agregará un icono de ayuda que al accesarse despliegue una ventana deAyuda con la lista de contenido de los temas que se pueden consultar en la ayuda del formulario.Por otra parte, también se agregará la característica de que al posicionar el cursor sobre algunode los elementos de control del formulario y presionar F1 se desplegará la ayudacorrespondiente.

Desarrollo de la solución

1. Abre el formulario de Consultorio, seleccionando Documentos del Administrador deProyectos.

2. Inserta un control en el lado superior derecho definido en la tabla siguiente:

3. Guarda y ejecuta el formulario seleccionando el botón Ejecutar. La Ayuda de Usuario deVisual FoxPro se descargará para cargar el del programador.

4. Presiona el botón de Ayuda o selecciona la tecla F1.

5. Descarga el formulario y presiona nuevamente F1, la ayuda que se presentará es la deusuario de Visual Fox Pro.

Page 46: Base de Datos II_practicas-VFP

46

Práctica 7. PROCEDIMIENTOS

Objetivo

Crear un procedimiento que pueda ejecutarse desde un programa independiente, a través deluso de la programación estructurada y los procedimientos de búsqueda conocidos, para integrarasí nuevas estructuras que permitan la simplificación de la programación.

Antecedentes

Haber realizado las prácticas 1-6 y haber resuelto los ejercicios 1 al 14, así como las actividadesde aprendizaje que cubren el tema 2 de la unidad V.

Descripción del problema

Se desea localizar en la pantalla de consultorio a los pacientes incluidos en la base de datos, através de la introducción de su número telefónico, en el caso de no encontrarse se enviará unmensaje que así lo indique. Esto con la finalidad de realizar búsquedas inmediatas.

Solución del problema

Se creará un formulario con la programación que permita ejecutar el procedimiento de búsqueda.Este formulario por su parte será llamado desde el formulario de consultorio por medio de unbotón.

Desarrollo de la solución

1. Del Administrador de proyectos selecciona la pestaña de Código, luego la palabraProgramas y por último el botón Nuevo. De la pantalla que se despliega escribe el siguientecódigo.

&&Localiza el registro que contenga igual el teléfono&&de la caja de diálogo de buscar

do busca

Procedure buscalocal registro

store alltrim(buscar.telefono.value) to telselect consultoriolocate for alltrim(telefono) = telregistro = recno()if not found( )

wait window «No existe número telefónico» nowaitbuscar.telefono.value = « «

elsego registroconsultorio.refreshbuscar.release

endifreturn

endproc

Page 47: Base de Datos II_practicas-VFP

47

2. Guarda el programa con el nombre de Buscar.prg en el subdirectorio de Proyectoconsultorio.

3. No ejecutes el código pues será llamado del botón Buscar del formulario del mismo nombre.Para ello crearemos el formulario que lo ejecute.

4. Del Administrador de proyectos selecciona la pestaña de Documentos, luego la palabraFormularios y por último el botón Nuevo. De la pantalla que se despliega elige la opciónde Nuevo Formulario.

5. De la pantalla que se generó introduce los siguientes controles:

6. Abre tu formulario de Consultorio seleccionando Documentos, el nombre Consultorio yluego el botón de Modificar.

7. Inserta un botón con las siguientes propiedades.

8. Guarda y ejecuta el formulario seleccionando el icono �Ejecutar�.

9. Introduce un número telefónico en el cuadro de texto y presiona el botón Buscar, elformulario del Consultorio te mostrará los datos del paciente que coincidan con el teléfonobuscado.

Controles Propiedades CódigoForm Caption: Búsqueda de

paciente por teléfonoHeight: 111Name: BuscarWidth: 310

Etiqueta Caption: TeléfonoAutosize: T � VerdaderoBackStyle: 0 �TransparenteFontBold: T � Verdadero

Cuadro detexto

Name: Teléfono

Botón decomando

Caption: BuscarName: Buscar

Evento clickif thisform.telefono.value = " "

wait window "No hay valor a buscar"nowaitelse

do "c:\ruta donde guardaste tuprograma\buscar.prg"endif

Botón decomando

Caption: SalirName: Salir

Evento clickthisform.release

Control Propiedades CódigoBotón de comando Caption: Buscar

Name: buscardo form "c:\ruta dondeguardaste el formularioBuscar\proyecto consultorio\ buscar.scx"

Page 48: Base de Datos II_practicas-VFP

48

Práctica 8. PROCEDIMIENTOS Y MANEJO DE VARIABLESPOR VALOR Y REFERENCIA

Objetivo

Al finalizar esta práctica el alumno sabrá cómo manejar el paso de variables por valor o referenciaen los procedimientos, mediante el uso de las definiciones e instrucciones correspondientes,con el fin de aprovechar al máximo las posibilidades que brindan la implementación deprocedimientos.

Antecedentes

Haber realizado las prácticas 1-7 y haber resuelto los ejercicios 1 al 15, así como las actividadesde aprendizaje que cubren el tema 4 de la unidad V.

Descripción del problema

El manejo de costos de la tabla tratamientos no contiene un costo total, es decir, que el númerorepresente el valor total con un impuesto del 15%. No se desea que los valores de la tablacambien, sólo que se represente dicho número en un control de salida.

Solución del problema

Para lograr la aplicación del impuesto del 15% y el despliegue del número en algún control desalida, utilizaremos el formulario consultorio en el que le insertaremos un cuadro de textocon la llamada a un procedimiento que despliegue el valor total. Es importante que el costo semultiplique por 15% y sume, por lo que se utilizará una función que contenga estas instruccionesy que será llamado por dicho procedimiento.

Desarrollo de la solución

1. Del Administrador de proyectos selecciona la pestaña de Código, luego la palabraProgramas y por último el botón Nuevo.

2. Escriba el siguiente código dentro de la ventana:

&&Programa que envía valores por valor a la función&&funcionivado iva

procedure ivaset path to «c:\mis documentos\let\proyecto consultorio»set udfparms to valueselect consultoriostore consultorio.costo.value to costoivacostoiva= funcioniva(costoiva)consultorio.iva.value = costoivaconsultorio.iva.visible = .T.

endproc

3. Guarda con el nombre de IVA.prg dentro del subdirectorio de Proyecto Consultorio.

Page 49: Base de Datos II_practicas-VFP

49

4. Genera una nueva ventana de código. Sigue el paso 1.

5. Escribe el siguiente código en la ventana:

&&Esta función recibirá un parámetro por referencia y lo&&regresará con un porcentaje extra del 15%

Function funcionivaparameter costoivacostoiva = costoiva*1.15return costoivaendfunc

6. Guárdalo con el nombre de FunciónIVA.prg dentro del subdirectorio de Proyectoconsultorio.

7. Ahora en la pantalla de consultorio inserta controles que te permitan ejecutar los programasanteriores.

8. Inserta los siguientes controles con las siguientes características.

Control Propiedades CódigoEtiqueta Caption: Total $:

Autosize: T � VerdaderoName: TotalVisible: F � Falso

Cuadro de texto Enable: F � FalsoName: ivaVisible: F � Falso

Botón de comando Caption: IVAName: botonIVA

Evento click:do "c:\escribe tu ruta aqui\iva.prg"banderacosto = 1thisform.salir.visible=.T.thisform.total.visible=.T.thisform.salir.caption = "Aceptar"

Page 50: Base de Datos II_practicas-VFP

50

La pantalla de Consultorio puede quedar como sigue:

9. Guarda y ejecuta la pantalla Consultorio.

Práctica 9. REPORTES EN FORMULARIOS

Objetivo

Al término de la práctica el alumno será capaz de manipular reportes por medio de controlesde un formulario, desde vista preliminar hasta impresión.

Antecedentes

Haber realizado las prácticas 1-8 y haber resuelto los ejercicios 1 al 16, así como las actividadesde aprendizaje que cubren el tema 2 de la unidad VI.

Descripción del problema

Se debe generar un formulario que maneje todos los reportes que se han creado y permitadesplegarlos en vista preliminar e imprimirlos.

Solución del problema

Se crea un formulario con un cuadro de lista que contenga los nombres de los reportes que sehan creado en ejercicios. Dos botones que representen la vista preliminar e impresiónrespectivamente, estos controles tendrán el código necesario que permita el manejo de losreportes.

´

Page 51: Base de Datos II_practicas-VFP

51

Desarrollo de la solución

1. Se creará un formulario seleccionando Formularios de la pestaña Documentos delAdministrador de Proyectos. Elige el botón Nuevo y luego el de Nuevo formulario.

2. De la nueva pantalla inserta los siguientes controles:

Controles Propiedades CódigoEtiqueta Caption: Lista de reportesCuadro de edición Name: Reportes

RowSource: Reporte porpacientes,Reporte portratamientos y costototal,EtiquetasRowSourceType: 1 - Valor

Evento GotFocus:thisform.reportes.selected(1)= .T.

Etiqueta Caption: Presentación dereporte

ContenedorBotón de comando Caption: (Nada)

Name: prespreliminarPicture: c:\vfp\samples\graphics\bmps\fox\preview.bmp

Evento click:set path to "c:\escribe aquí tu ruta\proyectoconsultorio"

if thisform.reportes.selected(1) = .T.report form reportepacientes.frx

previewelse

report formreportetratamientosycostototal.frx previewendif

Botón de comando Caption: (Nada)Name: imprimirPicture: c:\vfp\samples\graphics\bmps\fox\print.bmp

Evento click:set path to "c:\mis documentos\let\proyectoconsultorio"

if thisform.reportes.selected(1) = .T.report form reportepacientes.frx

to printer promptelse

report formreportetratamientosycostototal.frx to printerpromptendif

Botón de comando Caption: SalirName: salir

Evento click:thisform.release

Page 52: Base de Datos II_practicas-VFP

52

Observa que la pantalla queda de la siguiente forma:

3. Ejecuta el formulario.

4. Ahora introduce la pantalla anterior al formulario de Consultorio. Selecciona delAdministrador de Proyectos en la pestaña de Documentos la palabra Consultorio yábrelo con la tecla Enter.

5. Introduce en la pantalla un control con las siguientes características:

La pantalla puede quedar de la siguiente manera:

6. Guarda el formulario y ejecútalo.

Control Propiedades CódigoBotón de comando Caption: Reportes

Name: reportesEvento click:do form "c:\escribe aquí turuta\reportes.scx"

´

´

Page 53: Base de Datos II_practicas-VFP

53

Práctica 10. ETIQUETAS

Objetivo

El alumno será capaz de insertar reportes de etiquetas dentro de un formulario, desplegarloen vista preliminar y manipularlo para la impresión.

Antecedentes

Haber realizado las prácticas 1-9 y haber resuelto los ejercicios 1 al 17, así como las actividadesde aprendizaje que cubren el tema 3 de la unidad VI.

Descripción del problema

Se desea generar etiquetas tipo 4143 con los datos principales del paciente, tales como: nombre,apellidos, dirección, CP y si son de México, D.F. La impresión de las etiquetas debe ser deabajo hacia arriba.

Solución del problema

Se generará la etiqueta sin la ayuda del asistente, por lo que al iniciar el diseño se selecciona eltipo de la misma para definir el tamaño del área del diseño. En el generador de etiquetas, quees muy parecido al de reportes, se insertan los campos deseados y se inserta también unaetiqueta con el texto de México, y el nombre de tu estado. Finalmente, hay herramientas quenos permiten lograr el orden de impresión deseada.

Desarrollo de la solución

1. Se crearán etiquetas seleccionando Etiquetas de la pestaña Documentos delAdministrador de Proyectos. Elige el botón Nuevo y luego el Nuevo etiqueta.

2. Del cuadro de diálogo que se despliega selecciona 4143 como tipo de etiqueta.

3. Selecciona el botón de Entorno de datos y agrega la tabla de Pacientes.

4. Inserta en la barra de detalle los campos: Nombre, Apellidos, Dirección y CP.

5. De la barra de herramientas de diseño de reportes selecciona el control de Etiqueta y daclick abajo del campo CP y escribe el texto �México,D.F.�, con otro click se acepta dichotexto. La pantalla puede quedar como sigue:

Page 54: Base de Datos II_practicas-VFP

54

6. Ejecuta las etiquetas seleccionando el botón de Vista previa.

Nota: Es importante que tomes en cuenta el orden en que serán impresas las etiquetas. Paraestablecerlo selecciona del menú Archivo el comando de Preparar página que contiene laopción de Orden al imprimir.

7. Guarda el informe con el nombre de �Etiquetaspacientes� en el subdirectorio de ProyectoConsultorio.

8. Ahora inserta la opción de etiquetas dentro del formulario de Reportes, seleccionándolo dela pestaña de Documentos.

9. Establece las siguientes variaciones al formulario Reportes.

10. Ejecuta tu formulario y realiza varias pruebas. Recuerda que el formulario de Consultoriocontiene el botón que ejecuta Reportes.

Control Propiedades CódigoCuadro deedición

RowSource: Reporte porpacientes, Reporte portratamientos y costo total,Etiquetas de pacientes

Botón Vistaprevia

Evento click:set path to "c:\ escribe tu ruta aquí\proyectoconsultorio "

if thisform.reportes.selected(1) = .T.report form reportepacientes.frx

previewelseif thisform.reportes.selected(2) = .T.

report formreportetratamientosycostototal.frx preview

elselabel form

etiquetaspacientes.lbx previewendif

endifBotónImprimir

set path to "c:\mis documentos\escribe turuta aquí\proyecto consultorio "

if thisform.reportes.selected(1) = .T.report form reportepacientes.frx to

printer promptelseif thisform.reportes.selected(2) = .T.

report formreportetratamientosycostototal.frx to printerprompt

elselabel form

etiquetaspacientes.lbx to printer promptendif

endif

Page 55: Base de Datos II_practicas-VFP

55

ANEXO 1

1a. Estructura Tabla pacientes.

1b. Registros de pacientes.

Copia los siguientes datos.

Nombre Tipo Ancho Dec Índice NullRFC Carácter 13 ­ PrincApellidos Carácter 25 ­

NormalNombre Carácter 15Dirección Carácter 30 4

CP Numérico 5 0 4

Teléfono Carácter 15 4

Sexo Carácter(bin) 1 4

Edad Numérico 2 0 4

Peso Numérico 3 2 4

Edo_civil Carácter 10 4

Observaciones Memo 4 4

Rfc Apellidos Nombre Dirección Cp Teléfono Sexo Edad Peso Edo_civil Observaciones

LUMA680323 LUNAMARTÍNEZ

ALICIA CALLEJÓNDEL GATOVIEJO # 30

1403 56066623 F 3 56 CASADA SINCOMENTARIOS

JULO560212 JUAREZLIMÓN

OLIVER MANJARES# 234

1230 58126253 M 1 85 SOLTERO PACIENTE DETERCERA EDAD

MOHL9508112 MOLINAHERNÁNDEZ

LUISGERARDO

PIRULES# 84

3012 55690036 M 4 22 SOLTERO PACIENTE CONTENDENCIAAGRESIVA CONANESTESIA

MAFD690328 MARTÍNEZFLORES

DOLORES CALLEJÓNDEL ZAPOTE# 45

1402 56912830 F 5 68 SOLTERA PACIENTEMADURA

JUGF901012 JUÁREZGARCÍA

FERNANDO CALLELÓPEZPORTILLO# 345

1420 52802526 M 9 0.3 SOLTERO PACIENTE CONDIABETES

ZALA690327 ZAVALETALUNA

ALICIA MIRAMON-TES # 456

1253 F 3 0.6 CASADA SINCOMENTARIOS

ALFM670912 ALFAROFERNÁNDEZ

MARCOANTONIO

CALLE 13# 70

5262 58269369 M 3 0.7 CASADO ALÉRGICO A LAPENICILINA

MOPC710623 MORALESPÉREZ

CAROLINA CALLEMIRAMAR# 80

1430 52417222 F 2 0.8 SOLTERA PACIENTEHIPOCONDRIACA

HEHJ961212 HERNÁNDEZHERNÁNDEZ

JACINTO AVE. FLORESSECC. 11

1403 55737094 M 4 0.3 SOLTERO SINCOMENTARIOS

ALPO680101 ÁLVAREZPUENTE

OCTAVIO PRIVADASAN ANGELAZUL # 20

1325 56928666 M 3 0.8 CASADO ALÉRGICO ALÁCIDO ACETIL-SALICILICO

Page 56: Base de Datos II_practicas-VFP

56

ANEXO 2

2a. Estructura Tabla tratamientos.

2b. Registros de tratamientos.

Nombre Tipo Ancho Dec Índice NullCve_Trat Carácter 4 ­ PrincNombTrat Carácter 45 4

Costo Numérico 5 2 4

Cve_Trat NombTrat CostoT000 Sin tratamientoT001 Endodoncias pulpotomía $100.00T002 Endodoncias un conducto (dientes) $250.00T003 Endodoncias tres conductos (molares) $750.00T004 Coronas de acero cromo $120.00T005 Profilaxis profunda $150.00T006 Profilaxis superficial $100.00T007 Aplicaciones tópicas de fluor $150.00T008 Blanqueamiento de dientes $3,000.00T009 Obturación con amalgamas y resinas $100.00T010 Extracciones piezas temporales $80.00T011 Extracciones piezas permanentes $100.00T012 Incrustaciones liga de plata $270.00T013 Incrustaciones oro $800.00T014 Incrustaciones porcelana $850.00T015 Unidad de prótesis fija metal acrílico $400.00T016 Unidad de prótesis fija metal porcelana $850.00T017 Unidad de prótesis fija jacket acrílico $220.00T018 Unidad de prótesis fija jacket metal acrílico $400.00T019 Unidad de prótesis fija jacket porcelana $850.00T020 Prótesis removibles metal acrílico (unidad) $200.00T021 Placas parciales acrílico de 2 a 4 piezas $700.00T022 Placas parciales acrílico 5,6 y 7 piezas $1,200.00T023 Placas parciales acrílico 8,9,10 y 11 piezas $1,600.00T024 Placas parciales porcelana de 2 a 4 piezas $1,800.00T025 Placas parciales porcelana 5,6 y 7 piezas $3,100.00T026 Placas parciales porcelana 8,9,10 y 11 piezas $4,900.00T027 Placas parc. de valplast unilateral $1,800.00T028 Placas parc. de valplast bilateral $3,600.00T029 Placas totales acrílico $2,000.00T030 Placas totales porcelana $4,000.00T031 Cirugía menor de tercer molar $1,000.00T032 Radiografía Periatical $60.00T033 Radiografía oclusal $80.00

Page 57: Base de Datos II_practicas-VFP

57

Anexo 3

3a. Estructura Tabla aplicación.

3b. Registros de Tratamientos.

Nombre Tipo Ancho Dec Índice NullCveaplicación Carácter 4 ­ PrincRFC Carácter 13 ­ NormalClavetrat Carácter 4 2 ­ NormalFecha Fecha 8 4

Cveaplicación Rfc Clavetrat FechaA001 JULO560212 T002 23/12/99A002 MAFC690328 T001 3/05/00A003 JULO560212 T003 30/01/00A004 MOHL950812 T001 12/11/99A005 MOHL950812 T001 16/02/00