Está en la página 1de 20

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION II MECANICA
CICLO I - 2023

GUIA DE LABORATORIO Nº 6
Controles y Datos en VFP (Objetos, propiedades y eventos)

Objetivo:
 Utilizar controles que permitan interactuar con los datos de una base de datos.
 Conocer y configurar el control cuadricula.
 Conocer el entorno de datos en un formulario.

Consideraciones
- Debe de continuar trabajando dentro de su proyecto “PermisosUes”.

Abrir su proyecto por medio de la instrucción SET DEFAULT TO y la Carpeta


donde se ubica su proyecto.

En la ventana de Comando, digite las instrucciones de entorno SET:


SET STRICT TO 0 && Fechas eliminando horas, minutos y segundos
SET CENTURY ON && el año aparece con 4 digitos.
SET DATE TO British && Formato de fecha primero dia, luego mes.

Ejemplo No. 1
Crear un formulario que muestre los datos de los empleados y permita el
desplazamiento entre sus registros:

Nombre del formulario: FormData001

1
Controles del formulario

Lista de Controles:
Objeto Tipo Cantidad Descripción
Formulario Form 1 Ventana que contendrá
controles
Etiqueta Label 1 Mostrar objetivo del Formulario.
Cuadricula Grid 1 Muestra los datos de
empleados.
Botones de comando Command 5 Para desplazar a través de los
registros.

Diseño del formulario:


- Seleccione crear nuevo formulario.
- Desde la barra de controles ingrese los que aparecen en la lista anterior:

Nuevo control: Cuadricula (Grid):


Objetivo: muestra las columnas de una tabla.
Cuadricula

El diseño del formulario es similar a la siguiente figura:

Aplique las propiedades a cada uno de los controles según figura de pagina 1.

Establecimiento del vínculo entre el control Cuadricula y la tabla Empleados a


través de asistente:
- Seleccione la cuadricula.
- Clic con el botón derecho del raton.
- En el menú desplegado seleccione Builder.

2
Cuadricula Grid1:

Se muestra la ventana Grid Builder, con las fichas para personalizar su cuadricula:

Grid Items

Los datos a mostrar del


empleado son:

- Nit
- Apellidos.
- Nombres.
- Genero

Estilo:
- Ledger

3
Distribución:

Modificar:
- Títulos de las
Columnas.
- Ancho de las
columnas.

Relaciones:

Se utiliza para relacionar la


cuadricula a otras tablas,
ejemplo: formularios uno a
muchos, para este ejemplo
no es necesario, solo
participa una tabla.

Para cerrar el asistente, clic


sobre el botón Ok

Diseño del formulario:

Aplique las propiedades a los diferentes controles según figura de la pagina 1.

4
Entorno de datos:
Para poder visualizar las tablas vinculadas a los controles realice los siguientes
pasos:

1) Seleccione el formulario.
2) Clic sobre el área del formulario.
3) En el menú desplegado seleccione la opción entorno de datos.
4) Verifique que se encuentre la tabla Empleado

Entorno de datos:

Entorno de Datos
Vinculados

5
Las tablas también tienen propiedades, como por ejemplo Order que permite
ordenar la tabla en función de un índice.
Pasos para mostrar las propiedades de una tabla:
1) Seleccione la tabla Empleado en la ventana de entorno de datos.
2) Clic sobre el área de la tabla.
3) En el menú desplegado seleccione la opción propiedades.

Se muestra como mostrar las propiedades de una tabla:

Tabla y sus propiedades:

Modificar algunas propiedades de la tabla:


Propiedad Valor Descripción
Alias Empleados Nombre de la tabla en el formulario.
BufferModeOverride 5 Puede ser actualizado por varios usuarios.
Exclusive .F. Puede consultarse en Red.
Order Apellidos Se ordenara por campo Apellidos (diseño).
ReadOnly .T. La cuadricula, solo es de lectura.

6
Programación de eventos
Boton titulado Inicio:

Boton titulado Siguiente:

Boton titulado Previo:

7
Boton titulado Ultimo:

Boton titulado Cerrar:

Ejecute el formulario

8
Ejemplo No. 2
Crear un formulario que permita adicionar únicamente registros a la tabla Deptos,
con la característica que asigne automáticamente el código de la Unidad (08, 09,
10, 11, según sea el siguiente numero disponible y no sea digitado por el usuario),
el usuario únicamente debe digitar la descripción y no estar obligado a recordar el
codigo.

Para poder crear este formulario es necesario lo siguiente:

Modificación en el diseño de base de datos:


Las llaves de la mayoría de tablas del proyecto están formadas por números y son
de tipo carácter, rellenando los campos con ceros (ejemplo: 01, 02, 03, etc).
Es difícil recordar cual fue el último código asignado, por lo que se creara una
nueva tabla llamada Contador que se encargara de guardar el último numero
asignado al en las tablas que utilizan este formato.

Creación de la tabla Contador: y sus registros:


En el diseñador de base de datos, crear una nueva tabla con el nombre Contador,
su estructura es:

Estructura basica:
Campo Tipo de Dato Ancho Descripción
Idtabla Carácter 20 Nombre de la tabla.
Ultimo Numerico 10, 0 Ultimo numero asignado.
Detabla Carácter 40 Descripción de la tabla.

Estructura en VFP:

Indice:

Así se muestra la nueva tabla, en el diseñador de base de


datos:

9
Registros de la tabla contador
Para cada tabla que aparece en la siguiente figura, debe verificar el numero que
tiene el ultimo registro y guardarlo en el campo Ultimo, según la tabla que
corresponda. Ejemplo Deptos tiene 10 registros y el ultimo es 10.

Las tablas Empleados y Detaper, tienen sus propias llaves.

La forma como se asignara la llave primaria se describirá mas adelante a través


de código de programación.

Creación de Formulario:

Nombre del formulario: FormData002

10
Descripción de su funcionamiento:
Al seleccionar el botón “Agregar”, aparece la caja de texto para que el usuario
digite el nombre de la Unidad (este esta oculto), el texto de los botones cambian a
Guardar y Cancelar respectivamente.
Al seleccionar el botón Guardar se verifica el ultimo numero en la tabla contador
de la tabla correspondiente y se incrementa en uno, asignando este a la tabla
indicada y remplazando este nuevo numero en tabla contador.

Listado de Controles
Objeto Tipo Cantidad Descripción
Tabla Cursor 2 Deptos y Contador
Formulario Form 1 Ventana que contendrá controles
Etiqueta Label 2 Mostrar objetivo del Formulario.
Cuadricula Grid 1 Muestra las Unidades y descripción.
Caja de texto TextBox 1 Para capturar nombre de la Unidad.
Botones de comando Command 2 Para agregar/guardar y
cancelar/cerrar.

El diseño del formulario es similar a la siguiente figura:

Vincular la cuadricula a la
tabla Deptos por medio del
asistente
(ver ejemplo 1)

Nuevas propiedades:
Objeto: Etiqueta 2
Propiedad Valor Comentario
Name Label2 Nombre único del objeto.
Caption Descripción: Texto a mostrar junto a la Caja de texto.
Visible .F. No se muestra el control en tiempo de
ejecución

Objeto: Caja de Texto


Propiedad Valor Comentario

11
Name Text1 Nombre único del objeto.
Format ! Caracteres alfabéticos en mayúsculas.
Visible .F. No se muestra el control en tiempo de
ejecución.

Entorno de Datos
Adicion de la tabla contador al entorno de trabajo:

Entorno de Datos y sus propiedades:


Se utilizaran las tabla Empleados y Contador, la primera para agregar un nuevo
registro y la segunda para contabilizar el ultimo numero asignado.
- Seleccione el formulario.
- Clic derecho del ratón sobre el formulario.
- En el menú desplegable seleccione DataEnvironment

Clic sobre el fondo Clic en Add..


Iddepto de esta pantalla. Iddepto
Dedepto Dedepto
Luego clic derecho
del raton.

Se muestra la lista de tablas disponibles para su adición a este formulario:

Iddepto
Dedepto

Seleccione
Contador

El entorno de datos queda formado por:

12
Iddepto
Dedepto

Modifique las siguientes propiedades de la tabla Deptos y Contador.


Objeto: Tabla Deptos
Propiedad Valor Comentario
BufferModeOverride 5 Tabla optimista Se puede actualizar la tabla.
Exclusive .F. El uso de la tabla no es de uso
exclusivo, puede ser utilizada por mas
de un usuario.
Order Pkdeptos Se ordenara por la llave (según diseño)

Objeto: Tabla Contador


Propiedad Valor Comentario
BufferModeOverride 5 Tabla optimista Se puede actualizar la tabla.
Exclusive .F. El uso de la tabla no es de uso
exclusivo, puede ser utilizada por mas
de un usuario.
Order Pkcontador Se ordenara por la llave (según diseño)

Formulario en modo diseño:

13
Programación de eventos
Boton titulado Agregar

* En titulo "Agregar": Habilita caja de texto para agregar


* nuevo registro.
* En titulo "Guardar": Guarda un nuevo registro y ctualiza *
el ultimo numero asignado como llave en contador.

DO CASE
CASE THISFORM.COMMAND1.CAPTION = "Agregar"
* Son visibles la caja de texto y descripción *
THISFORM.LABEL2.Visible = .T.
THISFORM.TEXT1.Visible = .T.
THISFORM.TEXT1.Value = " "

* Los titulos de los botones cambian a Guardar y


* Cancelar
THISFORM.COMMAND1.CAPTION = "Guardar"
THISFORM.COMMAND2.CAPTION = "Cancelar"

CASE THISFORM.COMMAND1.CAPTION = "Guardar"


* Verifica el ultimo numero en contador, lo
* incrementa en uno y lo inserta en Deptos,
* ademas de reemplazarlo en Contador
* Captura de la descripcion de la caja de texto a
* una variable
cDedepto = THISFORM.TEXT1.VALUE

* Captura del numero desde Contador: busqueda en


* Contador
SELECT Contador
SET ORDER TO PkContador IN Contador

IF SEEK("DEPTOS")
* Se encontro el registro *
* Se captura el numero del campo ultimo a
* una variable
nNumero1 = Contador.Ultimo
* nuevo numero que sera asignado y
* actualizado en contador.
nNumeromas1 = nNumero1 + 1

* El nuevo numero se convierte a caracter *

14
cNumeromas1 = STR(nNumeromas1, 2, 0)
* Se eliminan espacios en blanco ejem: "4"
cNumeromas1 = ALLTRIM(cNumeromas1)
*se concatena colocando dos ceros a la
*izquierda "004"
cNumeromas1 = "00" + cNumeromas1
* se extraen dos caracteres partiendo del
* lado derecho "04"
cNumero2 = RIGHT(cNumeromas1, 2)

* Una vez se tiene el nuevo numero se agrega


*cNumero2 y CDedepto a la tabla Deptos *
INSERT INTO Deptos (Iddepto, Dedepto) VALUES
(cNumero2, cDedepto)

* Se actualiza el el ultimo numero asignado


* en la tabla Contador *
UPDATE Contador SET Ultimo = nNumeromas1
WHERE IdTabla = "DEPTOS"

* Se ocultan los controles caja de texto y


*su descripción *
THISFORM.LABEL2.Visible = .F.
THISFORM.TEXT1.Visible = .F.
THISFORM.TEXT1.Value = " "

* Los titulos de los botones cambian a


*Guardar y Cancelar
THISFORM.COMMAND1.CAPTION = "Agregar"
THISFORM.COMMAND2.CAPTION = "Cerrar"

ELSE
MESSAGEBOX("En este momento no es posible
ingresar datos, intente mas tarde !!!")
ENDIF

ENDCASE
THISFORM.REFRESH

15
Boton titulado Cerrar

16
Ejemplo No. 3
Crear un formulario que permita modificar el nombre de los Departamentos, con la
característica que este nombre sea seleccionado desde la tabla Deptos.

Nombre del formulario: FormData003

Descripción de su funcionamiento:
La unidad a modificar debe seleccionarse desde la cuadricula
Al seleccionar el botón “Modificar”, aparecen una etiqueta y dos cajas de texto
mostrando la unidad seleccionada y los botones con las opciones ”Guardar” y
“Cancelar” respectivamente.
Al seleccionar el botón Guardar, se guardan los cambios.
Al seleccionar el botón Cancelar, se las modificaciones no se realizan.

Listado de Controles
Objeto Tipo Cantidad Descripción
Tabla Cursor 2 Deptos
Formulario Form 1 Ventana que contendrá
controles
Etiqueta Label 1 Mostrar objetivo del Formulario.
Cuadricula Grid 1 Muestra las Unidades y
descripción.
Botones de comando Command 2 Para eliminar y cerrar.

17
El diseño del formulario es similar a la siguiente figura:

Modifique las siguientes propiedades de las cajas de texto:


Objeto: Text1
Propiedad Valor Comentario
InputMask 99 Solo acepta caracteres numéricos.
Visible .F. No se muestra este control.

Modifique las siguientes propiedades de las cajas de texto:


Objeto: Text2
Propiedad Valor Comentario
Format ! Caracteres alfabeticos en mayusculas.

18
Programación de eventos
Objeto: Boton Command1, Evento: Click

DO CASE
CASE THISFORM.COMMAND1.Caption = "Modificar"
* Los datos son capturados desde las tablas *
cIddepto = THISFORM.GRID1.COLUMN1.TEXT1.VALUE
cDedepto = THISFORM.GRID1.COLUMN2.TEXT1.VALUE

* La descripcion de la Unidad se traslada hacia la caja de


* texto Text1 en *
* la propiedad VALUE
THISFORM.TEXT1.Value = cIddepto
THISFORM.TEXT2.Value = cDedepto

* la caja de texto y su descripcion se vuelven visibles


THISFORM.LABEL2.Visible = .T.
THISFORM.TEXT2.Visible = .T.

* Cambio de los titulos de los botones *


THISFORM.COMMAND1.CAPTION = "Guardar"
THISFORM.COMMAND2.CAPTION = "Cancelar"

CASE THISFORM.COMMAND1.Caption = "Guardar"


* Se copia el dato capturado en caja Text1 a una variable *
cIddepto = THISFORM.TEXT1.VALUE
cDedepto = THISFORM.TEXT2.VALUE

* Actualizacion en la tabla *
UPDATE Deptos SET Dedepto = cDedepto WHERE Iddepto = cIddepto

* la caja de texto y su descripcion se vuelven visibles


THISFORM.LABEL2.Visible = .F.
THISFORM.TEXT2.Visible = .F.

* Cambio de los titulos de los botones *


THISFORM.COMMAND1.CAPTION = "Modificar"
THISFORM.COMMAND2.CAPTION = "Cerrar"

ENDCASE
THISFORM.REFRESH

19
Objeto: Boton Command2, Evento: Click

Ejercicios propuestos:
Hacer los formularios de los tres ejercicios en las tablas: Permisos., Puestos y
Tipoper.

Hacer formulario de eliminación de Departamentos

20

También podría gustarte