Diferencia entre revisiones de «Cómo crear una pantalla de mantenimiento de datos»
(→Crear pantalla) |
(→Configurando las funciones) |
||
Línea 100: | Línea 100: | ||
El primero será un "[[Funciones#g_modificar|g_modificar]]" que pertenece al control 8, así pues, editamos la función: | El primero será un "[[Funciones#g_modificar|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 | select per_nom, per_cog1, per_cog2, per_telf, per_data from persona where oid=#024 | ||
− | y en "Pares de campos o descripción: | + | y en "Pares de campos o descripción": |
001062,002063,003064,004065,005066 | 001062,002063,003064,004065,005066 | ||
Línea 117: | Línea 117: | ||
===Configurar la grid=== | ===Configurar la grid=== | ||
====Control 10==== | ====Control 10==== | ||
− | Aquí usaremos "[[Funciones#g_modificar|g_list]]" que | + | Aquí usaremos "[[Funciones#g_modificar|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 like '#062%'| and per_cog1 like '#063%'| and per_telf like '#065%'| | ||
+ | y en "Pares de campos o descripción" le decimos el espació que ocupará cada campo: | ||
+ | X20X20X20X09 | ||
+ | |||
+ | ====Control 36==== | ||
+ | Usa la función "[[Funciones#g_rellena|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 |
Revisión del 18:48 19 mar 2009
Aquí se explica la creación desde 0. En nuestro ejemplo crearemos una libreta de direcciones.
Contenido
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 . 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 .
Como es una pantalla para rellenar datos, seleccionamos la opción "Botonera estándar".
Más o menos quedaría cómo la imagen 1, y nos genera una pantalla cómo la imagen 2:
Añadir una grid
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 grid. 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.
Tabla «public.persona» Columna | Tipo | Modificadores + + per_nom | character varying(40) | per_cog1 | character varying(40) | per_cog2 | character varying(40) | per_telf | character varying(9) | per_data | date |
Para ello usaremos el asistente para cada uno de los controles.
- Acuérdate de apuntarte el número de control de cada uno, ya que los usaremos luego.
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: _pernom --> Nombre Posic1: 060,330 Posic2: 180,0 Núm. dígitos: 40 Tabulador: 5
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: _percog1 --> Primer apellido Posic1: 250,330 Posic2: 400,0 Núm. dígitos: 40 Tabulador: 10 Pos. etiq.: I
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: _percog2 --> Segundo apellido Posic1: 250,370 Posic2: 0,0 Núm. dígitos: 40 Tabulador: 15 Pos. etiq.: I Atrib. buscar: 10
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
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: _pertelf --> Teléfono Posic1: 550,330 Tabulador: 25 Atrib. buscar: 10
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 referencias. 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
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 like '#062%'| and per_cog1 like '#063%'| and per_telf like '#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