Diferencia entre revisiones de «Cómo crear una pantalla de mantenimiento de datos»

De WikiDgp21
Saltar a: navegación, buscar
(Añadir los controles)
Línea 35: Línea 35:
 
Para ello usaremos el [[dgmpant05|asistente]] para cada uno de los controles.
 
Para ello usaremos el [[dgmpant05|asistente]] para cada uno de los controles.
  
 +
[[Imagen:dgmpant05.png|thumb|250px|]]
 
===Control nombre===
 
===Control nombre===
 
Lo que hemos echo es no mostrar los 40 caracteres ya que es raro tener amigos cuyo nombre sea de casi 40 caracteres.
 
Lo que hemos echo es no mostrar los 40 caracteres ya que es raro tener amigos cuyo nombre sea de casi 40 caracteres.

Revisión del 14:03 20 mar 2009

Aquí se explica la creación desde 0. En nuestro ejemplo crearemos el mantenimiento para una libreta de teléfonos. Esto implica, que una vez terminemos podremos añadir, borrar, ver y modificar datos en una misma pantalla. Hemos creado una tabla "persona":

create table persona (
per_nom varchar(40),
per_cog1 varchar(40),
per_cog2 varchar(40),
per_telf varchar(9),
per_data date);

Buscar pantalla

Lo primero que hay que hacer es confirmar que no exista ya una pantalla con nuestro nombre, así nos ahorraremos más de un susto. En nuestro caso crearemos una pantalla que se llame personas, ya que introduciremos los nombres desde ahí. Cómo nos sale que no hay ningún control en esa pantalla, significa que no existe.

Crear pantalla

Pulsaremos al Asistente de pantallas Boto 122.png. En nuestro caso, crearemos una pantalla y seleccionamos el literal con el título de nuestra pantalla. Si no existe tu literal, puedes crearlo pulsando Boto 049.png.

Como es una pantalla para rellenar datos, seleccionamos la opción "Botonera estándar", la cual nos permite hacer el mantenimiento básico de los datos; añadir, borrar, mostrar, modificar.

Más o menos quedaría cómo la imagen 1, y nos genera una pantalla cómo la imagen 2:

Imagen 1
Imagen 2


Añadir una grid

Creagrid.png

Crear la grid

Cómo lo que queremos es añadir datos y mostrarlos, la grid será nuestra herramienta para visualizarlos. Para crear una grid, sólo debemos pulsar en el asistente de gridBoto 127.png. En nuestro caso hemos dejado los valores por defecto, ya que te lo deja todo centrado y con los controles estándar, que están definidos en Controles fijos.

Añadir los controles

En nuestro caso debemos rellenar la tabla "persona", para ello solo necesitaremos 5 controles.

Para ello usaremos el asistente para cada uno de los controles.

Dgmpant05.png

Control nombre

Lo que hemos echo es no mostrar los 40 caracteres ya que es raro tener amigos cuyo nombre sea de casi 40 caracteres.

Tipo de control: Caja texto alfanumérico
Etiqueta: per_nom --> Nombre
Posic1: 060,330
Posic2: 180,0
Núm. dígitos: 40
Tabulador: 5
Tabla destino: persona
Campo destino: per_nom

Control Apellido

Este lo pondremos al lado del Nombre y con la etiqueta al lado izquierdo, para ello deberemos dejar espació entre el Nombre y el apellido ya que la etiqueta se situará enmedio:

Tipo de control: Caja texto alfanumérico
Etiqueta: per_cog1 --> Primer apellido
Posic1: 250,330
Posic2: 400,0
Núm. dígitos: 40
Tabulador: 10
Pos. etiq.: I
Tabla destino: persona
Campo destino: per_cog1

Control Apellido 2

Este lo situaremos debajo del primer apellido y dejaremos que ocupe los 40 caracteres:

Tipo de control: Caja texto alfanumérico
Etiqueta: per_cog2 --> Segundo apellido
Posic1: 250,370
Posic2: 0,0
Núm. dígitos: 40
Tabulador: 15
Pos. etiq.: I
Atrib. buscar: 10
Tabla destino: persona
Campo destino: per_cog2
Imagen 3

Control Teléfono

Este lo pondremos al lado del primer apellido y encima del segundo apellido:

Tipo de control: Caja texto alfanumérico
Etiqueta: _pertelf --> Teléfono
Posic1: 410,330
Posic2: 0,0
Núm. dígitos: 9
Tabulador: 20
Tabla destino: persona
Campo destino: per_telf

Fijaros que en este caso el nombre de la etiqueta no corresponde con el de la base de datos, esto hará que al final no vea correctamente. Quiero verlo!

Control Fecha

Con este tipo de control no podremos modificar tantas cosas, ya que la mayoría vienen por defecto:

Tipo de control: Caja texto fecha
Etiqueta: per_data --> Teléfono
Posic1: 550,330
Tabulador: 25
Atrib. buscar: 10
Tabla destino: persona
Campo destino: per_data

Ya tenemos creada nuestra ventana tal y como se ve en la Imagen 3.

Configurando las funciones

Estos han sido los controles que han salido:

Nombre=062
Primer apellido=063
Segundo apellido=064
Teléfono=065
Fecha de nacimiento=066

Vamos a buscar las funciones que deben ser configuradas, para ello pulsamos en Buscar referenciasBoto 108.png. Buscamos "<tabla>" y nos saldrán 6 lineas, las cuales debemos modificar una a una, 4 pertenecen a la botonera estándar y los otros 2 a la grid.

Configurando la "Botonera estándar"

Control 8

El primero será un "g_modificar" que pertenece al control 8, así pues, editamos la función:

select per_nom, per_cog1, per_cog2, per_telf, per_data from persona where oid=#024

y en "Pares de campos o descripción":

001062,002063,003064,004065,005066

también debes comprobar que los parámetros de la función sean:

0,

Control 9

Aquí se usa un "g_borrar" que pertenece al control 9, así pues, editamos la función:

delete from persona where oid = #024

Control 11

En este caso, pertenece al update y al insert, ambos usan un "g_ejecuta".

  • Insert
insert into persona (per_nom,per_cog1,per_cog2,per_telf,per_data) values ('#062','#063','#064','#065','#066')
  • Update
update persona set per_nom='#062', per_cog1='#063',per_cog2='#064',per_telf='#065',per_data='#066' where oid=#024

Configurar la grid

Control 10

Aquí usaremos "g_list", en esta select, le ponemos los campos que queremos mostrar en la grid, fijaros que después de cada control se le añade "|"; sirve para decirle al programa que en caso que el control este vació, ignore esa condición. Así pues, editamos la función:

select per_cog1, per_cog2, per_nom, per_telf from persona where per_nom ilike '#062%' and per_cog1 ilike '#063%' and per_telf ilike '#065%'

y en "Pares de campos o descripción" le decimos el espació que ocupará cada campo:

X20X20X20X09

Control 36

Usa la función "g_rellena" para poner los campos en su correspondiente control, así pues quedaría algo cómo esto:

select persona.oid,per_nom,per_cog1,per_cog2,per_telf,per_data from persona where oid = #006

y en "Pares de campos o descripción" le decimos donde guardar cada campo:

001024,002062,003063,004064,005065,006066

Vista Final

Pues aquí está nuestra pantalla de mantenimiento. Cómo podemos ver, la columna "per_telf" no ha salido con el título correcto, ya que el sistema de traducir literales requiere que el nombre del literal sea el mismo que el campo de la tabla, en este caso debería haber sido "per_telf" en vez de "_pertelf".


Crear una pantalla 04.png