jueves, 9 de marzo de 2017

Trabajando con Bloques de Datos y Frames

Objetivos:
 Identificar los componentes de la paleta de propiedades.
 Administrar las propiedades de los objetos.
 Crear y utilizar atributos visuales.
 Controlar el comportamiento y la apariencia de los bloques de datos.
 Crear bloques no basados en tablas de Base de Datos.
 Eliminar bloques de datos y sus componentes.


NOTA: Usamos como ejemplo la Base de Datos: ORCL, la cual viene por defecto en cualquier versión de ORACLE.
______________________________________________________________________________________
Administrando las Propiedades de Objetos
Hay tres formas de modificar las propiedades de los objetos de Forms Builder:
 Asistentes Reentrant (Reentrant Wizards): Puede modificar los bloques de datos y las propiedades de diseño a través de los asistentes Reentrant.
 Editor de Diseño: si el objeto aparece en un Canvas, puede modificar las propiedades utilizando el Editor de diseño gráfico.
 Paleta de Propiedades: puede definir propiedades individuales para cada objeto en la paleta de propiedades.

Los Asistentes, el Editor de Diseño y la Paleta de Propiedades representan todas las propiedades del objeto. Los cambios realizados en una herramienta se reflejan en las demás.
Puede utilizar la Paleta de Propiedades para controlar el comportamiento y la apariencia de cualquier objeto de Forms Builder con un mayor grado de granularidad. En ella también puede ajustar/modificar los objetos que ha creado inicialmente con los asistentes o con el Editor de Diseño.

Paleta de Propiedades.
Cada objeto en un módulo Form, incluyendo el mismo Form, tiene propiedades que dictan el comportamiento del mismo. Cuando se crea un objeto por primera vez, se asignan automáticamente algunas propiedades de forma predeterminada. Puede cambiar dichas propiedades en la Paleta de Propiedades.

Visualización de la Paleta de Propiedades.
Para mostrar la Paleta de Propiedades de un objeto, puede:
 Seleccione el objeto del Navegador de objetos y, a continuación, seleccione Herramientas (Tools)> Paleta de Propiedades (Property Palette). Esto es equivalente a seleccionar el objeto y presionar la tecla F4 ().
 Hacer doble clic en el icono del objeto en el Navegador de Objetos (No aplica para objetos de código y Canvas).
 Hacer doble clic en un Item desde el Editor de Diseño.
 Dar doble clic en el objeto desde Editor de Diseño, luego seleccione la opción Paleta de Propiedades.
______________________________________________________________________________________
La Paleta de Propiedades: Características.
Elemento
Descripción
Lista de Propiedades
Muestra las propiedades que son válidas para un objeto en particular. Las propiedades se agrupan bajo encabezados o nodos funcionales. Puede expandir o contraer un nodo utilizando los iconos más (+)/menos (-) junto al nombre del nodo.
Campo Búsqueda
Permite localizar rápidamente una propiedad en particular.
Barra de Herramientas
Es una serie de botones que provee acceso rápido a ciertos comandos.
Ayuda (F1)
Provee descripción, información sobre cualquier propiedad. Seleccione la propiedad y presione la tecla [F1].
Usando la Paleta de Propiedades.
Cada objeto de Form tiene varios tipos de propiedades. Dependiendo del tipo de propiedad, estas se manipulan de forma diferente.

La siguiente lista resume los controles que se utilizan en la Paleta de Propiedades:
Control
Descripción
Campo Texto (Text field)
Es mostrado cuando la propiedad se puede establecer introduciendo un valor de texto. Para valores de texto largos aparece un botón icónico, que le permite abrir un editor de texto.
Lista Emergente (Pop-up list)
Ocurre cuando la propiedad permite un conjunto fijo de valores, eje: Sí, No. Para establecer un valor, haga clic en la flecha hacia abajo para abrir la lista y seleccionar un valor.
Ventana LOV
Los LOVs ocurren cuando la propiedad permite una lista potencialmente grande de valores posibles. Para establecer un valor, haga clic en el botón icónico de la propiedad y allí especifique la lista.
Botón Mas (More button)
Usado cuando se necesitan configuraciones más complejas. Haga clic en dicho botón para abrir el cuadro de diálogo adicional.
Iconos de la Paleta de Propiedades.
En la paleta de propiedades, cada propiedad  tiene un icono a su izquierda. A continuación vemos una descripción resumida de estos iconos:
Icon
Description
 Circulo
Especifica que la propiedad aún tiene el valor por defecto.
 Cuadrado
Especifica que la propiedad fue cambiada de su valor por defecto.
 Flecha
Especifica que la propiedad tiene un valor heredado.
 Flecha con Cruz
Especifica que la propiedad fue heredada pero que ha sido anulada.
Nota: Una vez activada la paleta de propiedades, su ventana permanece abierta hasta que la cierre. La ventana muestra automáticamente las propiedades de cada objeto que seleccione del Editor de Diseño o del Navegador de Objetos. Esto se debe a que, de forma predeterminada, la lista de propiedades de la paleta de propiedades se sincroniza cada vez que se selecciona un objeto.

Puede activar o desactivar la sincronización de una paleta específica, haga clic en Pin/Unpin () en la barra de herramientas de la paleta de propiedades.

Los Atributos Visuales (Visual Attributes).
Los Atributos Visuales son propiedades como: color, el fuente, y el patrón usadas en los objetos de Form.
Un Atributo Visual es a su vez un objeto que se puede crear en el Navegador de Objetos con propiedades tales como fuentes, colores y combinaciones de patrones. Dicho objeto tiene una propiedad llamada: Tipo de Atributo Visual (Visual Attribute Type) la cual definimos de acuerdo al tipo de objeto al que se desea aplicar dicho atributo.
Eje: Se establece como Título (Title) si planea aplicarlo a objetos como títulos de marcos; Si desea usarlo en Etiquetas (Prompts) seleccione Prompt; La otra opción es Común (Common) para cualquier objeto en general.

Cada objeto de interfaz en una aplicación form tiene una propiedad denominada Grupo de Atributo Visual (Visual Attribute Group), que determina cómo se derivan los valores de atributos visuales individuales de un objeto. La propiedad Grupo de Atributo Visual se puede establecer en Predeterminado (Default), NULL o el nombre de un objeto de Atributo Visual. Los bloques tienen la propiedad Grupo de Atributo Visual del Registro Actual (Current Record Visual Attribute Group) que define el atributo visual que se utilizará para el registro seleccionado en el bloque.

Atributos Visuales Parciales.
Puede definir un atributo visual estableciendo únicamente las propiedades que desea que sean heredadas por los objetos que las utilizan. Esto significa que puede aplicar un atributo visual que cambia el color de fuente sin tener que establecer el nombre de la fuente.

Usando Atributos Visuales.
Para utilizar un atributo visual, realice los pasos siguientes:
1. Cree el atributo visual:
 Seleccione el nodo Atributos visuales en el Navegador de objetos.
 Haga clic en Crear.
 Seleccione el Atributo y invoque la Paleta de Propiedades (F4), luego establezca las propiedades de fuente, color y patrón que desee.
2. Seleccione algun objeto de Form y establezca la propiedad Visual con el nombre del Visual Atribute creando anteriormente.
 Para Items y Canvas la propiedad es Visual Attribute Group.
 Para bloques, la propiedad es Current Record Visual Attribute Group.
3. Ejecute el Form para ver los cambios.

Las Propiedades de los Bloques de Datos.
Los bloques de datos tienen varias propiedades, estas se dividen los grupos mostrados en la siguiente imagen:

Puede modificar las propiedades del bloque para controlar tanto la apariencia como el comportamiento del mismo.

Grupos de propiedades en los bloques de datos:
General
Navegación
Archivos
Base de datos
Base de Datos Avanzada
Barra de desplazamiento
Atributos visuales
Color
Internacional


______________________________________________________________________________________
Controlando el Comportamiento de los Bloques de Datos.
Configuración de las Propiedades de Navegación.
 Estilo de Navegación (Navigation Style).
Normalmente, cuando se navega más allá del último elemento de un registro, Forms devuelve el cursor al principio del mismo registro. Con la propiedad Estilo de Navegación, puede cambiar este comportamiento para hacer que el cursor se desplace al siguiente registro o a otro bloque de datos. Los valores válidos son: Mismo Registro (predeterminado), Cambiar Registro o Cambiar Bloque de Datos.
Eje: Si desea que el cursor se mueva al siguiente registro cuando llegue al final del registro actual, establezca la propiedad Estilo de Navegación del bloque a Cambiar Registro.
 Anterior/Siguiente Bloque de Navegación (Previous/Next Navigation Data Block).
Normalmente, cuando en tiempo de ejecución se realiza una operación para moverse al bloque de datos anterior/siguiente, Forms mueve el control al bloque de datos adyacente anterior/siguiente en secuencia. Estas propiedades le permiten nombrar el bloque de datos anterior/siguiente.

Configuración de las Propiedades Registro (Record).
 Grupo de atributos visuales del Registro Actual (Current Record Visual Attribute Group): Es el atributo visual que se usará para resaltar el registro actual en el bloque de datos.
 Tamaño de Matriz de Consulta (Query Array Size): Especifica el número máximo de registros que Forms debe extraer de la base de datos al mismo tiempo. Un valor inferior en este valor de propiedad significa un tiempo de respuesta más rápido; Sin embargo, un valor mayor significa menos llamadas a la Base de Datos, lo que da como resultado un tiempo de procesamiento global reducido. Cuando se establece en 0, por defecto toma el número de registros mostrados.
 Número de Registros en Búfer (Number of Records Buffered): Es la cantidad mínima de espacio de búfer retenida para mantener los registros consultados en el Bloque de Datos. El valor mínimo permitido es el valor de la propiedad Número de Registros Mostrados (Number of Records Displayed) más 3. Forms almacena cualquier registro adicional en un archivo de disco temporal. Un valor alto mejora la velocidad de procesamiento, pero utiliza más memoria.
 Número de Registros Mostrados (Number of Records Displayed): Esta propiedad especifica el número máximo de registros a mostrar en el Canvas al mismo tiempo y el número de registros que puede ver a la vez. Si cambia este valor, asegúrese de que haya espacio suficiente en el Canvas para el número de registros especificado.
 Consultar todos los Registros (Query All Records): esta propiedad especifica si todos los registros que coinciden con los criterios de consulta se deben traer cuando se ejecuta una consulta.
 Orientación del Registro (Record Orientation): Esta propiedad determina la orientación de los registros en el bloque de datos, horizontal o vertical. Cuando establece esta propiedad, Forms Builder ajusta la posición de visualización de los items en el bloque de datos de forma apropiada.
 Registro Único (Single Record): Esta propiedad especifica que el Bloque es de tipo Control y debe contener un solo registro. Establezca esta propiedad en Sí (Yes) para un Bloque de Control que contenga un item que represente el resumen de un monto calculado. No puede establecer esta propiedad en para un bloque de datos.

Configuración de las Propiedades de Base de Datos.
En el grupo de Propiedades de Base de Datos, puede establecer numerosas propiedades para controlar la interacción con el servidor de Base de Datos. Algunas de estas propiedades son:
 Bloque de datos de base de datos (Database Data Block): Establezca en Sí si el bloque de datos se basa en un objeto de base de datos y en No si es un bloque de control.
 Aplicar clave primaria (Enforce Primary Key): controla si Forms comprueba la unicidad antes de insertar o actualizar registros en la tabla base, para evitar que se cometan filas duplicadas en la base de datos. Un valor de Sí significa que el formulario comprueba que los registros insertados o actualizados son únicos antes de que se realice un intento de validación de posibles filas duplicadas.
• Query/Insert/Update/Delete Allowed: Controlar si las operaciones asociadas pueden realizarse en los registros del bloque de datos.
 Tipo de fuente de datos de la consulta (Query Data Source Type): Especifica el tipo de origen de datos de la consulta para el bloque de datos. Los valores posibles para esta propiedad son None, Table, Procedure, Triggers transaccionales o consulta con cláusula FROM.
 Nombre de la fuente de datos de la consulta (Query Data Source Name): Especifica el nombre de la fuente de datos de la consulta para el bloque de datos. Esta propiedad sólo se utiliza si si el tipo de fuente de datos de consulta es Table, consulta con cláusula FROM o Procedure.
 Columnas de la fuente de datos de la consulta (Query Data Source Columns): Aquí se especifica el nombre y el tipo de dato de las columnas asociadas con la fuente de datos de la consulta. Esta propiedad sólo se utiliza si el tipo de fuente de datos es Tableconsulta con cláusula FROM o Procedure.
 Argumentos de la fuente de datos de la consulta (Query Data Source Arguments): Aquí se especifican los nombres, tipos de datos y valores de los argumentos a ser pasados al procedimiento que retornara los datos. Esta propiedad sólo es válida cuando la propiedad Query Data Source Type se establece en Procedure.
 Cláusula WHERE: Especifica una condición SQL que se adjunta a la sentencia SELECT del bloque de datos a través de SQL implícito; Se utiliza para definir restricciones generales en las filas que este bloque de datos puede recuperar. Esta cláusula agrega automáticamente un (AND) con cualquier condición suministrada por el operador en el modo Enter Query.
 Cláusula ORDER BY: Define una orden predeterminado para los registros mostrados por la consulta.
• Optimizer Hint: Especifica una cadena Hint que Forms pasa al Optimizador cuando construye SQL implícito en el bloque de datos. El Optimizador puede mejorar el rendimiento de las transacciones de base de datos.
 Modo de bloqueo / modo de tecla (Locking Mode/Key Mode): controla cómo Forms maneja registros y transacciones cuando el bloque de datos está asociado principalmente a orígenes de datos que no son de Oracle. La configuración predeterminada suele ser apropiada para bloques de datos conectados con una base de datos Oracle.
 Solo Actualizar las Columnas modificadas (Update Changed Columns Only): cuando esta en , sólo se escribe en sus columnas de base de datos asociadas con los items actualizados por el operador. Si el operador comúnmente actualiza o inserta registros con sólo una o dos columnas, esto puede ahorrar tráfico de red. De forma predeterminada, la propiedad contiene No, por lo que todas las columnas se incluyen en la instrucción UPDATE predeterminada.
 Aplicar la seguridad de la columna (Enforce Column Security): cuando esta propiedad está establecida en , los items del bloque de datos sólo se pueden actualizar si el usuario actual tiene privilegios para actualizar las columnas de la base de datos correspondientes.
 Tiempo máximo de consulta (Maximum Query Time): Proporciona la opción de anular una consulta cuando el tiempo transcurrido de la misma supera el valor de esta propiedad; Útil cuando la propiedad Query All Records contiene Yes.
 Maximum Records Fetched: Proporciona la opción de anular una consulta cuando el número de registros obtenidos excede el valor de esta propiedad; Útil cuando la propiedad Query All Records contiene Yes.

Propiedades de la Barra de Desplazamiento (Scrollbar).
En el grupo de barra de desplazamiento, puede establecer numerosas propiedades relativas a la apariencia y función de la barra de desplazamiento del bloque de datos. Algunas de estas propiedades son:
• Mostrar Barra de Desplazamiento (Show Scroll Bar): Especifica si Forms Builder debe crear una barra de desplazamiento para el bloque de datos. Para eliminar una barra de desplazamiento existente, establezca esta propiedad en No.
 Canvas de la Barra de Desplazamiento: Especifica el Canvas en el que se mostrará la barra de desplazamiento para el bloque de datos en cuestión.
 Orientación de la Barra de Desplazamiento: Especifica si la barra de desplazamiento debe mostrarse horizontal o verticalmente.
 Posición X/Y de la Barra de Desplazamiento: Especifica las coordenadas x e y (medidas en las unidades del sistema de coordinación del Form) donde se mostrará la barra de desplazamiento en el Canvas. El valor predeterminado para ambas coordenadas es 0.
 Largo/Ancho de la Barra de Desplazamiento (Scroll Bar Width/Height): Especifica el ancho y la largo de la barra de desplazamiento.

______________________________________________________________________________________
Las Propiedades los Frames.
Las modificaciones realizadas en el Asistente de Diseño (Layout Wizard) al crear un bloque de datos se registran como propiedades de un Objeto tipo Frame. Puede cambiar dichas propiedades para modificar la estructura de los items dentro de un bloque de datos.
Algunas Propiedades importantes:
• Layout Data Block: Especifica el nombre del bloque de datos al que está asociado el Frame. Los items dentro de este bloque de datos están organizados dentro del Frame.
Nota: Un bloque de datos se puede asociar con un solo Frame. No puede organizar un item dentro de varios Frames.
 Actualizar diseño (Update Layout): especifica cuando se actualiza el diseño del Frame. Las opciones son:
---Automáticamente: el diseño se actualiza cada vez que mueve o cambia el tamaño del Frame o modifica cualquier propiedad del mismo.
---Manualmente: el diseño se actualiza cada vez que utilice el Asistente para Diseño para modificar el Frame o en el Editor de Diseño cuando hace clic en Actualizar Diseño o cuando selecciona la opción de Diseño (Layout)>Actualizar Diseño (Update Layout).
---Bloqueado: el diseño se bloquea y no se puede actualizar.
 Estilo de Diseño: Especifica el estilo de diseño de los items dentro del Frame. Elija entre los estilos Formulario y Tabular.
 Distancia entre Registros: Especifica la distancia física (medida en las unidades del sistema de coordinación del Form) con la que se separara los registros mostrados en el Frame.
 Posición X/Y: Especifica las coordenadas x e y (medidas en las unidades del sistema de coordinación del Form) de la posición del Frame en el Canvas.
 Ancho/Largo: Especifica el ancho y la largo del Frame (medida en las unidades del sistema de coordinación del Form).
Nota: Puede organizar un Frame, así como los objetos dentro de él manualmente en el Editor de Diseño.
______________________________________________________________________________________
Visualización de varias Paletas de Propiedades.
Es posible que desee ver las propiedades de varios objetos simultáneamente o que desee ver mas propiedades de un objeto en particular sin tener que desplazarse hacia abajo/arriba en la Paleta de Propiedades. Para lograr cualquiera de estas cosas, puede hacer lo siguiente:
Para abrir varias paletas de un mismo objeto:
1. Abra una paleta de propiedades para el objeto.
2. Mantenga presionada la tecla [Shift] y haga doble clic en el icono de objeto del objeto en el Navegador de Objetos.
Más de una paleta de propiedades para varios objetos:
1. Abra la paleta de propiedades del primer objeto.
2. Haga clic en Pin/Unpin() en la barra de herramientas para "congelar" esta paleta.
3. Invoque la paleta de propiedades para otro objeto. Esta paleta de propiedades aparece en una ventana separada.
Si la segunda ventana está encima de la primera, arrástrela para que ambas ventanas estén visibles.

Configurando las Propiedades de varios Objetos.
Puede ver y configurar simultáneamente las propiedades de varios objetos, ya sean del mismo tipo o de tipos diferentes. Puede seleccionar los objetos en el Navegador de Objetos y mostrar una combinación de propiedades en la paleta de propiedades.
La combinación puede ser:
 Intersection (): Un subconjunto en el que sólo se muestran las propiedades comunes de los objetos seleccionados (Este es el operador predeterminado).
 Unión (): un superconjunto en el que se muestran tanto las propiedades comunes como las propiedades únicas de los objetos seleccionados.

Si selecciona varios objetos y visualiza sus propiedades, notara algunas con un valor en asteriscos *****, esto es porque los objetos tienen valores diferentes en esas propiedades. Si cambia una de esas propiedades con los objetos aun seleccionados, este nuevo valor se aplica entonces a cada uno de los objetos seleccionados.

Para establecer propiedades en varios objetos al mismo tiempo, realice los pasos siguientes:
1. Abra la paleta de propiedades para uno de los objetos.
2. Mantenga presionada la tecla [Ctrl] y haga clic en los demás objetos. Al seleccionar varios notara como las propiedades cambian en combinación.
3. Establezca el botón Intersección/Unión (/)de la barra de herramientas en la paleta de propiedades a la operación deseada. Este botón cambia entre las dos opciones.
4. Cambie las propiedades mostradas, según sea necesario. Sus cambios se aplican a todos los objetos seleccionados que contengan estas propiedades.
Nota: Con un Unión, puede ver algunas propiedades que no son relevantes para todos los objetos seleccionados. Los cambios en una propiedad se aplican sólo a los objetos que la contienen.

Copiando Propiedades.
Puede copiar las propiedades y los valores de la paleta de propiedades a un búfer para que se puedan aplicar (pegar) a otros objetos en su sesión de diseño. Para copiar propiedades, realice los pasos siguientes:
1. En la paleta de propiedades establezca las propiedades que se van a copiar. Puede ser de un objeto o una combinación de objetos.
---Para copiar todos los ajustes de propiedades, seleccione Editar (Edit)>Seleccionar todo (Select All).
---Para copiar solo los ajustes de las propiedades seleccionadas, mantenga presionada la tecla [Ctrl] mientras hace clic en cada propiedad individualmente.
2. Haga clic en Copiar propiedades () en la barra de herramientas de la paleta de propiedades.
3. En el Navegador de objetos, seleccione el objeto al que se van a copiar las propiedades.
4. En la paleta de propiedades, haga clic en Pegar propiedades (). El objeto seleccionado recibe todas las propiedades copiadas que son relevantes de acuerdo a su tipo.
Nota: Es posible copiar la configuración de propiedades de un objeto a objetos de diferentes tipos. En este caso, las propiedades que no se aplican al objeto de destino se ignoran.

Clases de Propiedad (Property Classes).Cuando muestra una lista de propiedades (de un objeto o de una combinación de objetos) en la paleta de propiedades, la lista propiedades y valores asociados se pueden guardar para aplicaciones futuras en otros objetos. Esto se conoce como una Clase de Propiedad, que es a su vez un objeto Forms Builder.
Los objetos pueden heredar algunas de sus propiedades de una Clase de Propiedad que tengan vinculada, por lo que sus propiedades cambiarán automáticamente si las propiedades asociadas se cambian en dicha Clase.

Creando un Bloque de Control.
Un Bloque de Control es un bloque que no está asociado con ninguna Base de Datos y sus Items no se relacionan con ninguna columna dentro de una tabla de la base de datos.
Esto significa que Forms no realiza una consulta automática cuando el operador emite un comando Enter Query o Execute Query tampoco emite un Insert, Update o Delete automático para el bloque cuando el operador guarda los cambios en la base de datos.

Cómo crear un bloque de control:
1. En el Navegador de objetos, haga clic en el nodo Bloques de Datos ().
2. Haga clic en el icono Crear() de la barra de herramientas o (con el nodo Bloques de Datos seleccionado) presione Editar (Edit)> Crear (Create).
3. En el cuadro de diálogo Nuevo bloque de datos, seleccione la opción "Crear un nuevo bloque de datos manualmente (Build a new data block manually)".
4. Abra la paleta de propiedades del nuevo bloque de datos y cambie el nombre y establezca la propiedad Database Data Block en NO.
Nota: Como no hay columnas de base de datos en las que basar los items de un bloque de control, debe posteriormente agregar manualmente los items que necesite.

Eliminación de los Bloques de Datos.
Para eliminar un bloque de datos:
1. Seleccione el bloque que desea eliminar del Navegador de objetos.
2. Haga clic en el icono Eliminar() de la barra de herramientas o Pulse la tecla [Delete].
3. Aparece una alerta para confirmar la eliminación. Haga clic en Sí para completar la operación.
Nota: La eliminación de un bloque de datos también elimina sus objetos subordinados (Items y Triggers ). Si el bloque de datos era un bloque maestro o detalle en una relación, la relación también se elimina. Sin embargo, el Frame y su título permanecerán. Elimine el Frame manualmente en el Editor de diseño.
______________________________________________________________________________________
Fuente: Oracle Forms Developer 10g: Build Internet Applications.