Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Comenzando a trabajar con JFormsBuilder3.1
Tabla de contenido
Introducción ............................................................................................................................. 5
Capitulo 1. ................................................................................................................................ 6
1.1. Conceptos básicos ...................................................................................................... 6
1.2. Familiaricémonos con la herramienta. ........................................................................ 6
1.2.1. Menú Principal. .................................................................................................. 7
1.2.2. El navegador de objetos...................................................................................... 8
1.2.3. El panel central. ................................................................................................ 11
1.2.4. El panel derecho. .............................................................................................. 11
1.3. Creemos una forma .................................................................................................. 12
1.3.1. Prerrequisitos. .................................................................................................. 12
1.3.2. Creación del proyecto ....................................................................................... 16
1.3.3. Creación de la forma ......................................................................................... 17
Creación del proyecto en Eclipse. ......................................................................................... 27
Generación de la forma y Ejecución desde Eclipse. ............................................................. 30
Capitulo 2. .............................................................................................................................. 33
2.1. Examinando una forma. ............................................................................................... 33
2.1.1. Propiedades. .......................................................................................................... 33
2.1.2. Eventos:................................................................................................................. 37
2.1.2.1. Al entrar en una forma. ...................................................................................... 37
2.1.2.2. Durante la ejecución de una forma. ..................................................................... 38
2.1.2.3. Al salir de una forma. .......................................................................................... 39
Capitulo 3. .............................................................................................................................. 41
3.1. Examinando un Data. ................................................................................................... 41
3.1.1. Propiedades:.......................................................................................................... 41
3.1.2. Eventos:................................................................................................................. 50
3.1.2.1. Eventos al navegar: ............................................................................................. 50
3.1.2.2. Eventos al interactuar con las fuentes de datos: ................................................... 53
3.1.2.2.1. Eventos al efectuar una consulta: ..................................................................... 53
3.1.2.2.2. Eventos al llamar al built-in “ Post” o “Commit”: ............................................... 55
2
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 4. .............................................................................................................................. 59
4.1. Propiedades: ................................................................................................................ 59
4.1.1. Propiedades dependiendo del tipo de componente: ........................................... 70
4.1.2 Propiedades De los RadioButtons: ....................................................................... 72
4.2. Eventos: ....................................................................................................................... 75
4.1.1. Eventos al navegar:................................................................................................ 75
Capitulo 5 ............................................................................................................................... 78
5.1. Tipos de Paneles: ..................................................................................................... 78
5.2. Propiedades comunes a todos los tipos de Paneles: .................................................. 79
5.3. Propiedades específicas para cada tipo de Panel: ..................................................... 81
5.3.1. Panel Principal:................................................................................................. 81
5.3.2. Panel apilado: .................................................................................................. 81
5.3.3. Panel Tipo Pestañas: ......................................................................................... 82
5.3.4. Páginas de pestañas: ........................................................................................ 83
5.3.5. Panel Barra de Herramientas ............................................................................ 84
5.3.6. Panel Tipo Grilla ............................................................................................... 85
Capitulo 6 ............................................................................................................................... 87
6.1. Tipos de Object Graphics ....................................................................................... 87
6.2. Propiedades comunes a los Object Graphics......................................................... 87
6.3. Propiedades específicas a los diferentes Object Graphics. ................................... 88
6.3.1. DFrame. ........................................................................................................... 88
6.3.2. Ellipse............................................................................................................... 89
6.3.3. Image............................................................................................................... 90
6.3.4. Line .................................................................................................................. 91
6.3.5. Rectangle ......................................................................................................... 91
6.3.6. Rounded Rectangle........................................................................................... 92
6.3.7. Text Graphic ..................................................................................................... 93
Capitulo 7 ............................................................................................................................... 94
7.1. Tipos de SQLStatement. ................................................................................................ 94
Capitulo 8 ............................................................................................................................. 100
8.1. Conceptos básicos de las lista de ayuda....................................................................... 100
3
Comenzando a trabajar con JFormsBuilder3.1
4
Comenzando a trabajar con JFormsBuilder3.1
Introducción
JFormsBuilder es una IDE (Ambiente de Desarrollo Integrado por sus siglas en ingles) que
nos permite desarrollar aplicaciones web empresariales. Las aplicaciones construidas con
JFormsBuilder se ejecutan sobre cualquier servidor de aplicaciones que soporte el JRE
(Java Runtime Environment) versiones 5.0 o 6.0 y se visualizan sobre cualquier navegador
moderno. Pruebas con resultados positivos se han efectuado sobre Firefox, Safari, Opera e
Internet Explorer.
5
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 1.
Para poder crear una aplicación con JFormsBuilder, primero necesitamos definir algunos
conceptos básicos utilizados en cualquier aplicación creada con la herramienta.
Demos un vistazo a la ventana principal del JFormsBuilder, la cual se muestra en la figura 1.1
para definir sus componentes.
La herramienta está formada por un panel superior que contiene el menú principal y una
barra de herramientas. Debajo de dicho panel se encuentran tres paneles. El panel de la
derecha contiene el navegador de objetos, esta herramienta en forma de árbol permite
navegar por los diferentes proyectos, formas y los elementos constitutivos de estas. El panel
central no contiene nada inicialmente, pero puede contener uno o varios editores de código o
gráficos. El panel de la derecha inicialmente no contiene nada, pero cuando nos ubicamos
6
Comenzando a trabajar con JFormsBuilder3.1
sobre un nodo del árbol, en este panel se muestran las propiedades del nodo seleccionado, y si
al nodo se le pueden asociar eventos, se mostrará una segunda pestaña con los eventos
asociables al nodo.
7
Comenzando a trabajar con JFormsBuilder3.1
El menú archivo nos permite administrar los diferentes archivos asociados con
JFormsBuilder. Podemos crear un proyecto nuevo, un menú o una librería desde aquí. Así
como también abrir o guardar esos tipos de archivos.
El menú editar nos muestra las opciones estándar de edición como copiar, cortar y pegar,
deshacer y rehacer que funcionan tanto para los editores de código y gráficos, como para los
nodos del árbol del navegador de objetos.
El menú ver permite mostrar los editores y las paletas de propiedades en caso de que estén
ocultas y se quieran mostrar de nuevo.
El menú buscar permite realizar búsquedas de texto sobre las unidades de programa y
eventos de una o más formas. También permite buscar nodos en el árbol, esto es
especialmente útil cuando tenemos formas con muchos ítems y deseamos encontrarlos de
forma ágil.
El menú opciones permite definir preferencias, tales como datos de conexión a la base de
datos, ruta por defecto para diálogos de abrir o guardar archivos, rutas en la que se
encuentran formas, entre muchas otras que definiremos más adelante cuando entremos en
detalle en la definición de preferencias.
El navegador de objetos es una utilidad en forma de árbol que nos permite navegar por los
proyectos, menús, formas y librerías. Al ser en forma de árbol podemos expandir sus
componentes para explorar sus subcomponentes, hasta llegar a los nodos que no permiten
expansión.
Cuando expandimos una forma, nos muestra los diferentes elementos que pueden estar
contenidos en esta.
8
Comenzando a trabajar con JFormsBuilder3.1
Eventos: Los eventos a nivel de forma son aquellos se pueden definir para responder a
acciones generales sobre toda la forma. Un ejemplo de esto son los eventos como el
PreForm o el Init que se ejecutan justo cuando el usuario final abre la forma.
Atributos: Los atributos son un conjunto de propiedades visuales que se definen y que
se pueden asignar al registro actual, al elemento actual o para los elementos no
seleccionados. Son muy útiles cuando se trata de uniformar al aplicativo con un look
and feel homogéneo.
Editores: Los editores son ventanas de dialogo que permiten que el usuario digite
información sobre una cajilla de texto.
Datas: Los datas son los contenedores lógicos de elementos. Son una agrupación de
elementos que tienen algo en común. Imaginémonos una tabla de empleados, que
tenga como campos el código del empleado y su nombre. Podemos crear un data
llamado empleado e incluirle dos elementos que representen el código y nombre del
empleado. Los datas pueden ser de dos tipos: Enlazados a datos y de control.
Listas de ayuda: Las listas de ayuda son una poderosa herramienta para ayudar al
usuario final determinar qué datos puede digitar sobre un campo. Permiten realizar
filtros, así como validar que la información digitada corresponda a un registro de la
lista.
Frames: Los frames son los contenedores de toda la interfaz visual de JFormsBuilder.
Una forma en su parte visual contiene físicamente al menos un frame y estos a su vez
contienen paneles (se definen a continuación). Los frames pueden ser de dos tipos,
principal y apilado (dialogo). Una forma debe tener un frame principal y 0 o más
frames tipo dialogo.
9
Comenzando a trabajar con JFormsBuilder3.1
Paneles: Los paneles son los contenedores de todos los elementos visuales. Pueden ser
de 4 tipos: Principal, Apilado, de Pestañas y Grilla. Cada ventana debe tener al menos
un panel principal. Sobre el panel principal se pueden agregar paneles apilados, de
pestañas, y grillas.
Mensajes: Los mensajes son alertas que se le envían al usuario final para informarle de
un error, o para preguntarle la acción a seguir en un determinado proceso. Las alertas
tienen la particularidad de detener el hilo de proceso, para esperar la respuesta del
usuario.
Librerías: Las librerías son un conjunto de funciones agrupadas en una clase de java
que pueden ser usadas por diferentes formas. En este nodo definimos cuales van a ser
las librerías que esta forma puede usar.
Parámetros: Una forma puede llamar a otra forma. La forma que realiza el llamado, es
conocida como forma padre y la que se crea como consecuencia del llamado, se
conoce como forma hija. Los parámetros son elementos que obtienen su valor del
llamado realizado por su forma padre y pueden ser accedidas desde el código PlSql
como: parameter.NombreDelParametro.
PopUpMenus: Los menús emergentes son aquellos que surgen a partir del uso del click
derecho del mouse. En este nodo le podemos asociar menús emergentes a la forma.
10
Comenzando a trabajar con JFormsBuilder3.1
El panel central es un contenedor de los editores de código o gráficos que hayamos abierto
con JFormsBuilder. Cada vez que hacemos doble clic sobre un método o evento,
JFormsBuilder abre un nuevo editor en una nueva pestaña dentro de este panel. De acuerdo
con las preferencias establecidas en el menú de preferencias, este se abre en java o en PlSql.
También podemos mostrar en una nueva pestaña el editor gráfico de una forma determinada.
La figura 1.3 muestra el panel central con varias pestañas creadas y en la pestaña activa se
está mostrando un método en PlSql.
11
Comenzando a trabajar con JFormsBuilder3.1
elemento. Con esta paleta podemos revisar y modificar las propiedades de un elemento. La
figura 1.4 muestra la paleta de propiedades correspondiente a un botón de una forma.
1.3.1. Prerrequisitos.
Tabla Empleados
La forma que vamos a crear permite insertar, borrar, eliminar y consultar los registros
correspondientes de la tabla empleado en la que se guarda la información básica de un
empleado o trabajador. A continuación presentamos el script de la tabla empleados. Esta tabla
es un prerrequisito y debe estar creada en su base de datos. Es importante indicar que la tabla
tiene una llave primaria. Las llaves primarias en bases de datos que no soporten generación
12
Comenzando a trabajar con JFormsBuilder3.1
de identificadores únicos, tales como el ROWID de Oracle, son fundamentales para que
JFormsBuilder identifique los registros de su data.
Nota Importante:
El script que proveemos en este manual está diseñado para correr en una base de datos
Oracle.
13
Comenzando a trabajar con JFormsBuilder3.1
Figura 1.5.Preferencias.
En el panel derecho se encuentra la opción Escoja el origen de datos nos aseguramos que
este seleccionado JDBC.
En esta ventana debemos seleccionar la ruta en la cual se guarda el archivo jdbc.properties que
va a contener la información digitada en esta ventana y que su aplicativo usará en tiempo de
ejecución para conectarse a la base de datos.
14
Comenzando a trabajar con JFormsBuilder3.1
Figura 1.6.Connection.
15
Comenzando a trabajar con JFormsBuilder3.1
Puerto del servidor: Define el puerto en que escucha el servidor de base de datos.
Password: Clave del usuario anterior. Al generar el jdbc.properties esta clave se genera
encriptada.
Luego de establecer los valores anteriores podemos probar la conexión con el botón Test
de conexión de la parte inferior.
Toda forma en JFormsBuilder requiere estar contenida en un proyecto, lo que nos obliga a
crear un proyecto. Para crear un proyecto vamos al menú principal y seleccionamos
Archivo/Nuevo/Proyecto. Nos aparece la ventana mostrada en la figura 1.7.
16
Comenzando a trabajar con JFormsBuilder3.1
Al hacer clic en nueva forma, se nos muestra el asistente para crear una nueva forma. El
asistente nos permite suministrar la siguiente información acerca de la forma:
Nombre del Formulario: Nombre que le queremos dar al formulario. Este también será
el nombre de la clase principal de java generada.
17
Comenzando a trabajar con JFormsBuilder3.1
En el capitulo 1.2.2. se explican cada uno de los componentes que hacen parte de la estructura
de la forma.
Empecemos a trabajar con la nueva forma. Las formas pueden ser abstractas o no abstractas.
Las abstractas son aquellas que no se instancian, es decir aquellas que sirven como base para
nuevas formas. Las formas abstractas pueden ser formas plantillas que contienen
funcionalidad estándar común para varias formas. Las formas abstractas no requieren tener
una ventana principal o un panel principal.
Nuestra nueva forma va a ser del tipo no abstracta. Por defecto JForms crea formas del tipo no
abstractas. Toda forma no abstracta necesita de al menos una ventana (frame) principal. La
ventana principal es la ventana del navegador de Internet. Las demás ventanas son ventanas
emergentes que se muestran dentro del navegador. Creemos entonces la ventana principal.
Para crear cualquier ventana, hacemos clic contrario sobre el nodo Frames de nuestra forma,
como es usual, un menú emergente se nos muestra. Del menú emergente hacemos clic en
adicionar. Seguidamente el dialogo de crear nueva ventana aparece tal como se muestra en la
figura 1.10.
18
Comenzando a trabajar con JFormsBuilder3.1
El dialogo de crear ventana nos pide que le suministremos el nombre de la ventana y el tipo de
ventana. Los tipos posibles son Principal y Stacked. Seleccionemos tipo de ventana principal.
Luego de haber creado nuestra ventana debemos crear un panel principal. Los paneles son los
contenedores de los cokmponentes. Existen los siguientes tipos de paneles: Principal, Stacked,
Tabbed, Grid y Toolbar. Todo panel debe estar contenido en una ventana.
Para crear el panel de nuestra forma, hacemos clic contrario sobre el nodo Panels de nuestra
forma. Seleccionamos adicionar. El dialogo de crear panel aparece tal como se muestra en la
figura 1.11.
19
Comenzando a trabajar con JFormsBuilder3.1
Ya tenemos listos los contenedores básicos de nuestra forma. Ahora podemos proceder a
incluir elementos que den funcionalidad a nuestra forma.
Al crear un data con el asistente, aparece un dialogo tal como se muestra en la figura 1.12.
20
Comenzando a trabajar con JFormsBuilder3.1
y Oracle versiones inferiores a 10g, las llaves primarias se usan para identificar un
registro en un data de forma única y de esta manera ejecutar internamente el comando
SQL para la manipulación de datos.
Para efectos de nuestro ejemplo, dejemos todos los campos como los muestra el asistente
y procedamos a hacer clic en siguiente. Al hacerlo nos muestra un dialogo en el que
concluye la creación del data. Podemos hacer clic en el botón Finalizar y concluimos con
la creación del data, o podemos continuar, haciendo clic en el botón Siguiente, con el
asistente para la ubicación de los elementos recién creados en el panel que contiene la
forma. Hagamos clic en Siguiente para ubicar los fields creados por el asistente en el panel
creado por nosotros previamente.
En el recuadro de la parte superior llamado Panel donde se desea mostrar los elementos
podemos seleccionar el panel contenedor de los elementos de nuestro data recién
creados. En el recuadro inferior Tipo de Forma podemos seleccionar si nuestro nuevo
data va a mostrar los elementos como un formulario (se muestran los campos en un solo
registro) o multi-registro (se muestra más de un registro).
21
Comenzando a trabajar con JFormsBuilder3.1
Para efectos de nuestra forma seleccionemos el panel creado por nosotros anteriormente,
y seleccionamos Modo Formulario en el recuadro Tipo de Forma y hacemos clic en
siguiente.
En este dialogo podemos seleccionar los campos que queremos visualizar de todos los
campos que se crearon con el data. Aquí también podemos cambiar las etiquetas de los
campos, el tipo de componente con el que queremos visualizar el campo, las coordenadas
x e y del campo, su ancho, su alto y el número de registros visualizados. Anteriormente
establecimos que nuestro data va a mostrarse como un formulario, es decir con un solo
registro Cuando seleccionamos mostrarse como formulario internamente el asistente
establece la propiedad número de elementos visualizados del data a 1. Si un data, es
mostrado como multi-registro, la propiedad número de elementos visualizados es
establecida con el número digitado por nosotros. Es posible establecer la propiedad
22
Comenzando a trabajar con JFormsBuilder3.1
número de elementos visualizados para cada uno de los elementos del data. Podemos
establecerla a un número menor o igual que los registros de su data, pero NO es posible un
número mayor. Si colocamos un número mayor la forma no funcionara correctamente.
Luego de esto podemos hacer clic en siguiente y luego hacemos clic en finalizar.
Con esto concluimos la creación del data. Ahora podemos ver lo creado por el asistente. En
el árbol del navegador de objetos podemos ver que en el nodo P_DATA, existe un nodo
creado llamado EMPLEADOS. Si expandimos este nodo vemos que existen dentro de éste
tres nodos llamados: EVENTS, FIELDS Y RELATIONS. Podemos expandir FIELDS y
notamos que se crearon los campos seleccionados durante el asistente tal como lo
muestra la figura 1.14.
23
Comenzando a trabajar con JFormsBuilder3.1
Para efectos de nuestra forma, cambiemos el color blanco de fondo por un color azul. En
el diseñador gráfico, seleccionamos el panel, para hacerlo hacemos clic dentro de
cualquier parte del panel asegurándonos de no estar seleccionando ningún elemento
diferente al panel. En la paleta de propiedades, seleccionamos la propiedad Color. Para
cambiar su valor, hacemos doble clic sobre la columna valor de la propiedad Color. Nos
aparece el dialogo Seleccione un color, hacemos clic en Definir colores personalizados y
se expande el dialogo para verse con el mostrado en la figura 1.15.
24
Comenzando a trabajar con JFormsBuilder3.1
Para efectos de nuestra forma seleccionemos cualquier tonalidad de azul. Hacemos clic en
aceptar y el color de nuestro panel cambia al color seleccionado.
Luego de haber hecho lo anterior procedamos a cambiar las etiquetas de los diferentes
campos para colocarles una descripción más precisa del campo.
Hasta ahora tenemos un formulario con un data que está asociado a una tabla llamada
Empleados. Sin embargo existen campos de la tabla que no queremos visualizar en un panel,
tal como el campo version que se usa internamente para manejar la concurrencia. Para
removerlo seleccionamos el campo version desde el diseñador gráfico o desde el navegador
de objetos y usando la paleta de propiedades, le establecemos el valor null a la propiedad
Panel Container.
También podemos crearle una barra de herramientas a nuestro formulario. Para hacerlo
creamos un nuevo panel. Al mostrarse el dialogo Creando un nuevo Panel, seleccionamos
Toolbar como nuestro tipo de panel y la ventana principal como la ventana contenedora de
nuestro panel. Las barras de herramientas pueden ser horizontales o verticales. Por defecto
las barras de herramientas se crean horizontales. Esto quiere decir que se visualizan a lo largo
del borde superior de la ventana contenedora. Los verticales se visualizan a lo largo del borde
izquierdo de la ventana contendora.
Una vez creado nuestro panel tipo Toolbar, procedamos a incluirle elementos. Creemos un
nuevo data, esta vez sin el asistente porque no queremos enlazarlo a ninguna tabla, vista o
cualquier otra fuente de datos. Hacemos clic sobre el nodo P_DATA, pero esta vez
seleccionamos Crear un data manualmente. En el nombre del data escribimos TOOLBAR.
Como nuestra barra de herramientas es horizontal, el tamaño está definido por la altura que
establezcamos en las propiedades del panel y el ancho que tenga su ventana contenedora.
Seleccionemos entonces el panel y establezcamos una altura de unos 40 pixeles.
25
Comenzando a trabajar con JFormsBuilder3.1
26
Comenzando a trabajar con JFormsBuilder3.1
Eclipse, así como cualquier otra IDE de java, es un complemento para JFormsBuilder,
Podemos crear un proyecto en Eclipse y mapearlo a un proyecto de JFormsBuilder. Para
crear un proyecto en Eclipse, nos vamos al menú File/New /Java Project. Creamos el
proyecto nuevo. Podemos darle un nombre y dejar los valores por defecto. Luego
creamos dos carpetas de fuentes haciendo clic contrario sobre el proyecto y del menú
emergente seleccionamos la opción New/Source Folder. Por convenciones de
nomenclatura, creemos las carpetas src/main/java y src/main/resources.
Para poder ejecutar una forma o reporte desde Eclipse, debemos agregar las
correspondientes librerías. Una manera de agregar librerías es mediante el uso de
variables classpath. Una variable classpath es una referencia a una ubicación en disco, ya
sea archivo o carpeta. Estas variables hacen mucho más fácil compartir proyectos entre
un equipo de trabajo dado que los integrantes del equipo se ponen de acuerdo en que
nombre(s) de variables van a usar y la apuntan al lugar dentro de su disco en el que
están las librerías. De esta manera si tu proyecto lo usa otro desarrollador que maneja
una estructura de disco diferente a la tuya, cuando importe tu proyecto, no va a tener
ninguna dificultad.
En el menú principal de Eclipse hacemos clic en la opción Window/Preferences. Al
hacerlo un dialogo como el mostrado en la figura 1.18 se nos muestra. Del menú
mostrado en el panel izquierdo, seleccionamos la opción Java/BuildPath/Classpath
Variables. En el panel derecho se nos muestran tres botones New, Edit y Remove.
Hacemos clic en New y un nuevo dialogo se nos muestra en el que nos pide el nombre de
la variable y la ruta del archivo o carpeta a la cual vamos a apuntar nuestra nueva
variable. Creamos la variable librerias (preferiblemente sin la tilde) y la apuntamos a la
27
Comenzando a trabajar con JFormsBuilder3.1
Una vez creada la variable classpath librerías, podemos usarla para agregar las librerías
a nuestro proyecto. Nuevamente hacemos clic contrario sobre nuestro proyecto y
seleccionamos la opción Propiedades. Un dialogo se nos muestra a continuación como el
de la figura 1.19. Del menú mostrado en el panel izquierdo del dialogo seleccionamos
Java Build Path. En el panel de la derecha, se nos muestran unas pestañas.
Seleccionamos la pestaña librerías. De los botones mostrados en el panel de la derecha
hacemos clic en Add Variable.
28
Comenzando a trabajar con JFormsBuilder3.1
29
Comenzando a trabajar con JFormsBuilder3.1
Para que la forma se conecte a la base de datos, debemos generar incluir en la carpeta
src/main/resources una nueva carpeta llamada jdbc. Para crearla desde Eclipse,
hacemos clic derecho sobre la carpeta src/main/resources y del menú emergente
seleccionamos new / folder. Escribimos el nombre jdbc para nuestra nueva carpeta.
Dentro de esta carpeta se crea un archivo llamado jdbc.properties que debe ser generado
desde JFormsBuilder. Para crear el archivo nos vamos a las preferencias de
JFormsBuilder y seleccionamos conexión. En la ruta de JDBC seleccionamos la carpeta
jdbc que acabamos de crear. Si no hemos diligenciado los campos de la conexión lo
hacemos y damos clic en Exportar Archivo. Si lo desea puede probar la conexión en el
botón Test de Conexión.
30
Comenzando a trabajar con JFormsBuilder3.1
Volvamos a Eclipse para examinar el código Java generado y ejecutar la forma. Sobre el
proyecto recién creado hacemos clic derecho y del menú emergente, seleccionamos la
opción refresh. Inmediatamente aparecen en la carpeta src/main/java los paquetes
generados y dentro de ellos las clases de Java que acabamos de generar. Si a la forma le
establecimos el nombre Documentacion, nos debe aparecer una clase de Java llamada
Documentacion.java acompañada por dos clases más llamadas
Documentacion_class1.java y Documentacion_class2.java. Además se debió generar un
sub-paquete que sigue la siguiente regla de nomenclatura: “paquete de la
forma”.data.”nombe del bloque”. En dicho paquete deben existir tantas clases de Java como
datas de la forma.
También podemos ejecutarla en modo de depuración haciendo clic derecho sobre la clase
y del menú emergente haciendo clic en Debug as / Java Application.
31
Comenzando a trabajar con JFormsBuilder3.1
32
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 2.
Una forma es una colección de objetos y código que incluye frames, elementos de texto, casillas
de verificación, botones, disparadores y métodos.
2.1.1. Propiedades.
La figura 2.1 define muestra las propiedades de una forma:
33
Comenzando a trabajar con JFormsBuilder3.1
Abstract:
Existen formas que vamos a crear como referencia para que otras formas extiendan de
ella, es decir, va a representar para nuestras aplicaciones una plantilla de la cual, las
demás formas de su aplicación heredarán ciertos atributos como color, forma, etc.,
además de ciertas funcionalidades.
A una forma abstracta no se le aplican restricciones que aplican para los otros tipos de
formas, tales como la existencia de al menos una ventana principal, un panel principal,
entre otras.
Comments:
34
Comenzando a trabajar con JFormsBuilder3.1
Console Frame:
Default Menu:
Extends Name:
Mediante el uso de esta propiedad podemos establecer cuál va a ser nuestro primer
data navegable. Si esta propiedad no está establecida, el primer data navegable es el
primer data con elementos navegables que aparece en la lista de datas de nuestra
forma en el navegador de objetos. Cabe resaltar que pueden existir datas que no
contengan ningún elemento navegable y como consecuencia son considerados datas
no navegables.
Menu Name:
35
Comenzando a trabajar con JFormsBuilder3.1
Name:
En esta propiedad podemos visualizar el nombre que le hemos dado a nuestra forma.
Package:
Además de agrupar las formas en proyectos, las clases de java pueden estar agrupadas
en paquetes. Por ejemplo, si tenemos agrupados nuestras formas en proyectos que
representan módulos de nuestra aplicación, los paquetes podrían representar sub-
módulos.
Package Extends:
Package Menu:
Route:
En esta propiedad podemos visualizar la ruta en la cual está guardada nuestra forma.
Variables:
En esta propiedad definimos las variables a nivel de forma que queremos definir para
poderlas usar desde cualquier método o evento de nuestra forma. Estas variables se
crean como propiedades protegidas en la clase principal de Java generada.
36
Comenzando a trabajar con JFormsBuilder3.1
2.1.2. Eventos:
Los eventos se pueden definir en distintos niveles dentro de JFormsBuilder. Por ejemplo,
podemos definir el evento WhenValidateField a un field de un data. Pero también se lo
pudimos agregar al data o inclusive a la forma. Cuando es momento de disparar un evento,
JForms examina el field que disparo el evento, si este responde a ese evento, ejecuta el código
asociado a nivel de field, sino examina su data contenedor y sino examina la forma.
También existen eventos que no aplican a fields, y existen otros que no aplican a fields ni a
datas. Más adelante veremos cada uno de los eventos y analizaremos el orden en que estos se
disparan y bajo que acción se disparan.
En este capítulo veremos solo los eventos que se disparan a nivel de formas. Los eventos están
agrupados en los eventos disparados al entrar en una forma, durante la ejecución de la forma
y al salir de la forma.
PreLogon:
Este evento se dispara justo antes de que JForms intente conseguir una sesión de base
de datos. También se dispara cuando el usuario hace uso del método logon().
OnLogon:
Si el evento OnLogon está definido en la forma, este es disparado en vez de seguir con
la conexión por defecto a la base de datos de la forma. En este evento podríamos
“sobre-escribir” la manera en que JForms se conecta a la base de datos. El archivo de
conexión por defecto a la base de datos jdbc.properties, determina las propiedades
por defecto con las cuales la forma se conecta a la base de datos, durante la ejecución
de este evento podemos conectarnos a la base de datos con propiedades diferentes a
las establecidas en este archivo. El método logon() es usado muy de la mano con este
evento. También se dispara cuando el usuario hace uso del método logon().
PostLogon:
37
Comenzando a trabajar con JFormsBuilder3.1
Este evento se dispara después de que JForms intentó conseguir la sesión de base de
datos o su forma lo sobre-escribió a través del uso del evento OnLogon. También se
dispara cuando el usuario hace uso del método logon().
PreForm:
Se dispara luego de que se ejecutaron los eventos anteriores y antes de que JForms
ejecute la navegación inicial, es decir, antes de que JForms determine cuál es el primer
field navegable.
Init – WhenNewFormInstance:
Una vez ejecutada la navegación inicial y determinado el primer field navegable,
JForms ejecuta este evento. Si se han agregado eventos como el PreTextField , PreData
entre otros, estos se dispararán antes que el Init o WhenNewFormInstance porque
hacen parte de los eventos disparados durante la navegación inicial. Los eventos de
navegación se explican más adelante porque pueden aplicarse a datas o fields.
Durante la ejecución de una forma, una acción de un usuario puede dispara un evento
controlable por un método que responde a ese evento y que solo se puede definir a nivel de
Forma. Los eventos que se disparan solo a nivel de Forma son:
WhenTabPageChange:
Si una forma tiene al menos un panel tipo pestañas, al cambiar de una pestaña a otra,
se dispara este evento. Para determinar la pestaña que cambió, hacemos uso de la
variable del sistema TabNewPage. Esta variable nos devuelve el nombre de la
siguiente forma panel.pestaña.
WhenTimerExpired
38
Comenzando a trabajar con JFormsBuilder3.1
WhenWindowResized
Cuando un frame interno es cambiado de tamaño (ampliado o reducido) se ejecuta el
evento WhenWindowResized.
Para determinar cuál es la ventana que se modificó hacemos uso de la variable del
sistema Event_Window.
WhenWindowClosed
Cuando cerramos una ventana se dispara este evento. De la misma manera, como lo
hicimos en el evento WhenWindowResized, podemos obtener la ventana que disparo
el evento.
Al salir de una forma se ejecutan varios eventos en los que el programador, dependiendo el
caso, puede realizar acciones para terminar de la mejor manera la ejecución de su forma. Los
eventos que se disparan al salir de una forma son los siguientes:
PostForm:
39
Comenzando a trabajar con JFormsBuilder3.1
Al salir de una forma, por código, o por presionar el botón salir de la ventana principal,
este evento es el primero que se dispara.
OnRollback:
Justo después de disparar el PostForm, se dispara el OnRollback, en el cual podemos
sobre-escribir el rollback por defecto de JForms.
PreLogout:
Luego de ejecutar el evento OnRollback, se ejecuta el evento PreLogout. Este evento se
dispara antes de que JForms libere la sesión de base de datos con el método logout().
OnLogout:
El siguiente en la secuencia de eventos es el OnLogout. Si se ha definido este evento, se
dispara en vez de ejecutarse el método logout().
PostLogout:
Luego de ejecutarse el evento anterior, por último se dispara el evento PostLogout.
40
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 3.
Una data es una agrupación lógica de fields. Esta agrupación se hace con diferentes
objetivos.
1. Debido a que los datas pueden estar enlazados a fuentes de datos como tablas o vistas,
los fields pertenecientes a un data pueden estar enlazados a campos de dicha fuente
de datos. En un data no solamente se define la fuente de datos, sino también la
clausula where y order by
2. Los datas pueden gobernar el estilo de visualización de sus elementos. Por ejemplo,
podemos definir atributos visuales para que los elementos del data pertenecientes al
registro que mantiene el foco se visualicen de forma homogénea, o para que cualquier
elemento que mantenga el foco se visualice siempre igual.
3. Los datas pueden administrar los permisos de inserción, modificación, eliminación o
consulta de sus elementos.
4. Los datas también nos pueden permiten definir cuantos y a qué distancia se muestran
los registros dentro del data.
5. También podemos definir el estilo de navegación. Es decir cuando llegamos al último
field de un data cual es la acción a seguir: ir al primer field del data manteniéndose en
el mismo registro, hacer lo mismo pero cambiando de registro o navegar al primer
field del siguiente data navegable.
3.1.1. Propiedades:
Alias:
41
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad la establecemos cuando deseamos que JForms le agregue un alias a la fuente
de datos principal del data. El alias es especialmente útil si en la clausula where del data
estamos utilizando una consulta interna y la cruzamos con la fuente de datos asociada al
data.
ClassName:
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el data. Nos puede servir para
controlar fechas y autores de las diferentes modificaciones, así como para documentar el
objetivo del data.
Los atributos visuales son grupos de propiedades que definen como se visualiza un
elemento. El Current Field Visual Attribute define el atributo visual del field actual.
Cuando un field toma el foco, esta propiedad define como se visualiza dicho elemento. El
atributo visual puede hacer que tome un color de fondo, un tipo de letra y otros atributos
que modifiquen su forma.
En esta propiedad establecemos el atributo visual del registro actual. Cuando un registro
toma el foco, esta propiedad define como se visualizan todos los elementos de dicho
registro. El atributo visual puede hacer que dichos fields tomen un color de fondo, un tipo
de letra y otros atributos que modifiquen su forma.
Database Data:
42
Comenzando a trabajar con JFormsBuilder3.1
Data Type:
Los datas pueden ser visualizables como árboles. Cuando un data es visualizable como árbol
presenta características y restricciones particulares. Entre otras están que sólo puede
contener un ítem y este único ítem debe ser de tipo árbol.
Data Source:
Delete Allowed:
En esta propiedad definimos si el usuario final puede o no eliminar registros del data. El
valor true(verdadero) indica que el usuario si está autorizado para eliminar registros.
Un data contiene elementos que pueden ser visualizados en varios registros. Cuando es así
el data es considerado multi-registro. La Figura 3.1 muestra un data multi-registros.
43
Comenzando a trabajar con JFormsBuilder3.1
Los registros generados se distancian unos de otros con el valor en pixeles establecido en
esta propiedad.
Insert Allowed:
En esta propiedad definimos si el usuario final pude o no insertar registros del data. El valor
true(verdadero) indica que el usuario sí está autorizado para insertar registros.
Java Name:
En esta propiedad se visualiza el nombre java que JFormsBuilder le va a dar al data. Cuando
se genera el código java, este objeto representante del data se crea con este nombre.
En esta propiedad se define cual es el número máximo de registros por página. Cuando
llamamos al método executeQuery a la base de datos, esta consulta puede arrojar muchos
registros. El número de registros que le vamos pidiendo a la base de datos y enviando al
cliente es el definido en esta propiedad.
Name:
Esta propiedad define el nombre con el que vamos a identificar este data. Este nombre lo
vamos a usar cuando referenciemos al bloque desde los diferentes métodos del
JFormsBuilder. Por ejemplo cuando naveguemos al data con el método goData (Nombre del
Data). También desde PL/SQL usamos este nombre cuando le asignemos el valor a un field
del data. :NombreDelData.NombreDelField.
44
Comenzando a trabajar con JFormsBuilder3.1
NonUpdatable Data:
Establecer el valor de esta propiedad a verdadero indica que el data solamente va ser usado
para consultas. Al establecer esta propiedad en verdadero no se verifica que exista un
campo versión.
Similar al Next Navigation Data, pero para el data anterior en vez del siguiente.
Order by:
Query Allowed:
45
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad indica si el data permite realizar consultas sobre su fuente de datos
definida. Un data puede permitir inserciones, pero no permitir consultas.
46
Comenzando a trabajar con JFormsBuilder3.1
nuestro data es basado en un procedimiento almacenado. Al hacer doble clic sobre el valor
de esta propiedad nos muestra un dialogo como el de la figura 3.3.
La figura 3.3. nos muestra una tabla con los nombres, tipos, y demás propiedades de las
columnas que hacen parte de los registros devueltos por un procedimiento almacenado en
particular.
Como se ha mencionado anteriormente la fuente de datos de un data puede ser una tabla o
vista, un query, o un procedimiento almacenado que devuelve un conjunto de registros.
Aquí definimos cuál es el tipo de la fuente de datos de nuestro data. A continuación
describimos los diferentes tipos de fuentes de datos.
Tabla o Vista:
47
Comenzando a trabajar con JFormsBuilder3.1
Cuando es una tabla o vista, JForms efectúa las consultas basado en los elementos
del data que son basados en base de datos.
Procedimiento Almacenado:
Record Orientation:
Los registros por defecto están orientados verticalmente, es decir se muestran uno encima
del otro empezando de arriba hacia abajo. Pero también los podemos orientar
horizontalmente, es decir mostrarlos uno al lado del otro empezando de izquierda a
derecha.
RecordVisual Attributes:
Cuando un registro no es el registro actual, sus elementos pueden tomar las características
gráficas del atributo visual definido en esta propiedad tales como color de fondo, fuente,
tamaño y color de las letras, entre otras.
Scrollbar Active:
Scrollbar Height:
Scrollbar Orientation:
48
Comenzando a trabajar con JFormsBuilder3.1
Scrollbar Panel:
Estas propiedades definen las coordenadas x e y del panel contenedor medidas en pixeles.
Estas propiedades determinan donde quedará ubicado el extremo superior izquierdo de la
barra, desde las cuales se empieza a dibujar la barra de desplazamiento.
Single Record:
Esta propiedad indica si el data contiene un solo registro. Si esta propiedad se establece en
verdadero, JForms no permite que el data contenga más de un registro al tiempo.
Navigation Style:
Esta propiedad define el estilo de navegación de los datas. Al momento de llegar al último
elemento navegable del data e intentar navegar mediante el teclado (tecla <tab> o <enter>)
al siguiente elemento navegable, JForms, dependiendo del valor de esta propiedad, puede
tomar uno de los siguientes caminos
SameRecord:
JForms navega al primer elemento dentro del mismo registro del mismo data.
NextRecord:
JForms navega al primer elemento del siguiente registro dentro del mismo data.
NextData:
JForms navega al registro actual del siguiente data navegable.
49
Comenzando a trabajar con JFormsBuilder3.1
Nota Importante:
Update Allowed:
En esta propiedad definimos si el usuario final pude o no actualizar registros del data. El
valor true(verdadero) indica que el usuario sí está autorizado para actualizar registros.
Where:
En esta propiedad podemos establecer la clausula where mediante la cual filtramos los
registros obtenidos por la consulta. Esta clausula no aplica para data cuya fuente de datos
es un procedimientos almacenado.
3.1.2. Eventos:
Los eventos que analizaremos en este capítulo son aquellos a los que se puede responder a
nivel de data o forma. Los eventos tratables a nivel de field son analizados en el siguiente
capítulo.
Analicemos la secuencia de eventos cuando el cursor se ubica en algún elemento dentro del
data, es decir cuando entramos en algún data.
La figura 3.3.muestra el flujo de eventos que se disparan a nivel de data al entrar a un data
después de iniciar la forma, al navegar entre datas y al navegar entre registros de un mismo
data. La figura 3.3. no muestra los eventos que se disparan a nivel de field, ya que una gráfica
completa de todos los eventos se muestra en el capítulo siguiente:
50
Comenzando a trabajar con JFormsBuilder3.1
Pre_Data:
51
Comenzando a trabajar con JFormsBuilder3.1
Justo ANTES de entrar a un data nuevo, es decir cuando entramos en una forma nueva y se
navega al primer data navegable o cuando pasamos de un data a otro.
Pre_Record:
Justo ANTES de entrar en un registro, ya sea porque entramos a una nueva forma y
navegamos a un registro de un data o porque pasamos de un registro a otro dentro del
mismo data o porque cambiamos de data, se dispara el evento Pre-Record. Si nos hemos
movido de un data a otro cuando se dispara este evento el data destino ya se ha
convertido en el data actual.
When_new_data_instance:
When_new_record _instance:
NOTA IMPORTANTE:
Si mediante código (en eventos o métodos) se navega a diferentes datas, los eventos
when_new_data_instance y when_new_record_instance sólo se disparan para el
último data al que se navegó.
When_validate_record:
Post_record:
52
Comenzando a trabajar con JFormsBuilder3.1
Antes de salir del registro y moverse hacia otro registro en el mismo o en otro data, se
dispara el evento Post_record. Es decir el registro destino aún NO se ha convertido en el
registro actual. Si en el evento se hace una referencia de la forma :data.field se está
haciendo referencia a un field del data del registro del cual se intenta salir.
Post_Data:
Antes de moverse hacia otro data, se dispara el evento Post_data, es decir, cuando el data
destino aún NO se ha convertido en el data actual.
Cuando ejecutamos una consulta sobre un data basado en una fuente de datos de la base de
datos se ejecutan eventos que nos pueden ser útiles para buscar información complementaria
o para modificar los patrones de búsqueda de la consulta. La figura 3.4 muestra en recuadros
verdes los eventos que se ejecutan al realizar una consulta.
53
Comenzando a trabajar con JFormsBuilder3.1
Pre_Query:
Este es el primer evento que se dispara cuando hacemos uso del built-in execute_query.
Este evento durante su ejecución coloca la forma en modo Enter_Query lo que permite al
programador introducir nuevos criterios de búsqueda y de esta forma obtener un
resultado más preciso y/o confiable.
Post_Select:
Este evento se dispara luego de que JForms construye la sentencia SQL y la ha enviado a la
base de datos, pero aún no ha empezado a llenar el data con los registros traídos por dicha
54
Comenzando a trabajar con JFormsBuilder3.1
consulta. Este evento nos puede servir para obtener la sentencia SQL enviada a la base de
datos y almacenarla para algún uso futuro.
Post_Query:
Este evento se dispara para cada registro que es traído por la consulta. Este evento es útil
cuando queremos efectuar operaciones sobre cada uno de los registros traídos por la
consulta.
El built-in “Post” tiene la función de descargar en la base de datos las operaciones realizadas
sobre los registros de un data, pero NO efectúa la confirmación de esas operaciones (No
efectúa un Commit). En otras palabras, el método Post es el encargado de efectuar las
sentencias SQL correspondientes para enviar los cambios en los registros de los datas a la
base de datos sin hacer Commit.
55
Comenzando a trabajar con JFormsBuilder3.1
Pre_Commit:
Antes de empezar a realizar operaciones sobre los registros del data, JForms ejecuta el
evento Pre-Commit. Este evento se ejecuta una única vez independiente del número de
registros que tenga el data.
El bult-in “Post” recorre todos los registros de todos los datas y dependiendo del estado
del registro, realiza un borrado, una actualización, una inserción o simplemente no ejecuta
ninguna acción.
Pre_Delete:
56
Comenzando a trabajar con JFormsBuilder3.1
Se ejecuta justo antes de que JForms ejecute el comando para borrar el registro en la base
de datos.
On_Delete:
Si se encuentra este evento implementado en la forma, JForms lanza este evento EN VEZ
DE efectuar el comando SQL de borrado por defecto sobre la base de datos.
Post_Delete:
Se ejecuta luego de que se ha efectuado el comando SQL de borrado sobre la base de datos
o luego de haber llamado al evento On-Delete.
Pre_Insert:
Se ejecuta justo antes de que JForms ejecute el comando para insertar el registro en la
base de datos.
On_Insert:
Si se encuentra este evento implementado en la forma, JForms lanza este evento EN VEZ
DE efectuar el comando SQL de inserción por defecto sobre la base de datos.
Post_Insert:
Pre_Update:
Se ejecuta justo antes de que JForms ejecute el comando para actualizar el registro en la
base de datos.
57
Comenzando a trabajar con JFormsBuilder3.1
On_Update:
Si se encuentra este evento implementado en la forma, JForms lanza este evento EN VEZ
DE efectuar el comando SQL de actualización por defecto sobre la base de datos.
Post_Update:
Post_Forms_Commit:
Una vez se han efectuado las operaciones respectivas sobre los registros del data y antes
de efectuar la confirmación de los datos se ejecuta el evento Post-Forms-Commit. Así
como el Pre-Commit, el evento Post_Forms_Commit se ejecuta una única vez.
58
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 4.
Después de crear datas, usted puede crear fields, los fields deben pertenecer a un data ya sea
de control o enlazado a datos, a sí mismo un field puede ser de control o estar enlazado a una
fuente de datos, Un data no es un contenedor físico de fields, es un contenedor lógico de fields.
Los fields pueden ser agregados y desplegados en un panel.
4.1. Propiedades:
Automatic Skip:
Cuando esta propiedad esta en verdadero, se navega automáticamente hasta el siguiente
field cuando la longitud máxima del field es alcanzada. Esta propiedad aplica solamente
para fields del tipo text.
Background:
Esta propiedad nos permite asignar un color de fondo a un Field, haciendo doble Click sobre
la propiedad se nos desplegara un dialogo donde podemos seleccionar el color deseado
(Figura 4.1).
Figura 4.1
59
Comenzando a trabajar con JFormsBuilder3.1
Border:
Esta propiedad nos permite asignar un estilo de borde a un field, haciendo doble Click sobre
la propiedad se nos desplegara un dialogo donde podemos seleccionar el estilo de borde
deseado (Figura 4.2).
Figura 4.2
Calculation mode:
Esta propiedad especifica el método de cálculo de un field cuyo valor es calculado, los
posibles valores son:
None:
Formula:
Indica que el valor del field será calculado como resultado de una formula escrita por
el usurario.
Summary:
60
Comenzando a trabajar con JFormsBuilder3.1
Indica que el valor del Field será calculado como resultado de una operación de suma
sobre un Field, esta operación es asignada en la propiedad summary function.
Case restriction:
Esta propiedad especifica si el texto escrito en un field del tipo text, será escrito en
mayúsculas o minúsculas o si simplemente aparecerá como se escribe. Los valores
posibles para esta propiedad son los siguientes:
Normal:
Upper:
Indica que el texto siempre será convertido a mayúsculas sin importar como fue
digitado.
Lower:
Indica que el texto siempre será convertido a minúsculas sin importar como fue
digitado.
Column name:
Cuando el field es de base de datos, Esta propiedad nos sirve para indicar el nombre de la
columna de una tabla, vista, query o procedimiento almacenado en la base de datos
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el field. Nos puede servir para
controlar fechas y autores de las diferentes modificaciones, así como para documentar el
objetivo del field.
Component type:
Esta propiedad especifica el tipo de componente que puede ser un field. Un field puede
ser de uno de los siguientes tipos:
61
Comenzando a trabajar con JFormsBuilder3.1
DButton
DCheckBox
DChart
DComboBox
DImage
DLabel
DRadioButton
DSound
DTextField
DTextArea
DTree
Cursor style:
Esta propiedad es utilizada para especificar el estilo del cursor del Mouse cuando el
usuario ingresa a un field.
Esta propiedad esta en verdadero indica que el field esta enlazado a datos y que no es un
field de control. Cuando un field esta enlazado a datos el data que lo contiene igualmente
debe estar enlazado a datos.
Data Type:
Esta propiedad es utilizada para indicar el tipo de dato de un field, los valores posibles
son:
Java.lang.String
Java.lang.Integer
Java.lang.Double
Java.sql.Date
Java.util.Date
62
Comenzando a trabajar con JFormsBuilder3.1
Date Type:
Esta propiedad es utilizada cuando el tipo de dato de un field es java.sql.Date, se utiliza para
indicar la forma como se almacena la fecha es decir si guarda hora minutos y segundos, si
guarda día, mes, año o si guarda todos estos datos.
Date:
DateTime:
Time:
Echo char:
Esta propiedad se utiliza para ocultar los caracteres que el usuario digita en un field de
tipo texto. Normalmente es usado para protección de contraseñas.
Editable:
Esta propiedad indica que el contenido de un field de tipo text no se puede editar, es
usado cuando solo queremos mostrar datos y no permitir que el usuario modifique los
datos.
Enable:
Si el valor de esta propiedad es falso significa que no se podrá navegar hasta ese field y su
contenido no será modificable por el usuario final.
63
Comenzando a trabajar con JFormsBuilder3.1
Field Font:
Esta propiedad nos permite asignar una fuente, su estilo y tamaño a un field, haciendo
doble Click sobre la propiedad se nos desplegara un dialogo donde podemos seleccionar la
fuente, el estilo y tamaño deseado (Figura 4.3).
Figura 4.3
Foreground:
Esta propiedad nos permite asignar un color de fuente a un Field, haciendo doble Click
sobre la propiedad se nos desplegara un dialogo donde podemos seleccionar el color
deseado (Figura 4.4).
64
Comenzando a trabajar con JFormsBuilder3.1
Figura 4.4
Format Mask:
Esta propiedad nos permite especificar un formato de mascara para visualización y
digitación de datos en fields de tipo texto.
Formula:
Esta propiedad es utilizada para indicar una expresión (Formula) sql que determina el
valor de un field.
Height:
Esta propiedad nos sirve para especificar la altura de un field, la unidad de medida es el
píxel.
Horizontal Alignment:
Esta propiedad sirve para indicar la alineación horizontal de un texto, los posibles valores
son:
Alg_Left :
Alineación a la izquierda
Alg_center:
Alineación al centro
Alg_right:
Alineación a la derecha
Initial Value:
Especifica un valor por defecto que es asignado al field cuando un nuevo registro es
creado.
Is Version:
Esta propiedad indica si el campo es utilizado para manejar la concurrencia, cuando se
consulta un registro de la base de datos este campo tiene un valor, si se desea actualizar
este campo se compara el valor que tiene el campo con el de la base de datos si son iguales
65
Comenzando a trabajar con JFormsBuilder3.1
Insert Allowed:
Determina cuando un usuario puede modificar el valor un field en un registro nuevo. Un
registro es nuevo cuando su estado es INSERT o NEW.
Java Name:
Esta propiedad muestra el nombre que va a tener el archivo en el codigo fuente java.
Keyboard navigable:
Si el valor de esta propiedad es false para un field no se puede navegar hasta este con la
navegación normal por teclado.
Max size:
Esta propiedad es utilizada para controlar el número de caracteres que se pueden digitar
en un field de tipo texto.
Name:
Esta propiedad es utilizada para especificar el nombre de un field, este nombre debe ser
único en el data que lo contiene. Es decir que puede haber un field con el mismo nombre
pero en otro data.
Panel container:
Especifica el panel en el cual el field será visualizado.
66
Comenzando a trabajar con JFormsBuilder3.1
Primary key:
Indica que el field pertenece aun data basado en una tabla de la base de datos y que hace
parte de la llave primaria de la tabla.
Prompt:
Especifica el texto del label que será visualizada para este field.
Prompt Background:
Específica el color de fondo del prompt, para que este color de fondo sea visible la
propiedad prompt opaque debe estar en verdadero.
Hidden:
FirstRecord:
AllRecords:
Prompt distance x:
Especifica la distancia en x desde el prompt hasta el field.
Prompt distance y:
Especifica la distancia en y desde el prompt hasta el field.
Prompt font:
67
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad nos permite asignar una fuente, su estilo y tamaño a un prompt.
Prompt foreground:
Esta propiedad nos permite asignar un color de fuente a un prompt.
Prompt position:
Especifica como es alineado el prompt con respecto al field. Los posibles valores son:
Top
Left
Right
Bottom
Prompt opaque:
Especifica si se visualiza el background del prompt o si este es transparente, si el valor de
esta propiedad es verdadero significa que el prompt no será transparente.
Query allowed:
Indica si el field puede ser incluido en una consulta que se envié a la base de datos.
Query only:
Indica que un field puede ser consultado y que no podrá ser incluido en ninguna sentencia
de inserción o actualización.
Required:
Cuando el valor de esta propiedad es verdadero, indica que no se podrá salir de un
registro modificado o insertado sin antes colocar un valor en el field.
Summarized data:
Especifica el nombre del data que contiene el field al cual se le aplicara una función para
calcular el valor para el field actual.
68
Comenzando a trabajar con JFormsBuilder3.1
Summarized field:
Especifica el nombre del field al cual se le aplicara una función para calcular el valor para
el field actual.
Summary function:
Especifica el tipo de función que se aplicara al field asignado en la propiedad summarized
field, los valores para la función especificada serán obtenidos de todos los registros que
tenga su data contenedor, el resultado de aplicar la función será el valor de un field
calculado.
Avg:
Count:
Max:
Min:
Sum:
Tooltip:
Especifica el texto que aparecerá cuando el cursor del Mouse se posicione sobre el field.
Update allowed:
Determina cuando el usuario puede modificar el valor de un field en un registro que ha
sido consultado.
69
Comenzando a trabajar con JFormsBuilder3.1
Indica que el usuario puede modificar el valor del field solo si este es null.
Validate on list:
Especifica cuando el valor digitado debe ser validado contra la lista de ayuda asociada a
este field.
Visible:
Especifica si un field estará o no visible para el usuario final.
Width:
Especifica el ancho de un field, el sistema de medidas utilizado es el píxel.
X:
Especifica la posición x de un field, el sistema de medidas utilizado es el píxel.
Y:
Especifica la posición y de un field, el sistema de medidas utilizado es el píxel.
DCheckBox:
CheckedValue:
Esta propiedad es utilizada para asignar el valor que tendrá el field cuando el checkbox
es chequeado.
UncheckedValue:
Esta propiedad es utilizada para asignar el valor que tendrá el field cuando el checkbox
no está chequeado.
70
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad es utilizada para indicar el estado que tomara el check box en caso de
que el valor del field no corresponda al valor de chequeo o valor de no chequeo.
DComboBox:
Combobox Values:
Esta propiedad es utilizada para almacenar los valores que contendrá la lista de
despliegue, para agregar o remover valores de la lista hacemos doble clic sobre la
ventana y nos desplegara un dialogo donde podremos modificar los valores (Figura
4.5).
Figura 4.5
Esta propiedad es utilizada para indicar el valor que estará seleccionado en el combo,
en caso de que el valor del field no corresponda a ninguno de los valores del combo.
DLabel:
Opaque:
71
Comenzando a trabajar con JFormsBuilder3.1
DRadioButton:
Esta propiedad es utilizada para indicar el radio que estará seleccionado en el grupo
de radios, en caso de que el valor del field no corresponda a ninguno de los valores del
grupo de radio.
Opaque:
Background:
Esta propiedad nos permite asignar un color de fondo a un radio button.
Border:
Esta propiedad nos permite asignar un estilo de borde a un radiobutton.
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el un radiobutton. Nos puede
servir para controlar fechas y autores de las diferentes modificaciones, así como para
documentar el objetivo del radiobutton.
72
Comenzando a trabajar con JFormsBuilder3.1
Enable:
Si el valor de esta propiedad es falso significa que no se podrá navegar hasta este
radiobutton y su contenido no será modificable por el usuario final.
Font:
Esta propiedad nos permite asignar una fuente, su estilo y tamaño a un field,
Foreground:
Esta propiedad nos permite asignar un color de fuente a un radiobutton.
Height:
Esta propiedad nos sirve para especificar la altura de un radiobutton, la unidad de medida
utilizada es el píxel.
Label:
Esta propiedad es utilizada para especificar el texto que desplegara el radiobutton.
Name:
Esta propiedad es utilizada para especificar el nombre de un radiobutton, este nombre
debe ser único en el field.
Opaque:
Especifica si el se visualizara el color de fondo de un radiobutton o si este será
transparente, si el valor de esta propiedad es verdadero significa que se visualizara el
color de fondo del radio.
Prompt:
Especifica el texto del label que será visualizada para este radiobutton.
Prompt Background:
Específica el color de fondo del prompt, para que este color de fondo sea visible la
propiedad prompt opaque debe estar en verdadero.
73
Comenzando a trabajar con JFormsBuilder3.1
Prompt distance x:
Especifica la distancia en x desde el prompt hasta el radiobutton.
Prompt distance y:
Especifica la distancia en y desde el prompt hasta el radiobutton.
Prompt font:
Esta propiedad nos permite asignar una fuente, su estilo y tamaño a un prompt.
Prompt foreground:
Esta propiedad nos permite asignar un color de fuente a un prompt.
Prompt position:
Especifica como es alineado el prompt con respecto al field. Los posibles valores son:
Top
Left
Right
Bottom
Prompt opaque:
Especifica si se visualiza el background del prompt o si este es transparente, si el valor de
esta propiedad es verdadero significa que el prompt no será transparente.
Tooltip:
Especifica el texto que aparecerá cuando el cursor del Mouse se posicione sobre el
radiobutton.
74
Comenzando a trabajar con JFormsBuilder3.1
Visible:
Especifica si un radiobutton estará visible para el usuario final.
Width:
Especifica el ancho de un radiobutton, el sistema de medidas utilizado es el píxel.
X:
Especifica la posición x de un radiobutton, el sistema de medidas utilizado es el píxel.
Y:
Especifica la posición y de un radiobutton, el sistema de medidas utilizado es el píxel.
4.2. Eventos:
Los eventos que analizaremos en este capítulo son aquellos a los que se puede responder a
nivel de field, data o forma.
La figura 4.6. Muestra el flujo de eventos que se disparan a nivel de field al entrar a un data
después de iniciar la forma, al navegar de un field a otro field en un mismo data, al navegar de
un field a otro field en otro registro y al navegar de un field a otro field en un data diferente.
75
Comenzando a trabajar con JFormsBuilder3.1
Figura 4.6
Pre_Text_Field:
Este evento se ejecuta antes de entrar a un field, este evento puede ser utilizado para asignar
valores iniciales a un field, guardar el valor actual del field en una variable global para hacer
una comparación con el valor que se digito, en fin este evento puede ser utilizado para ejecutar
muchas acciones.
When_New_Field_Instances:
Este evento se ejecuta después de navegar a un field, ya sea cambiando de data, de registro o
simplemente cambiando de field. Este evento al igual que los demás Eventos “when-new” se
dispara al final del proceso de ejecución de todos los eventos.
76
Comenzando a trabajar con JFormsBuilder3.1
Post_Text_Field:
Este evento se ejecuta cuando se está cambiando de un field a otro, ya sea cambiando de data,
registro o simplemente cambiando de field.
Post_Change:
Este es uno de los eventos del proceso de validación de un field, este evento puede ocurrir
dadas las siguientes circunstancias:
Que el proceso de validación determine que el field está marcado como cambiado y es
no nulo.
El usuario retorna un valor seleccionado de una lista de ayuda y el valor no es nulo.
Cuando realizamos una consulta, al momento de llenar los registros con la
información de la base de datos, el evento se ejecuta para todos los fields que tengan
asociado el evento y el valor obtenido de la base de datos es diferente de nulo.
When_validate_field:
Este es uno de los eventos del proceso de validación de un field, este evento puede ocurrir
dadas las siguientes circunstancias:
Que el proceso de validación determine que el field esta marcado como cambiado, en
este evento a diferencia del post-change no se tiene en cuenta si el valor del field es
nulo para ejecutarse.
El usuario retorna un valor seleccionado de una lista de ayuda.
Cuando realizamos una consulta, al momento de llenar los registros con la
información de la base de datos, el evento se ejecuta para todos los fields que tengan
asociado el evento y el valor obtenido de la base de datos es nulo.
77
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 5
Cuando construimos una forma, usamos Paneles para mostrarle al usuario final los elementos
visuales (campos de texto, imágenes, etc.). Una forma sencilla puede contener cualquier
cantidad de Paneles.
Principal (Principal)
Pestañas (Tabbed)
Apilado (Stacked)
78
Comenzando a trabajar con JFormsBuilder3.1
Grilla (Grid)
Barra de herramientas (Toolbar)
Border :
Esta propiedad nos permite asignar un estilo de borde a un panel, haciendo doble Clic
sobre la propiedad se nos desplegara un dialogo donde podemos seleccionar el estilo de
borde deseado (Figura 4.2).
Color:
Esta propiedad nos permite asignar un color de fondo a un Panel, haciendo doble Clic
sobre la propiedad se nos desplegara un dialogo donde podemos seleccionar el color
deseado (Figura 4.3).
79
Comenzando a trabajar con JFormsBuilder3.1
Comments:
Esta propiedad nos sirve para mantener comentarios sobre un panel. Nos puede servir
para controlar fechas y autores de las diferentes modificaciones, así como para
documentar el objetivo del Panel
Frame Container:
Indica en que Frame va a desplegarse el panel seleccionado, pueden añadirse varios
paneles de diferentes tipos al mismo frame
Height:
Esta propiedad especifica la altura de un panel, la unidad de medida es el píxel
Java name:
Esta propiedad muestra el nombre que va a tener el panel en el codigo fuente java
Name:
Esta propiedad es utilizada para especificar el nombre de un panel, este nombre debe
ser único
SubClass information:
Esta propiedad la utilizamos asignarle o saber a qué elemento se encuentra asociado
el Panel. Con esta propiedad podemos decirle al panel que tome todas las propiedades
de un elemento creado en la forma o lo pueda tomar desde otro archivo creado con
JFormsBuilder. Para mayor información véase el capítulo de reutilización de código.
80
Comenzando a trabajar con JFormsBuilder3.1
Tooltip:
Especifica el texto que aparecerá cuando el cursor del Mouse se posicione sobre un
panel.
Width:
Esta propiedad especifica el ancho de un panel, la unidad de medida es el pixel.
X:
Especifica la posición con repecto al eje x en el cual estara ubicado el panel
Y:
Especifica la posición con repecto al eje y en el cual estara ubicado el panel
Propiedades:
Is toolbar:
Propiedad que indica si el panel es una barra de herramientas, sus opciones son false y
true. (Mas información, Paneles de Barra de herramientas)
Panel type:
Esta propiedad especifica el tipo de panel, las opciones son: Principal (Principal),
Stacked (Apilado), Grid () y Tabbed (Pestañas)
Show horizontal scrollbar / vertical scrollbar:
81
Comenzando a trabajar con JFormsBuilder3.1
Un Panel de pestañas, compuestas por una o más paginas de pestañas, te permite agrupar
gran cantidad de información relacionada en un solo objeto dinámico de JFormsBuilder.
Así como los Paneles apilados, los Paneles de pestañas se ubican sobre un Panel principal
ocultándolos un poco. Las páginas de pestañas muestran un subconjunto de información
del Panel de pestañas.
Propiedades:
Panel type:
Esta propiedad especifica el tipo de panel, las opciones son: Principal (Principal),
Stacked (Apilado), Grid () y Tabbed (Pestañas)
Show horizontal scrollbar / vertical scrollbar:
Esta propiedad nos permite establecer si deseamos mostrar una barra de
desplazamiento horizontal o vertical en caso tal de que el tamaño del panel sea mayor
al tamaño del frame que lo contiene. Sus opciones son False: no se muestra y True: se
muestra
Tab layout:
82
Comenzando a trabajar con JFormsBuilder3.1
Cada Panel de pestañas puede tener muchas páginas de pestañas, y debe tener por lo
menos una. Pensar en páginas de pestañas es como pensar en carpetas en un disco duro.
Cada página de pestaña individual (carpetas) tiene una etiqueta para que los
desarrolladores y usuarios finales hagan clic y accedan a la pestaña.
83
Comenzando a trabajar con JFormsBuilder3.1
Las páginas de pestañas son sub objetos de un Panel de pestañas. Como al Panel al que
están asignados, las páginas de pestañas tiene sus propiedades; de manera similar,
cualquier elemento que coloques en una página de pestañas tiene propiedades de Panel
como propiedades de pagina de pestañas. El orden de las páginas de pestañas que
coloques en el diseñador grafico será el orden que tendrán las pestañas en ejecución.
Propiedades:
Enable:
Esta propiedad establece si la pagina de pestaña estara habilitada o no en tiempo de
ejecucion.
Label:
Titulo de la pagina de pestaña, la cual utilizamos para identificarla en tiempo de
ejecucion.
Visible:
Establece si la pagina de pestana va a mostrarse o no en tiempo de ejecución, sus
opciones son False: no muestra la pagina de pestaña en ejecución y True (Por defecto):
el panel es visible en tiempo de ejecución.
Propiedades:
Is toolbar:
84
Comenzando a trabajar con JFormsBuilder3.1
Propiedad que indica si el panel es una barra de herramientas, sus opciones son False:
indica que el panel no es de tipo barra de herramientas y puede ser de cualquiera de
los otros tipos de paneles, automáticamente las propiedades de este panel se
modifican como si se tratara de un panel de tipo apilado. True: indica que el panel es
de tipo barra de herramientas y despliega una nueva propiedad llamada Position
type (Definida a continuación)
Position type:
Define la orientación de la barra de herramientas al ser mostrada en tiempo de
ejecución. Sus opciones son Vertical y Horizontal.
Propiedades:
Data name:
Nombre del data que está asociado al Panel tipo Grilla
Edit:
Permite editar las columnas que aparecerán en el panel.
Header background:
Color de fondo que aparecerá en el encabezado del panel tipo grilla
Header font:
Tipo de fuente que aparecerá en el encabezado del panel tipo grilla
Header foreground:
Color de letra que aparecerá en el encabezado del panel tipo grilla
Header height:
Alto del encabezado que aparecerá en el encabezado del panel tipo grilla
Image path:
Ruta de la imagen que aparecerá en el encabezado del panel. Esta imagen se
redimensionará dependiendo el alto del encabezado.
Is toolbar:
85
Comenzando a trabajar con JFormsBuilder3.1
Propiedad que indica si el panel es una barra de herramientas, sus opciones son false y
true. (Mas información, Paneles de Barra de herramientas)
Panel type:
Esta propiedad especifica el tipo de panel, las opciones son: Principal (Principal),
Stacked (Apilado), Grid () y Tabbed (Pestañas)
Records height:
Esta propiedad establece el alto de los registros que son visualizados en el panel.
Show horizontal scrollbar / vertical scrollbar:
Esta propiedad nos permite establecer si deseamos mostrar una barra de
desplazamiento horizontal o vertical en caso tal de que el tamaño del panel sea mayor
al tamaño del frame que lo contiene. Sus opciones son False: no se muestra y True: se
muestra
Title:
Titulo que se mostrara en el encabezado del panel tipo grilla
View port height / width:
Alto y ancho de la vista del panel tipo grilla. Si la vista es más pequeña que el tamaño
del panel se puede recorrer mediante las barras de desplazamiento (Hay que colocar
las propiedades Show horizontal scrollbar y show vertical scrollbar en true,
dependiendo de qué barra de desplazamiento se quiere utilizar).
Visible:
Establece si el panel va a mostrarse o no en tiempo de ejecución, sus opciones son
False: no muestra el panel en ejecución y True (Por defecto): el panel es visible en
tiempo de ejecución.
86
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 6
Los objetos gráficos son elementos que nos permiten dibujar todo tipo de figuras en nuestras
formas, como complemento al diseño que hayamos establecido, son una ayuda visual a las
formas generadas en JFormsBuilder.
JFormsBuilder nos permite trabajar con 7 objetos gráficos, los cuales son:
DFrame
Elipse
Image
Line
Rectangle
RoundedRectangle
TextGraphic
Comments:
Esta propiedad nos sirve para mantener comentarios sobre un panel. Nos puede servir
para controlar fechas y autores de las diferentes modificaciones, así como para
documentar el objetivo del Panel.
Graphic type:
Especifica el tipo de objeto grafico esta seleccionado.
Java name:
87
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad muestra el nombre que va a tener el objeto grafico en el codigo fuente
java
Name:
Esta propiedad es utilizada para especificar el nombre de un panel, este nombre debe
ser único
SubClass information:
Esta propiedad la utilizamos asignarle o saber a qué elemento se encuentra asociado
el objeto grafico. Con esta propiedad podemos decirle al objeto grafico que tome todas
las propiedades de un elemento creado en la forma o lo pueda tomar desde otro
archivo creado con JFormsBuilder. Para mayor información véase el capítulo de
reutilización de código.
X:
Especifica la posición con repecto al eje x en el cual estara ubicado el panel
Y:
Especifica la posición con repecto al eje y en el cual estara ubicado el panel
6.3.1. DFrame.
Un DFrame es un objeto grafico que se utiliza para agrupar otros objetos, que pueden ser
objetos gráficos o no.
Propiedades
Bevel:
Establece el tipo de bisel que tendra el DFrame, puede ser Normal: no tiene ningun
bisel, Raised: el bisel esta enfocado hacia el exterior y Lowered: el bisel esta enfocado
hacia el interior.
Border Color:
Color del borde del DFrame
Fill Color:
Color de relleno del Dframe.
Height:
Altura del DFrame, esta unidad de medida es en pixeles.
88
Comenzando a trabajar con JFormsBuilder3.1
Fill:
Indica si el objeto debe tener el color de relleno establecido en la propiedad Fill color,
sus opciones son False (por defecto): El color de relleno del objeto es blanco, o True: El
objeto grafico toma el color de relleno establecido en la propiedad Fill color.
Title:
Titulo que lleva el DFrame. Este titulo permite identificar a que grupo pertenecen los
objetos que estan dentro de el.
Title font:
Tipo de fuente del Titulo.
Title foreground:
Color de letra del titulo
Title offset:
Distancia desde el inicio del DFrame hasta el titulo. Los valores pueden ser positivos o
negativos, su unidad de medida son los pixeles.
Title position:
Posicion del titulo en el DFrame, sus valores son Left ( Por defecto): Titulo ubicado a la
izquierda del DFrame, Center: Titulo ubicado al centro del DFrame y Right: Titulo
ubicado a la derecha del DFrame
Width:
Ancho del DFrame, esta unidad de medida es en pixeles.
6.3.2. Ellipse.
Propiedades
Border Color:
Color del borde de una Elipse
Fill Color:
Color de relleno de una Elipse.
Fill:
89
Comenzando a trabajar con JFormsBuilder3.1
Indica si el objeto debe tener el color de relleno establecido en la propiedad Fill color,
sus opciones son False (por defecto): El color de relleno del objeto es blanco, o True: El
objeto grafico toma el color de relleno establecido en la propiedad Fill color.
Height:
Altura del Elipse, esta unidad de medida es en pixeles.
Line Width:
Ancho de la linea exterior del Elipse
Width:
Ancho del Elipse, esta unidad de medida es en pixeles.
6.3.3. Image
Este objeto grafico permite almacenar una imagen seleccionada para incluirla dentro de
nuestras aplicaciones.
Propiedades
Bevel:
Establece el tipo de bisel que tendrá el Image, puede ser Normal: no tiene ningun bisel,
Raised: el bisel esta enfocado hacia el exterior y Lowered: el bisel esta enfocado hacia
el interior.
Border Color:
Color del borde del Image.
Height:
Altura del Image, esta unidad de medida es en pixeles.
Image path:
Ruta donde esta ubicada la imagen.
Line Width:
Ancho de la línea exterior del Image
Width:
Ancho del Image, esta unidad de medida es en pixeles.
90
Comenzando a trabajar con JFormsBuilder3.1
6.3.4. Line
Este objeto dibuja una línea en nuestras formas, dependiendo del ancho y el alto, así
nuestra línea tendrá su inclinación.
Propiedades
Border Color:
Color del borde de una Line
Height:
Altura del Line, esta unidad de medida es en pixeles.
Line Width:
Ancho de la linea del Line
Width:
Ancho del Line, esta unidad de medida es en pixeles.
6.3.5. Rectangle
Este objeto grafico es una figura geométrica de cuatro lados, semejante a un cuadrado,
pero dos de sus lados paralelos son las largos que sus otros dos.
Propiedades
Bevel:
Establece el tipo de bisel que tendra el Rectangle, puede ser Normal: no tiene ningun
bisel, Raised: el bisel esta enfocado hacia el exterior y Lowered: el bisel esta enfocado
hacia el interior.
Border Color:
Color del borde de un Rectangle
Fill Color:
Color de relleno de un Rectangle
Fill:
91
Comenzando a trabajar con JFormsBuilder3.1
Indica si el objeto debe tener el color de relleno establecido en la propiedad Fill color,
sus opciones son False (por defecto): El color de relleno del objeto es blanco, o True: El
objeto grafico toma el color de relleno establecido en la propiedad Fill color.
Height:
Altura del Rectangle, esta unidad de medida es en pixeles.
Line Width:
Ancho de la linea del Rectangle
Width:
Ancho del rectángulo, esta unidad de medida es en pixeles.
Este objeto es muy parecido al Rectangle, solo que este posee las esquinas redondeadas.
Propiedades
Border Color:
Color del borde de un RoundedRectangle
Fill:
Indica si el objeto debe tener el color de relleno establecido en la propiedad Fill color,
sus opciones son False (por defecto): El color de relleno del objeto es blanco, o True: El
objeto grafico toma el color de relleno establecido en la propiedad Fill color.
Fill Color:
Color de relleno de un RoundedRectangle
Height:
Altura del RoundedRectangle, esta unidad de medida es en pixeles.
Line Width:
Ancho de la linea del RoundedRectangle
X corner radious:
Establece el angulo con respecto al eje X
Y corner radious:
Establece el angulo con respecto al eje Y
Width:
92
Comenzando a trabajar con JFormsBuilder3.1
Este objeto grafico nos permite escribir texto y poder tomar ese texto que escribrimos
como si se tratara de una imagen.
Propiedades
Background:
Establece el color de fondo del Text_graphic
Foreground:
Establece el color de texto del Text_graphic
Font:
Establece la fuente a utilizar en el Text_graphic.
Horizontal alignment:
Establece el alineamiento del texto dentro del text_graphic, las opciones son Alg_left
(Por defecto): aliena el texto a la izquiera, Alg_Center: alinea el texto en el centro y
Alg_Right: alinea el texto a la derecha
Fill:
Indica si el objeto debe tener el color de relleno establecido en la propiedad
Background, sus opciones son False (por defecto): El color de relleno del objeto es
blanco, o True: El objeto grafico toma el color de relleno establecido en la propiedad
Fill color.
Label:
Nombre del texto que se visualiza en el text_graphic
93
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 7
Una Sentencia SQL es una estructura de datos con una vista de columnas/filas similar a una
tabla de una base de datos. Sin embargo, a diferencia de una tabla, las Sentencias SQL son
objetos independientes que pertenecen a una forma en la cual fueron definidas. Las
Sentencias SQL no están diseñadas para ser un remplazo de las tablas de bases de datos
mientras que la aplicación se encuentra en ejecución. Son óptimas al momento de buscar
algún valor en listas relativamente pequeñas o para estructuras de datos de tamaño mediano
en aplicaciones que guardan registros en cliente/servidor.
Sin embargo, una Sentencia SQL puede ser construida dinámicamente en tiempo de ejecución,
mientras que la estructura de las Sentencias SQL es determinada en el Editor de Diseño.
Mediante programación en código PL/SQL, Listas de Ayuda pueden ser usadas cuando la
funcionalidad de un arreglo de dos dimensiones con múltiples datos es requerida. Una
Sentencia SQL puede tener un número ilimitado de columnas de tipo numérico, cadena de
caracteres o de tipo dato.
Las Sentencias SQL basadas en una consulta SELECT pueden almacenar registros de una tabla
o varias tablas de una base de datos de forma parecida a una vista de base de datos, con la
ventaja que la Sentencia SQL es nativa de JFormsBuilder en vez de existir en la base de datos.
A demás, la consulta SELECT usada para crear y llenar una Sentencia SQL puede ser
construida dinámicamente en tiempo de ejecución.
Existen dos tipos de Sentencias SQL, basadas en una consulta SELECT o en Sentencias SQL con
valores estáticos.
94
Comenzando a trabajar con JFormsBuilder3.1
Sentencias SQL basada en consulta SELECT. Es una Sentencia SQL la cual tiene
asociada una consulta SELECT. Las columnas en una Sentencia SQL basada en una
consulta toma los nombres por defecto, tipos y longitud de datos de las tablas de la
base de datos referenciadas en la sentencia SELECT. Los registros de una Sentencia
SQL son los registros traídos de la base de datos mediante la consulta SELECT
asociada a esta.
Las Sentencias SQL basadas en consulta SELECT pueden ser creadas y modificadas
mediante el asistente o en tiempo de ejecución.
Sentencias SQL Estáticas. Una Sentencia SQL Estática es aquella que no contiene una
consulta asociada a ella, en cambio, se definen las filas y los valores de los registros en
el Diseñador Grafico y estas se mantienen en ejecución.
Las Sentencias SQL Estáticas solo pueden ser creadas y modificadas en el Diseñador
Grafico.
Podemos especificar qué tipo de Sentencia SQL queremos crear mediante el asistente
en el Diseñador Grafico (ver figura 7.1).
95
Comenzando a trabajar con JFormsBuilder3.1
Las Sentencias SQL Estáticas solo pueden ser creadas y modificadas en el Diseñador
Grafico.
Crear una sentencia SQL
Para crear una Sentencia SQL basada en una consulta SELECT con el asistente debemos
seguir los siguientes pasos:
Figura 7.2. Creando una Sentencia SQL - Paso 1
96
Comenzando a trabajar con JFormsBuilder3.1
Paso 4. Escribimos la consulta SELECT discriminando cada uno de los campos. Puedes
incluir referencias a variables globales y parámetros de la forma dentro del WHERE de
la consulta.
Paso 5. Clic en siguiente y veremos las columnas que serán generadas en la Sentencia SQL.
97
Comenzando a trabajar con JFormsBuilder3.1
Paso 6. Clic en siguiente y en finalizar para salir del asistente de Sentencias SQL.
Propiedades
Column Specification:
98
Comenzando a trabajar con JFormsBuilder3.1
99
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 8
Una Lista de Ayuda es una ventana emergente desplazable que provee al usuario final una
lista de selección simple o con múltiples columnas.
Las Listas de Ayuda pueden ser desplegadas por petición del usuario final (cuando hay
una Lista de Ayuda disponible), cuando el usuario navega a un campo de texto con una
Lista de Ayuda asociada, mediante programación, independientemente de un campo de
texto especifico.
Los valores de una Lista de Ayuda que son seleccionados por el usuario final pueden ser
asignados a campos de la forma, de acuerdo a los valores de retorno que fueron asignados.
En tiempo de diseño, una Lista de Ayuda puede ser asignada a uno o más campos de texto
de la forma.
Los usuarios finales pueden utilizar las características de auto reducción y búsqueda en una
Lista de Ayuda para facilitarles la localización de un valor especifico.
100
Comenzando a trabajar con JFormsBuilder3.1
Para usar la característica de auto reducción, los usuarios finales deben escribir los caracteres
o las palabras en la Lista de Ayuda. A medida que ingresamos los caracteres JFormsBuilder se
encarga de reducir la lista de valores que coincidan con la cadena que has sido escrita. Al
mismo tiempo, si hacemos presionamos la tecla ‘Retroceder’ obtenemos los valores a medida
que los caracteres en la Lista de Ayuda.
Los usuarios finales pueden usar la característica de búsqueda para localizar un valor
específico. Para usar esta característica, el usuario final se sitúa sobre el campo de búsqueda
de la Lista de Ayuda y digite la palabra a buscar, haciendo clic sobre el botón Filtrar u
oprimiendo la tecla ENTER, JFormsBuilder acorta la lista para hacer que los resultados
aparezcan con los que coincidan con la búsqueda del usuario. Note que si la palabra a buscar
termina con el símbolo porcentaje ‘%’ JFormsBuilder traerá todos los valores de la Lista de
Ayuda.
Las Listas de Ayuda están derivadas de una estructura de datos interna llamada Sentencias
SQL. Cuando definimos una Lista de Ayuda, la asociamos a una Sentencia SQL.
Una Sentencia SQL es una estructura de columnas/filas que es similar a una tabla en la base de
datos. La Lista de Ayuda es la interface de objetos que ayuda a los usuarios finales a ver,
recorrer y seleccionar registros actualmente almacenados en la Sentencia SQL.
Una Sentencia SQL tiene un número ilimitado de columnas de tipo CHAR, LONG, NUMBER o
DATE.
Cuando se crea una Lista de Ayuda, se debe especificar que columnas de la Sentencia SQL van
a ser mostradas en la ventana de la Lista de Ayuda. Las columnas de la Sentencia SQL siempre
van a mostrarse en la ventana de la Lista de Ayuda en el mismo orden en que fueron
seleccionadas en la Sentencia SQL.
Debido a que las Listas de Ayuda y las Sentencias SQL son objetos separados, se pueden crear
múltiples Listas de Ayuda basadas en la misma Sentencia SQL. Por ejemplo, si quieres crear
101
Comenzando a trabajar con JFormsBuilder3.1
dos Listas de Ayuda basadas en una misma Sentencia SQL de cuatro columnas, pero en cada
una de las Listas de Ayuda vas a mostrar columnas diferentes.
Para crear una Lista de Ayuda con el asistente debemos seguir lo siguientes pasos:
Paso 2: Seleccionamos ‘crear una lista de ayuda con el asistente’ y clic en aceptar.
102
Comenzando a trabajar con JFormsBuilder3.1
103
Comenzando a trabajar con JFormsBuilder3.1
104
Comenzando a trabajar con JFormsBuilder3.1
105
Comenzando a trabajar con JFormsBuilder3.1
Para crear una Lista de Ayuda manualmente, debemos seguir los siguientes pasos:
Paso 1: En el paso dos, al crear una Lista de Ayuda, seleccionamos crear una ‘Lista de
ayuda manualmente’ (Ver figura 8.8) y hacemos clic en aceptar.
106
Comenzando a trabajar con JFormsBuilder3.1
Figura 8.10. Asignando las propiedades a una Lista de Ayuda creada manualmente
Propiedades:
Automatic display:
Esta propiedad nos sirve para desplegar la lista de ayuda automaticamente cuando se
navega sobre un elemento de la que la tenga asociada.
Comments:
107
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad nos sirve para mantener comentarios sobre una Lista de ayuda. Nos
puede servir para controlar fechas y autores de las diferentes modificaciones, así
como para documentar el objetivo de la Lista de ayuda.
Height:
Esta propiedad especifica la altura de una Lista de ayuda, la unidad de medida es el
píxel.
Java name:
Esta propiedad muestra el nombre que va a tener la Lista de ayuda en el código fuente
java.
Name:
Esta propiedad es utilizada para especificar el nombre de una Lista de ayuda, este
nombre debe ser único.
Name field by validate:
Establece el nombre del Field contra el cual va a ejecutar la propiedad Validate List.
Number of records displayed:
Numero de registros desplegados al ejecutar la sentencia sql asociada a la Lista de
ayuda
SqlStatement:
Sentencia sql asociada a la Lista de Ayuda.
SubClass Information:
Esta propiedad la utilizamos asignarle o saber a qué elemento se encuentra asociado a
la Lista de ayuda. Con esta propiedad podemos decirle a la Lista de ayuda que tome
todas las propiedades de un elemento creado en la forma o lo pueda tomar desde otro
archivo creado con JFormsBuilder. Para mayor información véase el capítulo de
reutilización de código.
Title:
Titulo que se mostrara en la barra de titulo en tiempo de ejecucion la Lista de ayuda.
Width:
Esta propiedad especifica el ancho de una Lista de ayuda, la unidad de medida es el
píxel
X:
Especifica la posición con respecto al eje x en el cual estará ubicada la Lista de ayuda
108
Comenzando a trabajar con JFormsBuilder3.1
Y:
Especifica la posición con respecto al eje y en el cual estará ubicada la Lista de ayuda
Name:
Esta propiedad es utilizada para especificar el nombre de la columna. Este nombre
debe ser único.
Label:
Etiqueta con la cual aparecerá en la columna al desplegar la lista de ayuda.
Return value to:
Esta propiedad establece cual va a ser el Field al cual va a retornar el valor
seleccionado de la Lista de ayuda.
Visible:
Establece si la columna va a ser visible o no en tiempo de ejecución.
Width:
Establece el ancho de la columna, esta medida está dada en pixeles.
109
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 9.
Creación de métodos.
Con JFormsBuilder podemos crear métodos internos en una forma o librería que nos
permitan implementar la funcionalidad que es propia de la forma, tal como validaciones o
llamados a Enterprise Java Beans de sesión o procedimientos almacenados en una base de
datos que implementen la lógica de negocio de la aplicación.
Para crear un método en JFormsBuilder hacemos clic contrario sobre el nodo “METHODS” del
árbol del navegador de objetos, seguidamente se nos muestra un dialogo como el mostrado en
la figura 9 .1
Así como cualquier otro tipo de elemento, a los métodos también se les pueden definir
propiedades. Las propiedades de los métodos son:
110
Comenzando a trabajar con JFormsBuilder3.1
Comments:
En esta propiedad definimos los comentarios de nuestro método. Cuando generamos las
clases de java, los comentarios se agregan como documentación java del método
(JavaDoc).
Function Type:
Esta propiedad indica cuál es el tipo de dato que devuelve el método. Si el método es un
procedimiento, al no devolver nada el tipo de función se define como void.
Name:
Esta propiedad indica el nombre del método.
Method Type:
Esta propiedad indica si el método que estamos editando es un procedimiento, función o
paquete.
Programming Type:
Esta propiedad indica el lenguaje de programación con el que se está editando el método.
Los valores posibles son PL/SQL y Java. Si cambiamos de PL/SQL a java, un mensaje de
advertencia es mostrado indicando que todo cambio en Java no será migrado
automáticamente a PL/SQL. Esto es debido a que Java es un lenguaje 3GL (propósito
general) y PL/SQL es un 4GL (propósito más específico).
111
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 10.
Adjuntar Librerías.
Las librerías son una agrupación de métodos que pueden ser llamados desde cualquier evento
o método de una forma que haya adjuntado dicha librería.
El nodo librerías muestra las librerías que se encuentran adjuntas a la forma y también nos
permite adjuntar nuevas librerías.
112
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 11.
Definiendo los object groups y sus propiedades.
Los object groups son contenedores de objetos los cuales utilizamos para almacenar
información que nos podría ser útil desde otra forma. Estos grupos de objetos nos permiten
tener agregados objetos que sean hijos de los objetos de la estructura principal de la forma a
excepción de unos. Los elementos permitidos son:
Events.
Data.
Help_list.
SqlStatement.
Frame.
Panel.
Message.
Method.
Parameter.
Property Class.
Visual attributes.
Los object groups son utilizados para reutilización de código porque nos permite compartir
objetos con otras formas de manera referenciada para poder mantener el código desde una
sola ubicación de forma personalizada.
En estos object groups no tienen limite de objetos dentro de ellos, y pueden ser agregados y
eliminados los objetos dependiendo lo que se necesite. No pueden existir objetos del mismo
tipo que tengan el mismo nombre cuando se intenta hacer eso la herramienta no lo permitirá
y no sobrescribirá el elemento que se tiene ya agregado.
Los object groups pueden ser utilizados desde diferentes formas y cuando este objeto sea
agregado a la forma los objetos contenidos en el se agregaran a sus respectivos nodos
113
Comenzando a trabajar con JFormsBuilder3.1
contenedores, en el caso de que el nodo que se desea agregar ya exista un objeto con el mismo
nombre este objeto no se agregara ni se sobrescribirá para no dañar el que ya se encuentra
funcionando en la aplicación, este objeto que no fue agregado quedara en la referencia del
object group y no quedara añadido a la forma hasta que el que se encuentra creado en la
forma sea eliminado.
Propiedades.
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el object group. Nos puede servir
para controlar fechas y autores de las diferentes modificaciones, así como para documentar el
objetivo del object group.
Name:
Esta propiedad define el nombre con el que vamos a identificar el object group. Este nombre
lo vamos a usar cuando referenciemos el object group desde diferentes lugares
JFormsBuilder.
114
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 12.
Definiendo los property class y sus propiedades.
Los property classes son objetos utilizados para la reutilización de código. Estos objetos son
utilizados para poder controlar propiedades y eventos que tengan componentes asignados.
Un property class puede tener todas las propiedades que se puedan encontrar en el
JFormsBuilder, además de eso el property class también puede tener asociado los eventos que
estén disponibles en el JFormsBuilder.
Los property classes solo pueden tener asociados la propiedad una sola vez y para poder
agregarle propiedades se realiza a través del botón que se encuentra en la parte superior de
Los property classes pueden estar asociados a cualquier objeto en la herramienta, como
decíamos anteriormente estos objetos pueden tener todas las propiedades y al momento de
asociarlos a un objeto este solo pondrá las propiedades que corresponden a ese objeto, las
otras propiedades que no pertenezcan a ese objeto no serán visualizadas al momento de
asociarse y no afectaran el funcionamiento del objeto, de igual manera funcionan cuando el
property class tiene eventos asociados estos eventos no serán visualizados en los elementos
que no puedan llevar eventos.
Propiedades.
Comments:
115
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad nos sirve para mantener comentarios sobre el property class. Nos puede
servir para controlar fechas y autores de las diferentes modificaciones, así como para
documentar el objetivo del property class.
Name:
Esta propiedad define el nombre con el que vamos a identificar el property class. Este
nombre lo vamos a usar cuando referenciemos el property class desde los diferentes
métodos del JFormsBuilder.
SubClassInformation:
116
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 13.
Definiendo los imports.
Los imports son utilizados para agregar librerías que no pertenecen al JAS las cuales pueden
ser incluidas por el usuario cuando se encuentra trabajando en java por medio del
JFormsBuilder. Al momento de implementar librerías nuevas que sirvan para hacer funciones
que no tenga el JAS se necesitan traer paquetes que pertenecen a esas librerías y en java se
realiza a través de imports entonces estos paquetes que son necesitados para la aplicación son
agregados a este nodo.
Al generar una forma nos damos cuenta que la herramienta le agrega en la clase java a la
forma los imports necesarios para que la aplicación pueda correr, es decir solo se agregan
cuando se genera a la clase java ya que si observamos en la herramienta el nodo imports se
encuentra vacio, a excepción de que nosotros hayamos agregado un import personal el cual
deseamos que sea agregado cuando generemos la forma.
La herramienta no tiene límite de imports y pueden ser agregados todos los que el
desarrollador necesite en su aplicación.
El nodo imports no tiene ninguna propiedad que pueda ser visualizada solo es un elemento
que se puede crear o eliminar dependiendo de la necesidad.
117
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 14.
Definiendo los visual attributes y sus propiedades.
Los visual attributes son un conjunto de propiedades visuales que se definen por el usuario
las cuales son de fuente y de color. Estas propiedades pueden agregársele a los objetos de
Data o Fields dependiendo la necesidad del desarrollador.
Al asociarse este visual attribute a un objeto este puede alterar la visualización en ejecución
del elemento ya sea solo en el elemento seleccionado, en el registro seleccionado o en los
registros que no se encuentren seleccionados en esos momentos.
Los visual attributes son muy útiles cuando se trata de uniformar al aplicativo con una
apariencia homogénea de tal forma que sea agradable para el usuario.
Propiedades.
Background:
Esta propiedad nos permite asignar un color de fondo a un objeto que tenga asociado un
visual attribute. Para modificar la propiedad hacemos doble Clic sobre esta se nos
desplegara un dialogo donde podemos seleccionar el color deseado.
118
Comenzando a trabajar con JFormsBuilder3.1
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el property class. Nos puede
servir para controlar fechas y autores de las diferentes modificaciones, así como para
documentar el objetivo del property class.
Font:
Esta propiedad nos permite asignar la fuente, su estilo y tamaño de la letra a un objeto
que tenga asociado el visual attribute. Para modificar la propiedad hacemos doble Clic
sobre esta se nos desplegara un dialogo donde podemos seleccionar la fuente, estilo y
tamaño de letra del visual attribute.
Foreground:
119
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad nos permite asignar un color de fuente a un objeto que tenga asociado un
visual attribute. Para modificar la propiedad hacemos doble Clic sobre esta se nos desplegara
un dialogo donde podemos seleccionar el color deseado.
Java name:
Name:
Esta propiedad define el nombre con el que vamos a identificar el property class. Este
nombre lo vamos a usar cuando referenciemos el property class desde los diferentes
métodos del JFormsBuilder.
SubClassInformation:
120
Comenzando a trabajar con JFormsBuilder3.1
Capitulo 15.
Definiendo los frames y examinando sus propiedades.
Un frame es un contenedor de los panels los cuales contienen todos los objetos que se van a
visualizar en la forma. Una forma puede tener cualquier numero de frames no hay ningún
límite. Un frame puede ser agregado desde el navegador de objetos seleccionando el nodo
FRAMES y seleccionando la opción Adicionar.
Una forma realizada por JFormsBuilder solo puede tener un frame de tipo principal, en el caso
de que la forma tenga varios frames definidos como principal se tiene que especificar en la
forma a través de la propiedad Console frame la cual se encuentra en las propiedades de la
forma, sino se especifica la propiedad la cual indica cual es el frame principal la forma
informara al usuario a través de un mensaje y el usuario tendrá que modificar las frames.
Una forma realizada por JFormsBulder puede tener n frames de tipo stacked, estos son frame
apilados los cuales se utilizan para mostrar información y serán visualizados sobre el frame
principal. Los frame de tipo stacked tienen propiedades diferentes a las propiedades que
tienen asociados los frames de tipo principal.
15.2. Propiedades.
Background:
121
Comenzando a trabajar con JFormsBuilder3.1
Esta propiedad nos permite asignar un color de fondo a un frame. Para modificar la
propiedad hacemos doble Clic sobre esta se nos desplegara un dialogo donde podemos
seleccionar el color deseado.
Close allowed:
Indica si el frame puede cerrarse cuando se presione en la cruz por defecto que le agrega
el sistema.
Comments:
Esta propiedad nos sirve para mantener comentarios sobre el frame. Nos puede servir para
controlar fechas y autores de las diferentes modificaciones, así como para documentar el
objetivo del frame.
122
Comenzando a trabajar con JFormsBuilder3.1
Frame type:
Nos permite indicarle al frame de que tipo va a ser. Los posibles valores son Principal y
Stacked.
Height:
Hide on exit:
Esta propiedad la utilizamos para decirle al frame que si un elemento que no esta
contenido dentro del frame es seleccionado este frame se esconderá hasta que vuelva a
hacerse visible a través de alguna propiedad o ubicándose en algún componente que este
agregado en el. Para que la propiedad quede activa hay que asignarle el valor true.
Java name:
Maximize allowed:
Minimize allowed:
Minimized title:
Name:
Esta propiedad define el nombre con el que vamos a identificar al frame. Este nombre lo
vamos a usar cuando referenciemos al frame desde los diferentes métodos del
JFormsBuilder.
123
Comenzando a trabajar con JFormsBuilder3.1
Primary panel:
La utilizamos para indicarle al frame cual va a ser su panel principal, ya que muchos
panels pueden estar agregados en el pero solo uno puede ser el principal el cual va a
tomar el tamaño de este frame. No es necesario que el panel asociado a este frame sea de
tipo principal porque al momento de generarlo este panel agregado se convierte en un
panel de tipo principal.
Resize allowed:
SubClass information:
Title:
Visible:
Width:
X:
Y:
124
Comenzando a trabajar con JFormsBuilder3.1
Modal:
Esta propiedad bloquea todas las ventanas que están abiertas antes que ella haciendo que
el foco no salga de la ventana que se encuentra seleccionada hasta que se cierre.
Move allowed:
Indica si el usuario puede mover la ventana hacia unas posiciones X y Y que el desee en
modo de ejecución.
125
Comenzando a trabajar con JFormsBuilder3.1
Anexo 1.
Definiendo archivos de configuración.
Una vez tenemos nuestras aplicaciones listas para un ambiente productivo, debemos tener en
cuenta archivos de configuración para que nuestras formas funcionen adecuadamente.
Un archivo importante es el server.properties en el cuál se definen propiedades agrupadas
dentro de las siguientes categorías.
#Dao specification
name=Jdbc
readPool=3
poolSize=3
session=Session
Name: Indica el tipo de DAO (Database Access Object) a utilizar, Los valores posibles son
Jdbc, Toplink, Hibernate.
session: Indica el nombre del archivo de sesión de Toplink o Hibernate. Este archivo
contiene la información para la conexión a la base de datos.
#Threads
threadsNumber=3
threadsNumber: Indica el número de hilos creados en el pool del aplicativo para atender
cada una de las peticiones. Inicialmente recomendamos un número igual al doble de usuarios
concurrentes.
#path by files
path=files/
#path by images
path_images=images/
126
Comenzando a trabajar con JFormsBuilder3.1
clientServer=true
clientServer: Solo debe estar en verdadero cuando estamos ejecutando las formas en modo
de depuración desde alguna IDE de Java como Eclipse.
#key maps
KEY_COMMIT=F10
KEY_UP=UP
KEY_DOWN=DOWN
KEY_COMMIT: Indica la tecla con la que el usuario puede llamar al evento KEY_COMMIT .
KEY_UP: Indica la tecla con la que el usuario puede llamar al evento KEY_UP.
KEY_DOWN: Indica la tecla con la que el usuario puede llamar al evento KEY_DOWN.
127