domingo, 26 de febrero de 2017

Creando un Módulo de Form Sencillo

Objetivos:
• Crear un módulo Form.
• Crear un bloque de datos.
• Guardar y compilar un módulo Form.
• Identificar formatos y características de los archivos Forms.

NOTA: Usamos como ejemplo la Base de Datos: ORCL, la cual viene por defecto en cualquier versión de ORACLE.
______________________________________________________________________________________
Creando un Módulo de Form.
Las aplicaciones Oracle Forms Developer suelen consistir en uno o más módulos Forms. Cada módulo Form comprende bloques de datos que se crean utilizando las especificaciones de una tabla de la Base de Datos. Esta publicación muestra cómo crear un módulo Form básico con bloques de datos. De igual manera vemos como desplegar dicho módulo.

Como crear un módulo Form.
Paso
Acción
Herramienta Forms Builder
1.
Crear un módulo vacío.
Object Navigator
2.
Crear Bloque de Datos y sus Items
Asistente para Bloques de Datos.
3.
Aplicar estándares de interfaz de usuario a objetos
Librería de Objetos.
4.
Ajustar el diseño
Asistente de diseño o Layout Editor
5.
Ajustar las propiedades de los objetos
Property Palette
6.
Agregar el código.
Editor PL/SQL
7.
Probar el modulo Form
Botón Run Form
Formas de crear un nuevo módulo Form:
• Ejecute Forms Builder.
---Seleccione la opción "Usar el Asistente para bloque de datos (Data Block Wizard)", luego, siga los pasos de creación de los bloques de datos necesarios. A continuación, siga los pasos del Asistente de diseño (Layout Wizard).
---Seleccione la opción "Crear un nuevo Form manualmente". Esto le llevará al Navegador de objetos de Forms Builder (creando automáticamente un módulo Form vacío).
---Seleccione la opción "Crear un Form basado en una plantilla" y utilice una plantilla de Form.
• Si ya está en Forms Builder, puede crear un módulo Form nuevo realizando una de las siguientes acciones:
---Haga doble clic en el nodo Forms del Navegador de objetos (sólo cuando no hay otros módulos de Forms disponibles).
---Seleccione Archivo (File)>Nuevo (New)>Form.
---Seleccione el nodo Navegador de objetos para Forms y, a continuación, haga clic en el icono Crear (Create).
Cambiar el nombre del Módulo Form.
• Cuando crea un módulo Form por primera vez, Forms Builder asigna el nombre MODULEXX al módulo nuevo, donde XX es el siguiente número disponible. Este nombre se muestra en el Navegador de objetos y en la paleta de propiedades. Debe cambiar el nombre predeterminado por un nombre significativo en cualquiera de los siguientes lugares:
• Navegador de objetos:
---Haga clic en el nombre del módulo Form.
---Cambie el nombre predeterminado por el que desee y presione [Enter].
• En la paleta de propiedades.

Nota: Siga las reglas de nomenclatura de Oracle. No dé a dos objetos del mismo tipo el mismo nombre. El nombre no puede incluir palabras reservadas de Oracle o Forms Builder.

Las Propiedades del Módulo Form.
Cada módulo Form consta de varios objetos. Los objetos dentro de un Form y el propio módulo Form tienen propiedades que definen su comportamiento. Puede ver las propiedades de un objeto y sus valores en la Paleta de Propiedades (Property Palette).
Para abrir la paleta de propiedades de un objeto, realice una de las siguientes acciones:
• Haga doble clic en el icono del objeto en el Navegador de objetos.
• Seleccione el objeto en el Navegador de objetos y seleccione Herramientas>Paleta de propiedades (F4).
Defina las propiedades del módulo Form una vez lo cree. Las propiedades afectan al comportamiento general del Form y los objetos dentro de él.
Las propiedades de un módulo Form incluyen las siguientes:
Propiedad
Descripción
Nombre (Name)
Especifica el nombre interno del módulo Form, tal como aparece en el Navegador de objetos.
Sistema de Coordenadas (Coordinate System)
Define las unidades utilizadas para medir objetos en el Form y sus posiciones.
Selección de la unidad para el Sistema de Coordenadas.
Al hacer clic en Más (More) en la ventana Paleta de Propiedades con la propiedad Sistema de coordenadas seleccionada, se abre la ventana Información de coordenadas.
La unidad Sistema de Coordenadas de un Form puede ser una de las siguientes:
• Real:
---La unidad puede ser píxel, centímetro, pulgada, punto o decipunto.
---Las unidades reales son adecuadas para aplicaciones GUI ya que permiten flexibilidad y alineación fina al ajustar posiciones y tamaños de objetos.
• Carácter (Character): Las unidades son celdas de caracteres (tamaño predeterminado tomado de la configuración de fuente predeterminada).
La unidad predeterminada es el punto (Real). Esto significa que las posiciones de objeto y los tamaños dentro de la forma son medidos por esta unidad. Los puntos proporcionan una alineación y una coherencia fina entre diferentes plataformas y dispositivos de vídeo.

______________________________________________________________________________________
Creando un Nuevo Bloque de Datos.
La creación de bloques implica su creación y la posterior colocación visual de sus Items. Puede crear un bloque de datos manualmente o mediante los asistentes de Forms Builder.

Nota: Recuerde que un bloque de datos puede basarse en una tabla o vista, un procedimiento almacenado, una consulta de cláusula FROM o un Trigger transaccional. En esta publicación, se utilizan tablas de Base de Datos como fuente.

Asistente para Bloques de Datos (Data Block Wizard).
El Asistente para Bloques de Datos le permite crear (o modificar) bloques de datos de forma rápida y fácil para su aplicación. El asistente puede generar automáticamente código para aplicar restricciones de integridad en la Base de Datos.

Asistente de Diseño (Layout Wizard).
Aunque el Asistente para Bloques de Datos le permite crearlos de forma fácil y con sus fuentes de datos asociadas, no se ocupa de la presentación visual de objetos. Una vez que haya creado el bloque de datos, debe establecer/colocar su contenido para que el usuario pueda interactuar con ellos. Para realizar esta tarea rápida y fácilmente, utilice el Asistente para Diseño.

Nota: Los asistentes, no son la única manera de crear un bloque de datos, puede crearlos manualmente (los asistentes suelen ser la manera más sencilla).

______________________________________________________________________________________
Iniciar el Asistente para Bloque de Datos.
Para iniciar el Asistente para bloque de datos, realice una de las siguientes acciones:
• Seleccione Herramientas (Tools)> Asistente para Bloque de Datos (Data Block Wizard).
• En algún nodo del Object Navigator, haga clic con el botón secundario (Clic Derecho) y seleccione la opción Asistente para  Bloque de Datos (Data Block Wizard).
• En el Object Navigator, seleccione el nodo Bloques de Datos y, a continuación, haga clic en el icono Crear (Create). En el cuadro de diálogo Nuevo Bloque de Datos, seleccione la opción Usar el Asistente para bloque de datos.
• En el Editor de Diseño, haga clic en Asistente para bloque de datos en la barra de herramientas.
Creación de un nuevo Bloque de Datos con el Asistente para Bloque de Datos.
Utilice el Asistente para Bloque de Datos para crear un nuevo Bloque de Datos con una fuente de datos de Base de Datos. El Asistente para bloque de datos consta de varias páginas. Para crear un nuevo bloque de datos, debe interactuar con cada página.
Pagina de Bienvenida.
Pagina para la selección del tipo de Bloque.
Página para selección de Tabla.
Pasos para operar en ella:
1. Introduzca el nombre de la tabla o la vista que desea usar y luego presione Refrescar (Refresh) o haga clic en Examinar y seleccione la misma de la lista de tablas.

Nota: Si no está conectado a la base de datos, se muestra un cuadro de dialogo para conectarse.
2. Seleccione las columnas que desea incluir en el Bloque de Datos. (Use [Ctrl] - para seleccionar más de una columna).
4. Haga clic en la flecha doble derecha o la flecha doble izquierda para incluir o excluir todas las columnas o haga clic en la flecha derecha o izquierda para incluir o excluir únicamente las columnas seleccionadas. También puede arrastrar las columnas seleccionadas de una lista a otra.
5. Seleccione la casilla de verificación "Aplicar integridad de datos (Enforce data integrity)" si desea que el asistente imponga las restricciones de integridad de la Base de Datos.

Nota: Si hay al menos otro bloque existente en el módulo actual, la página siguiente que se muestra es la página Maestro-Detalle, donde puede asociar el nuevo Bloque de Datos con otros bloques de datos maestros.

Página Final.
Seleccione la opción "Create the data block, then call the Layout Wizard" para que luego de la creación del Bloque se invoque el Asistente de Diseño. Seleccione Finalizar para crear el nuevo bloque de datos e invocar inmediatamente el Asistente de Diseño.

Nota: Puede salir del asistente sin invocar el Layout Wizard (Just create the data block). De hacer esto, luego debe establecer las posiciones de cada Item manualmente o invocar el Asistente de diseño en un momento posterior para distribuir los elementos del bloque de datos. Para invocar el Asistente de diseño en un momento posterior, seleccione el bloque de datos en el Navegador de objetos y elija Herramientas (Tools)> Asistente de diseño (Layout Wizard).

______________________________________________________________________________________
Colocación de los Items del Bloque con el Asistente de Diseño.
Utilice el Asistente de Diseño para establecer los Items del bloque de datos para su presentación visual. El asistente de diseño consta de varias páginas. Debe interactuar con cada página.
Página Canvas.
Si ya tiene algún Canvas creado:
1. De la lista Canvas: Seleccione el Canvas donde desea mostrar los elementos del Bloque de Datos.
Si no tiene Canvas creado:
1. Seleccione New Canvas para obtener un nuevo Canvas en el cual mostrar los elementos del bloque de datos.
2. Seleccione Content como el tipo de Canvas.

Página Bloque de Datos.
1. Seleccione los elementos que desee visualizar en el marco del bloque de datos. (Use [Ctrl] para seleccionar más de una columna).
2. Haga clic en la flecha doble derecha o doble izquierda para incluir o excluir todos los elementos o haga clic en la flecha derecha o izquierda para incluir o excluir sólo los elementos seleccionados. También puede arrastrar elementos seleccionados de una lista a otra.
Nota: Para dibujar los elementos en una secuencia en particular, arrastre/mueva los elementos en esa secuencia.
3. Puede utilizar la lista Item Type para seleccionar el tipo de cada elemento. El tipo predeterminado es Texto para cada elemento.
Nota: Puede cambiar el tipo de dato de cada Item posteriormente.

Página Items.
En esta pantalla puede establecer/cambiar el Ancho (Width), Largo (Height) y la Etiqueta (Prompt) para cada Item.

Página de Estilo.
Sus opciones son:
Form (normalmente utilizado para crear bloques de datos de registro único).
Tabular (usualmente se usa para crear bloques de datos multirecord).

Página Filas y Marco (Frame and Rows).
Pasos:
1. Introduzca un título en el campo Título del Marco (Frame Title).
2. Introduzca el número de registros que desea mostrar en tiempo de ejecución en el campo Records Displayed.
3. Introduzca la distancia física (en la unidad de sistema de coordenadas del Form) entre registros si está mostrando más de un registro a la vez.
4. Puede seleccionar la casilla de verificación Mostrar barra de desplazamiento para mostrar una barra de desplazamiento junto al marco (común para los bloques de datos de registro múltiple).
5. Haga clic en Finalizar para crear un nuevo marco y desplegar los elementos seleccionados para el nuevo bloque de datos. Los pasos del Asistente para diseño están completos.

Nota: Una vez que haya completado los pasos del Asistente para diseño, puede ver el diseño en el Editor de diseño, donde puede personalizar o modificar el diseño si es necesario.

______________________________________________________________________________________
Funcionalidad del Bloque de Datos.
Una vez creado un nuevo bloque de datos mediante los asistentes, Forms Builder crea automáticamente los siguientes objetos para usted:
• Un nuevo módulo Form con un menú predeterminado (Las funcionalidades básicas como consultar, insertar, actualizar y eliminar están disponible automáticamente).
• El nuevo Bloque de Datos se crea con las propiedades predeterminadas. Estos valores se pueden modificar para cambiar el comportamiento del Form.
• Un objeto Frame para organizar los elementos dentro del nuevo bloque de datos.
• Un Item para cada columna de tabla de Base de Datos incluida en el bloque de datos (a cada Item se le asignan propiedades predeterminadas para que coincidan con las especificaciones de columna subyacentes).
• Un Titulo (Prompt) para cada Item del Bloque de Datos (El Prompt predeterminado es el nombre de la columna).

Además, si marca "Enforce data integrity" en la página Table del Asistente para Bloque de Datos Forms Builder se crean Triggers para validar las entradas del usuario.

______________________________________________________________________________________
Cómo Guardar un Módulo Form.
Para guardar la definición del módulo de formulario, realice una de las siguientes acciones:
• Seleccione Archivo (File)> Guardar (Save).
• Presione el icono Guardar (Save).
Ambas opciones anteriores muestran el cuadro de diálogo Guardar (Save) al hacerlo por primera vez.

Nota:
 Cuando guarda un Form, se genera un archivo .fmb. Este archivo guarda el código fuente del Form, no es ejecutable y sólo puede abrirse mediante Forms Builder.
 Cuando trabaja con más de un módulo a la vez, Forms Builder hace un seguimiento por separado de los cambios que realice en cada módulo. Cuando ejecuta un comando Guardar, sólo se guarda el módulo actual.

Compilación de un Módulo Form.
Antes de poder ejecutar un Form, debe compilar un archivo ejecutable (.fmx) del archivo de diseño (.fmb) que creó en Forms Builder. La compilación de un módulo Form crea el archivo ejecutable necesario.
Para compilar y crear el ejecutable:

Nota: La compilación y guardar son dos tareas independientes. Al realizar uno no ejecuta automáticamente el otro. Ambas tareas deben realizarse por separado.

______________________________________________________________________________________
Ejecutar un Módulo Form.
Luego de crear los objetos y diseñar la manera en la cual desea que se muestren, debe probar que todo funciona como debe, para hacerlo:
1. Presiona Programa (Program) -> Ejecutar Form (Run Form) o presiona las tacla: Ctrl+R.

Nota: Recuerde que antes de ejecutar un Form, el Servidor Form de Middleware debe esta ejecutado, para ejecutarlo (11G):
Al ejecutarlo se abrirá una ventana que no debe cerrar:

El Form una vez ejecutado:
______________________________________________________________________________________
Ajunto el Form Básico creado para esta práctica: Link.

Nota: En este Form agregamos un Trigger: WHEN-NEW-FORM-INSTANCE para que aparezcan los registros de la tabla employees tan pronto como se ejecute en Form. Esto seria igual a:
• Presionar Consulta (Query)-> Ejecutar (Execute) una vez ejecutado el Form.
______________________________________________________________________________________
Fuente: Oracle Forms Developer 10g: Build Internet Applications.

viernes, 17 de febrero de 2017

Trabajando en el Entorno Forms Developer

Objetivos:
• Describir los Componentes  de Forms Builder.
• Navegar por la interfaz de Forms Builder.
• Identificar los objetos principales en un Form.
• Personalizar la sesión de Forms Builder.
• Consultar la ayuda en línea.
• Identificar los ejecutables de Form.
• Describir los tipos de Forms.
• Establecer variables de entorno para el diseño y el tiempo de ejecución.
• Ejecutar un formulario desde Forms Builder.

______________________________________________________________________________________
Funciones Principales de Forms Builder.
Forms Builder es un importante componente de Oracle Forms Developer. Puede utilizar Forms Builder para desarrollar aplicaciones basadas en formularios que permiten presentar y manipular datos de varias maneras.

Los usuarios de Forms Builder pueden:
• Insertar, actualizar, eliminar y consultar datos utilizando una variedad de elementos.
• Presentar datos mediante el uso de texto, imágenes y controles personalizados, incluyendo JavaBeans y componentes Java.
• Controlar los Forms con el uso de diferentes ventanas y transacciones de Base de Datos.
• Enviar datos directamente a Oracle Reports.

Como diseñador de aplicaciones Forms, puede:
• Diseñar formularios que utilicen diferentes fuentes de datos, incluyendo Bases de Datos Oracle.
• Construir aplicaciones de forma rápida y sencilla mediante el uso de poderosas herramientas de desarrollo de GUI.
• Diseño de aplicaciones para la implementación en Internet.
• Copiar y mover objetos y sus propiedades fácilmente entre aplicaciones.
• Utilizar herramientas de diseño como asistentes, el Editores de diseño, Navegadores de objetos y Editores PL/SQL.

______________________________________________________________________________________
El Navegador de Objetos.
Los componentes de la interfaz de Forms Builder ayudan a proporcionar flexibilidad y productividad en el entorno de desarrollo de Oracle Forms Developer.


El Navegador de Objetos.
El Navegador de Objetos es una interfaz de edición en forma de navegador jerárquico. Puede utilizarlo para localizar y manipular objetos de forma rápida y sencilla.


Características:
• Tiene forma de jerarquía, con nodos indentados y expandibles. En los nodos de nivel superior se muestran los tipos de módulo (Form), los objetos de Base de Datos y los paquetes. Todos los demás nodos y los objetos que contienen están sangrados para indicar que pertenecen a estos nodos de nivel superior.
• Continene una herramienta util para buscar campos y iconos, permitiendo búsquedas hacia atrás y adelante en cualquier nivel de nodo o para un elemento individual en un nodo.
• Contiene Iconos en la barra de herramientas vertical que hacen las mismas funciones que el menú Edit y View.
• Cada objeto contiene un icono distintivo para indicar el tipo de objeto.

Paleta de Propiedades.
Todos los objetos de un Form, incluido el propio Form, tienen propiedades que se pueden ver y modificar en la Paleta de Propiedades.
Características:
• Permite copiar y reutilizar las propiedades de otro objeto.
• Tiene una herramienta de búsqueda al del Object Navigator.

Editor de Diseño.
El Editor de Diseño (o el Modelador de Diseño) es un recurso de diseño gráfico para crear y organizar elementos/objetos gráficos de la aplicación. Puede utilizar la Paleta de Herramientas y la Barra de Herramientas disponibles en el Editor de Diseño útiles para diseñar el estilo, dar color, cambiar el tamaño, en general, modificar los objetos visuales en la aplicación.

Nota: El diseño puede incluir objetos gráficos e imágenes.

Editor PL/SQL.
El Editor PL/SQL le permite incorporar objetos de código PL/SQL a un Form. Los objetos de código en el Forms Developer incluyen Triggers de eventos, Subprogramas (Funciones y Procedimientos), comandos de tipo menu item, códigos de menú de inicio y Paquetes. Puede crear y compilar bloques de código en el Editor PL/SQL.

______________________________________________________________________________________
Introducción a la interfaz de Forms Builder.
Iniciando Forms Builder:
Cuando inicia Forms Builder, primero ve un cuadro de diálogo de bienvenida. Si hace clic en Cancelar para cerrar el cuadro de diálogo, verá el Navegador de Objetos y un nuevo módulo Forms vacío.
Si crea aplicaciones que acceden a objetos de Base de Datos, debe conectarse a una desde Forms Builder.

Conéctese a una Base de Datos si necesita:
 Compilar el código que contiene SQL.
 Acceder a objetos de Base de Datos via el Navegador de Objetos.
 Crear objetos de Oracle Forms Developer basados en objetos de Base de Datos.

Para conectarse a Oracle:
1. Seleccione File>Connect (Ctrl + j) en el menú o haga clic en el icono Connect () de la barra de herramientas.
2. Introduzca el usuario y la contraseña de Base de Datos en el cuadro de diálogo Connect. Si no se conecta a la Base de Datos predeterminada, debe proporcionar también la cadena de conexión o el alias de la Base de Datos en cuestión.
Nota: Oracle Forms Developer muestra automáticamente el cuadro de diálogo Connect si intenta realizar una tarea que requiere conexión.

______________________________________________________________________________________
Navegando en el menú principal de Forms Builder.
El menú principal de Forms Builder contiene opciones que permiten crear, modificar y administrar los módulos de Forms.
Funciones comunes del Menú:
Feature
Descripción
Underline
Teclas Rápidas: [Alt] + Tecla.
Elipsis (…)
Entradas Adicionales, por lo general cuadros de diálogos.

La opción del Menú tiene un submenú.
Windows menu
Lista de ventanas abiertas; seleccione la ventana que desea activar.
Ayuda (Help)
Lista de centros de ayuda: Online Help, Forms on OTN, About box.
Interfaz GUI Nativa.
El menú mostrado en la Última imagen representa el entorno de Windows NT. Sin embargo, los menús aparecen con la misma apariencia de su Interfaz GUI Nativa.
Por ejemplo, en Motif, las opciones de Windows Print Dialog aparecen como submenús del menú Font.

Menú Principal de Forms Builder:
Opción
Descripción
Archivo (File)
Opciones comunes de Archivos, como Abrir (Open), Guardar (Save), Conectar (Connect), etc.
Editar (Edit)
Cortar (Cut), Copiar (Copy), Pegar (Paste), Crear (Create), Preferencias (Preferences), y demás.
Ver (View)
Cambiar la vista en la ventana actuar; Las opciones varían dependiendo del contexto.
Diseño (Layout)
Comandos comunes usados en el Editor de Diseño (Layout Editor).
Programa (Program)
Incluye opciones de compilación y comandos relativos al código.
Debug
Invoca la funcionalidad Debugger.
Herramientas (Tools)
Acceso a Asistentes y otros componentes de Forms Builder. 
Componentes de Forms Builder.
Los módulos de Forms forman el "cuerpo" principal de una aplicación Oracle Forms Developer. Los mismo pueden consistir de muchos tipos de objetos, algunos de los cuales son visibles para el usuario en tiempo de ejecución.

Los tres objetos principales en una forma son:
Items: son objetos que presentan valores de datos y/o permiten al usuario interactuar con el Form (dependiendo del tipo de Item). Hay diferentes tipos de Items. Los Items se agrupan de forma lógica en Bloques y son visibles en los Canvases.

Bloques: Un bloque es la unidad de construcción intermedia para los Forms. Cada Form consta de uno o más Bloques. Un bloque es el propietario lógico de los elementos, por lo cual, cada elemento de un Form pertenece a un bloque. Los elementos en un bloque están relacionados lógicamente; Por ejemplo, pueden corresponder a columnas en la misma tabla de Base de Datos o pueden necesitar ser parte del mismo ciclo de navegación.

Los bloques proporcionan un mecanismo para agrupar elementos relacionados en una unidad funcional, lo cual permite almacenar, visualizar y manipular registros.

Canvases: Un Canvas es una "superficie" donde se organizan objetos visuales, como gráficos y Items. Un módulo de Form puede tener varios Canvases (como las páginas de un formulario en papel). Un Canvas puede mostrar elementos de uno o más Bloques. Para ver un Canvas y sus Items, debe abrir el Canvas en una ventana. Por defecto, todos los Canvases de un Form aparecen en la misma ventana (lo que podría significar que sólo se vea un Canvas a la vez), pero puede asignar ventanas separadas para cada Canvas para que se puedan ver varios a la vez.

Nota: Los elementos de un bloque no necesitan ser agrupados físicamente. Pueden estar presentes en diferentes Canvases (y ventanas).

______________________________________________________________________________________
Navegando en un Módulo de Form.
Cuando ejecuta un Form, se suele navegar principalmente por Items y Bloques, no por Canvases. Cada Item tiene una posición secuencial dentro de su bloque, y cada bloque tiene una posición secuencial en el Form.

Cuando un usuario solicita cambiar (Tecla Tab) al siguiente Item de un bloque, el enfoque se establece en el siguiente Item en secuencia, donde quiera que sea. Si el Item siguiente se encuentra en un Canvas diferente, Oracle Forms Developer muestra automáticamente el Canvas. Del mismo modo, los usuarios pueden solicitar cambiar al siguiente bloque (o bloque anterior), Al hacerlo, si el primer Item de este bloque reside en otro Canvas, ese Canvas se muestra automáticamente. Si ya puede ver el Item al cual desea cambiar, puede por supuesto hacer clic directamente en él. 

Nota: Puede programar mecanismos en la aplicación para habilitar la navegación de otras maneras y de paso inhabilitar la navegación secuencial entre Items y Bloques.

______________________________________________________________________________________
Los Bloques de Forms.
Tipos de Bloques:
En Forms Builder hay dos tipos principales de bloques: Bloques de Datos y Bloques de Control.

Bloques de Datos.
Cuando usa Forms Builder crear aplicaciones de Base de Datos, muchos de los bloques serán bloques de datos. Un bloque de datos está asociado con una tabla (o vista) de Base de Datos específica, un Procedimiento almacenado, una consulta con cláusula FROM o a Triggers Transaccionales.

Si el bloque de datos se basa en una tabla (o vista), a su vez el mismo puede ser programado para acceder a datos de más de una tabla y/o fuentes de datos. De forma predeterminada, la relación entre un bloque de datos y la Base de Datos permite al usuario acceder y manipular los datos de la Base de Datos de forma automática. Para acceder a los datos de otras tablas (tablas sin base), debe escribir Triggers de Forms.

Para una tabla base, Forms Builder puede realizar las siguientes acciones automáticamente:
 Crear Items en el bloque de datos que correspondan a las columnas de la tabla (estos Items son llamados Items de DatosItems de la tabla base).
 Producir código para emplear las restricciones (CONSTRAINTS) de la tabla.
 Generar SQL en tiempo de ejecución (SQL implícito) para insertar, actualizar, eliminar y consultar filas en la tabla base, basadas en acciones del usuario.

En tiempo de ejecución, puede utilizar teclas de función estándar, botones, opciones de menú o opciones de la barra de herramientas para iniciar operaciones de consulta, inserción, actualización o eliminación en las tablas base, así como también, hacer COMMIT de la transacción.

Bloques de Control.
Un Bloque de Control no está asociado con una Base de Datos y sus Items no se relacionan con ninguna columna de alguna tabla de la Base de Datos. Sus elementos se llaman Items de Control. Por ejemplo, puede crear muchos botones en un Form para realizar determinadas acciones y agrupar estos botones de forma lógica en un Bloque de Control.

Bloque Maestro vs Bloque Detalle.
Para establecer relaciones entre los Bloques de Datos y sus tablas bases subyacentes, es posible definir un Bloque de Datos como Detalle (hijo) de un Bloque de Datos Maestro (principal). Esto conecta los valores de Llave Primaria (PRIMARY KEY) y Llave Foránea (FOREIGN KEY) a través de bloques de datos y sincroniza los datos que estos muestran.

Forms Builder genera automáticamente los objetos y el código necesarios para establecer relación Maestro-Detalle. Para lograr esto el Programador, sólo necesita establecer las propiedades que permiten esto.

Nota: Si su aplicación lo requiere, también puede crear bloques de datos independientes en los que no haya relación entre los dos bloques de datos.

Bloques Multirecord vs Single-Record (Un sólo Registro).
Puede diseñar bloques de datos que muestren un registro (bloque Single-Record) o varios a la vez (bloque multirecord). Generalmente, se crea un bloque de datos Single-Record para mostrar los datos del bloque maestro y un bloque de datos Multirecord para mostrar los datos del bloque detalle. En ambos casos, los registros de los bloquez de datos que actualmente no están visibles en la pantalla se almacenan en el buffer del bloque.

______________________________________________________________________________________
Aplicaciones Multi-Bloque y Multi-Form.
Por lo general, una aplicación de Forms Builder consta de más de un bloque de datos.

Con varios bloques de datos, es posible:
 Separar el ciclo de navegación de un grupo de Items a otro.
 Asignar cada bloque de dato a una tabla de Base de Datos diferente (puede tener una tabla base por cada bloque de datos).
 Producir un Form Maestro-Detalle, con un bloque de datos maestro y los correspondientes bloques de datos detalle relacionados con el maestro.

Puede crear un módulo Form grande con muchos bloques de datos, o puede tener pequeños módulos Form sólo con los bloques de datos necesarios en cada uno.

Generalmente, las aplicaciones Form pequeñas suelen tener las siguientes características:
 Sus módulos Form se cargan sólo cuando sus Items son requeridos, conservando así memoria.
 Su  mantenimiento puede ocurrir en un módulo Form por separado sin regenerar ni cargar los demás.
 Las formas pueden invocarse entre si, según sea necesario.
• Pueden ser Desarrolladas/Diseñadas en paralelo por diferentes miembros del equipo en diferentes componentes.
.
Algunos puntos a tener en cuenta al agrupar bloques de datos en una aplicación:
Bloques de Datos en un mismo módulo Form.
Bloques de Datos en diferentes módulos Form.
Los bloques de datos pueden asociarse en relaciones Maestro-Detalle.
Los bloques de datos no pueden ser asociados en relaciones Maestro-Detalle.
La navegación entre bloques puede ser manejada vía la funcionalidad por defecto.
La navegación entre bloques de diferentes  Forms es realizada lógicamente por el Programador (Tenga en cuenta que la navegación con el mouse en Items visibles, está siempre presente).

______________________________________________________________________________________
Las Jerarquías en un Módulo Form.
Como ya mencionamos, un módulo Form se compone de uno o más bloques. Un bloque de datos se basa en un objeto de Base de Datos (Tabla o Vista). Un bloque de datos puede contener tanto Items de datos como Items de control. Se pueden crear marcos (frames) para ordenar  y/o agrupar Items de un bloque de datos. Cada Item debe aparecer (Si es visible) en un Canvas y cada Canvas debe aparecer en una ventana (Window). Un módulo Form puede tener uno o más Canvases y ventanas.
Utilizando Triggers, puede agregar funcionalidad al Form. Los Triggers se pueden escribir en diferentes niveles de un módulo Form. Las Unidades de Programa (Program Units) creadas por el usuario le permiten escribir código PL/SQL adicional a través de procedimientos, funciones y paquetes.

Puede crear una gran cantidad de tipos de objetos en un módulo Form, los cuales serán presentados en publicaciones futuras.

En la tabla siguiente presentamos algunos de los objetos disponibles en Form, tenga en cuenta que algunos objetos guardan relación con los demás, pero no siempre uno pertenece a otro.
Objeto
Descripción
Bloque
Unidad/Sección lógica de un Form; Pertenece al módulo Form.
Item
Miembro de un Bloque de Datos (Los Items son funcionalmente agrupados en Registros).
Canvas
Superficie donde se organizan los objetos visuales; Pertenece al módulo Form; Puede contener textos y gráficas (información con la cual, el usuario no puede interactuar).
Window
Su función es contener las vistas de los Canvases; Pertenece al módulo Form.
Frame
Objeto gráfico visible en los Canvas, Pertenece al Canvas, es usado para organizar los Items de un Bloque.
User-named Program Unit
Subprograma: Procedimiento, Función o Paquete que pertenece al módulo Form.
Trigger
Bloque de código PL/SQL ejecutado en un evento; Dependiendo de su alcance, puede pertenecer al Módulo Form, a un Bloque de Datos o a un Item.
Other objects
En su mayoría pertenecen al Módulo Form; Incluye Alertas, Parámetros y Record Groups.
______________________________________________________________________________________
Personalizando la Sesión de Forms Builder.
Puede utilizar las preferencias para personalizar algunos aspectos de su sesión de Forms Builder.

Preferencias de Forms Builder:
Hay cuatro Pestañas (Tabs) en el cuadro de diálogo Preferencias (Preferences). Para ver las descripciones de cada preferencia, haga clic en Ayuda (Help) en el cuadro de diálogo Preferencias o presione la tecla Ayuda ([F1].

Además de las preferencias de sesión, también puede establecer configuraciones en tiempo de ejecución que se aplican al ejecutar el Form desde el Builder.
Para modificar las preferencias:
1. Seleccione Edit>Preferences.
2. Especifique/cambie las opciones que necesite.
3. Haga clic en Aceptar (Ok) para guardar o en Cancel para cancelar los cambios.

La siguiente tabla describe brevemente las Pestañas:
Tab
Preferencia
Descripción
General
Se ejecuta antes de Ejecutar
Determina si Forms Builder compila automáticamente el módulo activo al ejecutar un Form. Esta opción le evita tener que emitir comandos de compilación y ejecución separados cada vez que modifica y ejecuta un Form.
Subclass
Ruta de subclase
Opciones para mantener o eliminar la ruta de subclase
Asistentes
(Wizards)
Welcome Dialog
Casilla de verificación para suprimir o mostrar el primer cuadro de diálogo de bienvenida. Hay varias casillas de verificación similares.
Ejecución
(Runtime)
Matriz de Procesamiento
Determina si Forms Builder procesa grupos de registros a la vez, reduciendo el tráfico de red y aumentando el rendimiento.
______________________________________________________________________________________
Ejecutables Form Developer.
Forms Builder incluye dos ejecutables (componentes) a los que puede acceder como diseñador de aplicaciones.
Forms Builder.
Este es el componente de desarrollo/creación de aplicaciones de Oracle Forms Developer. Puede utilizar Forms Builder para diseñar y almacenar las definiciones de Forms, menús y bibliotecas. En el mismo Forms Builder, puede invocar el otro componente, el Forms Compiler. Debe ejecutar el componente Forms Builder en un entorno GUI para utilizar sus herramientas de diseño gráfico.

Forms Compiler.
Una vez creado el Form, utilice el Forms Compiler. Esto lee la definición de su módulo Form y crea un archivo ejecutable.

Invocando ejecutables de Form Builder.
En un entorno GUI, usualmente se almacenan comandos que invocan componentes de Forms Builder en menús y ventanas para un acceso rápido. También puede introducirlos en la línea de comandos.

Forms Services.
Dado que las aplicaciones de Form están orientadas a la Web, no es posible ejecutarlas directamente desde la línea de comandos. Se invocan especificando la URL en un navegador o mediante un visor applet, dirigido a Servicios Forms.

Los archivos utilizados en tiempo de ejecución deben haber sido compilados previamente por el Forms Compiler. Estos archivos deben residir en la máquina de nivel medio en un directorio donde Forms Runtime Engine tenga acceso (regedit FORMS90_PATH).

Para probar sus aplicaciones, puede acceder a Forms Services directamente desde Forms Builder estableciendo ciertas preferencias.

Tipos de Módulos Forms Developer.
Una aplicación Forms puede consistir de módulos, es decir, varios archivos. Un módulo Form es un componente importante de su aplicación, y el mismo posee el resto de los objetos en el sistema.

Tipos:
Form: Como componente principal de una aplicación, el módulo Form presenta los datos y objetos con los que el usuario puede interactuar. Los elementos de datos en un Form se organizan en registros.
Menú: Un módulo de menú puede consistir en una jerarquía de menús, cada uno con elementos seleccionables.
Librerías de PL/SQL: Es una colección de unidades de programas PL/SQL cuyo código puede ser referenciado y invocados desde otros módulos.
Librerías  de Objetos: Es una colección de objetos Form que puede utilizar en otros módulos. Puede crearlo para almacenar, mantener y distribuir objetos estándar que pueden reutilizarse en toda la organización de desarrollo.

Tipos de Módulos Forms Builder.
Forms Builder proporciona el menú predeterminado para cada Form. El menú predeterminado incluye comandos para todas las operaciones básicas de una Base de Datos, como insertar, eliminar, consultar, etc. Si su aplicación tiene requisitos específicos que no se cumplen con el menú predeterminado, puede crear un módulo de menú personalizado. Los módulos de menú no son funcionales por sí mismos, osea, tienen funcionalidad cuando están adjuntos a módulos Forms.

Las Librerías de PL/SQL pueden contener unidades de programa (Program Units) que pueden ser utilizadas por otros módulos Forms y Menús.

Puede crear una aplicación de varios módulos Forms, módulos de Menús Librerías, según sea necesario.

______________________________________________________________________________________
Variables de Entorno de Oracle Developer.
Oracle Forms Developer usa muchas variables de entorno las cuales tienen valores predeterminados pero que pueden ser modificadas en su propio entorno (Instancia) por diferentes aplicaciones.

Cambiando Rutas en Tiempo de Ejecución.
Forms utiliza algunas variables de entorno establecidas en la máquina de nivel intermedio para buscar archivos como Forms, Menús y Librerías en tiempo de ejecución. Esto le permite crear aplicaciones portátiles a través de plataformas y estructuras de directorios, evitando rutas codificadas en las referencias de los archivos.

Forms busca las siguientes rutas en orden hasta que se encuentra el archivo requerido:
1. En el directorio de trabajo actual.
2. En los directorios FORMS90_PATH.
3. En los directorios ORACLE_PATH.

Nota: Aunque puede establecer estas variables a nivel de máquina, como en el Registro de Windows (regedit), es preferible establecerlas en el archivo de entorno Forms. La configuración de este archivo reemplaza la configuración del sistema al ejecutar una aplicación Forms.

Definiendo el Entorno en Tiempo de Diseño (Design Time).
Las variables de entorno en tiempo de diseño ayudan a gobernar el comportamiento de Forms Builder. Estas variables deben configurarse en la máquina donde está instalado Oracle Developer Suite. En plataformas Windows son configuradas en el Registro de Windows.
Archivos de Clase Java: Forms Builder necesita acceso a ciertas clases Java para algunas de sus características, como la Ayuda, el depurador (Debugger) y el importador Java. Se establece FORMS90_BUILDER_CLASSPATH para que Forms Builder pueda encontrar las clases Java que necesita durante el desarrollo y la prueba de una aplicación.
Archivos de Iconos: Forms Builder le permite crear botones con imágenes icónicas. Puede utilizar imágenes .ico, .gif o .jpg. Se establece UI_ICON con la ruta del directorio donde se encuentran estas imágenes. De igual manera se establece la variable de entorno UI_ICON_EXTENSION para decirle a Forms Builder qué tipo de imagen mostrar en los botones. Los valores válidos son ico (el valor predeterminado), gif o jpg.

Nota: Aunque puede utilizar imágenes .ico para mostrar en los botones icónicos dentro de Forms Builder, dichas imágenes no se mostrarán al ejecutar el Form- use .gif o .jpg para los iconos desplegados.

Las Fechas en Oracle Forms Developer.
Las fechas en las aplicaciones Oracle Forms Developer pueden provenir de varias fuentes:
 Desde la Base de Datos.
 Establecida por el Usuario Final.
 Definida en la Aplicación como tal.

Máscaras para el Formato de Fecha.
Además de las máscaras que un desarrollador puede definir explícitamente, Forms Builder utiliza varias de sus propias máscaras internas. Los valores de estas máscaras internas se pueden especificar con valores de propiedades y variables de entorno.
Para eliminar posibles errores causados ​​por el año 2000 (Y2K), puede establecer variables de entorno que Forms Builder utiliza para formatear elementos de fecha:
 Máscara de formato de Fecha de Base de Datos: Cada sesión de Base de Datos dentro de una aplicación Forms tiene una máscara fecha de Base de Datos única. El parámetro de inicialización del servidor Oracle establece un valor predeterminado para esta máscara. Puede sobreescribir este valor en cada nueva sesión de Base de Datos para un cliente determinado estableciendo la variable de entorno NLS_DATE_FORMAT del cliente.
 Formato Fecha de Entrada: Esta máscara (potencialmente, un conjunto de máscaras) se utiliza para convertir una cadena introducida por el usuario a un valor de Fecha (formato nativo). Puede configurar las variables de entorno FORMS90_USER_DATE_FORMAT o FORMS90_USER_DATETIME_FORMAT para especificar estas máscaras de formato. Por ejemplo, puede establecer FORMS90_USER_DATE_FORMAT en el valor FXFMDD-MM-RRRR. Esto obligaría al usuario a introducir valores en formato: 30-06-97 en los Items de fecha. El token RRRR permite que se introduzcan años entre 1950 y 2049 con el siglo omitido.
 Formato Fecha de Salida: convierte las fechas mostradas en la salida: FORMS90_OUTPUT_DATE_FORMAT o FORMS90_OUTPUT_DATETIME_FORMAT.
 Formato de Fecha Error: Convierte las fechas mostradas en mensajes de error: FORMS90_ERROR_DATE_FORMAT o FORMS90_ERROR_DATETIME_FORMAT.

Modificando Variables de Entorno de Tiempo de Ejecución.
En un entorno Windows, utilice el Registro de Windows (regedit) para modificar estas rutas, a excepción de CLASSPATH, que se establece en la configuración del sistema del Panel de control. También puede anular estas configuraciones en tiempo de ejecución en el archivo que controla el entorno de ejecución Forms, que por defecto es el archivo default.env.

El uso del archivo de entorno Forms facilita el despliegue de aplicaciones en cualquier plataforma. Puede especificar cual archivo de entorno utilizar en un archivo de configuración de Forms formsweb.cfg (por defecto). En este archivo de configuración, puede establecer parámetros del sistema, como el nombre del archivo de control de entorno. También puede establecer parámetros para controlar qué Form ejecutar, el ID de usuario, aspectos del cliente Java y el archivo HTML que contiene el applet de Java, y muchas otras configuraciones.

______________________________________________________________________________________
Botón Execute Form.
El Botón de menú Execute Form (Ctrl+R) le permite ejecutar un módulo Form en un navegador Web desde Forms Builder. Esto facilita la prueba de su aplicación en un entorno de tres niveles, permitiéndole al Desarrollador probar la funcionalidad como lo haría un usuario final.

Debe definir algunas informaciones básicas para habilitar este entorno de prueba de tres niveles. La misma se define en Preferencias: Edit>Preferences, Tap Runtime, opción: URL del Servidor de Aplicaciones (Application Server URL): La dirección que indique debe ser una URL que apunte al Servlet Forms en el nivel intermedio. Tenga en cuenta que normalmente se encuentra en la misma máquina en la que ejecuta Forms Builder.

También puede usar el parámetro config para especificar una configuración X en el archivo de configuración de Forms Web (formsweb.cfg por defecto). Por ejemplo para la misma máquina donde se ejecuta el OC4J en el puerto predeterminado de 7001: http://localhost:7001/forms/frmservlet (11G). De igual forma en la opción Ubicación del Explorador Web (Web Browser Location): puede establecer el navegador en el cual desea ejecutar el Form.

Nota: La forma correcta de salir de una sesión de Form es mediante (File>Exit, o haciendo clic en Exit) y luego cerrar el navegador. Si cierra el explorador sin salir primero del Form, su sesión puede bloquearse.
______________________________________________________________________________________
Fuente: Oracle Forms Developer 10g: Build Internet Applications.