CONSTRUCCIÓN DE INTERFACES GRÁFICAS EN ORACLE.

DEVELOPER 6i FORMS
Bases de Datos Avanzadas 2009

Generadores de aplicaciones: Developer 6i de Oracle
Un generador de aplicaciones es una herramienta que construye aplicaciones principalmente a través de una especificación declarativa, en lugar de una programación procedimental.

¿Qué es Form Builder y qué hace?
El generador de formularios (Form Builder) es una poderosa herramienta de desarrollo para aplicaciones de formularios cliente/servidor.
– Los desarrolladores lo usan para crear aplicaciones que provean acceso a los usuarios a la información almacenada en una base de datos. – Los usuarios finales operan las aplicaciones de formularios para obtener, ingresar, modificar y almacenar información en la base de datos.

Cada uno de ellos consiste en un conjunto de objetos de menor nivel.Módulos del Generador de Formularios Los objetos de más alto nivel en el generador de formularios son los módulos. menús. . librerías de objetos y librerías PL/SQL. Existen cuatro tipos de módulos: formularios.

Módulos del Generador de Formularios Un módulo de formulario es una colección de objetos con los que interactúan los usuarios finales para modificar la información de la base de datos. botones. ventanas. etc.. . Los objetos incluidos en un módulo de formularios son bloques. elementos de texto.

. Los usuarios finales seleccionan los ítems de menú para ejecutar las funciones de las aplicaciones.Módulos del Generador de Formularios Un módulo de menú está compuesto de menús y código de menú.

Módulos del Generador de Formularios Un módulo de librería de objetos es un repositorio común para objetos estándares del generador de formularios. Un librería de objetos simplifica el reuso. . promueve la productividad y desarrolla la consistencia en el ambiente de desarrollo.

.Módulos del Generador de Formularios Un módulo librería PL/SQL es una colección de código para el lado cliente que puede ser compartida entre módulos y aplicaciones.

LOS MÓDULOS .

Módulos de Formularios El módulo de formulario es el componente principal de las aplicaciones interactivas. . ya que contiene muchas clases distintas de elementos. También es el módulo más complejo en términos de la estructura interna.

Módulos de Formularios .

Módulos de Formularios Triggers o Disparadores Un trigger es un bloque de código PL/SQL que se asocia a otro elemento: un formulario. un bloque de datos o un elemento de un bloque de datos. . El trigger se lanza. cuando se producen ciertos eventos: el evento lanza el código. o se ejecuta.

. . etc.Módulos de Formularios Triggers (cont. Key-Help. Post-Query. OnDelete.) Los triggers y su estructura y lógica de procesamiento constituyen la mayor parte del diseño y codificación de un formulario. Pre-Update. La mayoría de los triggers que se utilizan son triggers incorporados o predefinidos: When-Button-Pressed.

Módulos de Formularios Bloques de datos El bloque de datos es la unidad de construcción intermedia de los formularios. cada uno de los cuales tiene la misma estructura. como una colección de elementos o como una colección de registros. Un bloque de datos se puede ver de dos formas. .

La función principal de un bloque de datos de tabla base es proporcionar una interfaz a una tabla o a un procedimiento almacenado en la base de datos.Módulos de Formularios Bloques de datos (cont.) Hay dos clases de bloques de datos: – Un bloque de datos de tabla base corresponde a una tabla o vista y sus registros corresponden a las filas de la tabla o vista. . Developer 6i gestiona los datos de la base de datos automáticamente construyendo sentencias SQL basadas en los bloques de datos y en su estructura.

Normalmente.Módulos de Formularios Bloques de datos (cont. los bloques de control representan un conjunto de elementos con valores únicos. que tienen sólo un único registro.) Hay dos clases de bloques de datos: – Un bloque de control no se corresponde con una tabla o una vista de la base de datos. .

Módulos de Formularios Bloques de datos (cont.) .

Àrea de Usuario (User Area). Control VBX (VBX Control). Elemento de Lista (List Item). Elemento de Texto (Text Item). Grupo de botones de radio (Radio Group). Sonido (Sound). Los diferentes tipos de elementos son: – Elemento de Gráfico (Chart Item). Visualizar elemento (Display Item). Àrbol Jerárquico (Hierarchical Tree). Botón (Push Button).Módulos de Formularios Elementos Los elementos de un bloque de datos son las unidades básicas de desarrollo de formularios. Imagen (Image). Casilla de control (Check Box). . Contenedor OLE (OLE Container). Área de Bean (Bean Area).

Módulos de Formularios Relaciones Una relación es un elemento especial que Forms utiliza para estructurar formularios maestro-detallados. . Pertenece al bloque de datos maestro y expresa la relación del registro maestro con sus registros detallados a través de la propiedad que expresa la condición de unión o join.

Módulos de Formularios .

.Módulos de Formularios Lienzos (o Canvas) Un lienzo es la base sobre la que se sitúa el texto plano y los elementos. Cada elemento hace referencia a un único lienzo en su hoja de propiedades. Los elementos de un bloque de datos se pueden dividir entre diferentes lienzos.

un área rectangular rodeada por un marco y mantenida por la plataforma GUI. Para verlo es necesario mostrarlo en una ventana. .Módulos de Formularios Lienzos (o Canvas) (cont.) Un lienzo no es un elemento de interfaz autónomo. La ventana puede tener barras de desplazamiento horizontales y verticales que permitan moverse a través del lienzo.

Módulos de Formularios Ventanas Las ventanas pueden ser modales o no modales. – Una ventana no modal permite el acceso a otras ventanas de la aplicación sin descartar la primera. . – Una ventana modal exige que el usuario responda o descarte la ventana antes de hacer nada en cualquier otra ventana de la aplicación.

Módulos de Formularios Ventanas. Lienzos. Bloques y Elementos .

Estos menús permiten situar comportamiento en los elementos de una aplicación de forma natural y accesible. .Módulos de Formularios Menús emergentes o contextuales Un menú emergente o contextual es un menú flotante. que emerge cuando se pulsa con el botón derecho del ratón en un lienzo o un elemento.

Módulos de Formularios Avisos o Alertas Un aviso o alerta es un cuadro de diálogo especial que muestra un mensaje con un icono y hasta tres botones. etc. – de precaución y – de nota o información. . Sí y No. como OK. Cancelar.. Existen tres tipos de alertas: – de parada.

el título del editor y otras propiedades que permite cambiar la apariencia según el campo de texto.Módulos de Formularios Editores Un editor es un cuadro de diálogo con un editor de texto sencillo que permite la introducción de líneas en un elemento de texto. los atributos visuales. El elemento editor permite especificar el tamaño de la ventana. .

Módulos de Formularios Grupo de registros Un grupo de registros es una estructura de datos especial parecida a una tabla con filas y columnas. Un grupo de registros procedentes de una consulta se define con una sentencia SQL SELECT. . Un grupo de registros puede ser un grupo de registros procedentes de una consulta o un grupo de registros estático.

Este elemento brinda una forma de obtener automáticamente un comportamiento de lista de valores en campos. sin tener que programar. .Módulos de Formularios LDV (lista de valores) Una LDV (lista de valores) es un cuadro de diálogo especial que muestra un grupo de registros. permitiendo elegir una fila del grupo y devolviendo un único valor.

Clases de propiedades Una clase de propiedad es un elemento que contiene un conjunto de propiedades visuales que se aplican a los elementos basados en ella. .Módulos de Formularios Atributos visuales Un atributo visual con nombre es una colección de propiedades visuales a las que se puede hacer referencia desde otro elemento.

Un parámetro tiene un tipo de datos.Módulos de Formularios Parámetros Un parámetro es un formulario. un valor inicial por defecto y una longitud máxima. . un informe o un elemento de datos visualizable que se define al nivel de módulo y que toma un valor cuando se inicia el formulario. un menú.

Dentro del modulo se puede llamar a cualquiera de las unidades de programas definidas. los procedimientos y las funciones que se definen en el ámbito de dicho módulo. .Módulos de Formularios Unidades de programa Las unidades de programa de un módulo son los paquetes PL/SQL.

Módulos de Formularios
Bibliotecas adjuntas Las bibliotecas adjuntas son referencias a módulos de bibliotecas que se han definido, para que dentro del propio módulo se pueda llamar a cualquier unidad de programa PL/SQL definida dentro de la misma.

Módulos de menús
Consiste en un conjunto de elementos programables (Atributos visuales, Clases de propiedades, Parámetros, Unidades de programa, Bibliotecas adjuntas) y un conjunto de menús. A su vez, cada menú consiste en un conjunto de opciones.

Módulos de menús
Las opciones del menú pueden ser sencillas o tener uno de los siguientes formatos:
– Comprobar (Check): una opción con una marca de verificación al lado. – Radio (Radio): una opción que pertenece a un grupo de opciones mutuamente exclusivas. – Separador(Separator) : una opción encargada de separar otras opciones a través de un espacio o una línea. – Mágica(Magic): una opción especial de una plataforma, como Cortar, Copiar, Pegar, Deshacer o Ayuda.

consiste únicamente en un conjunto de unidades de programa y un conjunto de bibliotecas asociadas. .Módulo de biblioteca Es bastante simple comparado con otros módulos. Las bibliotecas se pueden almacenar en el sistema de archivos o en la base de datos como cualquier otro módulo.

Cada paquete contiene una especificación que lista los subprogramas del paquete junto con su especificación (parámetros y valores devueltos por las funciones). . Reports y Graphics.Paquetes incorporados Los paquetes proporcionan una lista de herramientas de manipulación de módulos y otros elementos para Forms.

bibliotecas. tablas y vistas almacenadas accesibles. se pueden ver las unidades de programa.Elementos de la base de datos Todos los Builders permiten acceder a los elementos de la base de datos a la que se conecte. Sólo se ven las que se pueden acceder a través del nombre de usuario con el que se ha iniciado una sesión. Para cada usuario. Listan todos los usuarios de la base de datos. .

DISEÑO DE UN FORMULARIO BÁSICO .

Descripción del problema .

Crear un bloque de datos Vendedores que muestre todos los vendedores que dependen de la oficina y convertirlo en un bloque detallado que se enlace al bloque maestro Oficinas. .Esquema general del desarrollo del formulario Los pasos a seguir para crear un formulario son: Crear el bloque de datos Oficinas_Vtas que muestre a una única oficina de la tabla Oficinas_Vtas.

Grabar y ejecutar la aplicación para verificar que sirve como prototipo.) : Mejorar el aspecto del formulario.Esquema general del desarrollo del formulario Los pasos a seguir para crear un formulario (cont. .

Cómo crear el bloque de datos Maestro Oficinas_Vtas Iniciar el “Asistente de Bloque de Datos”. . Seleccionar la opción para realizar el bloque de datos basándose en una tabla o vista. o en un procedimiento almacenado. Seleccionar la tabla o la vista que se desea añadir al bloque. Especificar las columnas a incluir en el bloque.

Seleccionar el tipo de lienzo para la visualización.Cómo crear el bloque de datos Maestro Oficinas_Vtas Iniciar el “Asistente de Diseño”. Seleccionar los elementos que se desean mostrar del bloque. Indicar el tipo de elemento de visualización. .

Gestión del proyecto. Conveniencia. Algunas de las principales cuestiones que hay que considerar son: Accesibilidad de módulos.Grabado del primer prototipo El módulo de formularios se puede almacenar como un archivo módulo o en la base de datos central de la aplicación en el servidor. Gestión de la configuración. Rendimiento. Portabilidad . Integridad.

Para ejecutar el formulario se utiliza la opción "Programar\Ejecutar Pantalla" o con la herramienta "Ejecutar Pantalla" . se elige la opción "Archivo\Grabar".Cómo grabar y ejecutar el primer prototipo Para grabar el trabajo. se puede consultar todos los registros con la opción "Consultar\Ejecutar”. . Para verificar la aplicación.

Ejecución de un informe Ingresar consulta Ejecutar consulta Cancelar consulta Bloque anterior Registro anterior Bloquear registro Remover registro Insertar registro Bloque siguiente Nuevo registro .

LIENZOS Y VENTANAS .

Los elementos de un bloque se pueden dividir en lienzos diferentes.Lienzo de dibujo Un lienzo es la base sobre la que se sitúa el texto plano y los elementos. Para verlo a él y a sus elementos. Un lienzo no es un elemento de interfaz en si mismo. el lienzo se debe mostrar en una ventana. . Cada elemento hace referencia exactamente a un lienzo en la paleta de propiedades.

Lienzo de dibujo Hay cuatro tipos de lienzos: Contenido Apilado De fichas o Pestañas Barra de herramientas .

Lienzo de dibujo Lienzos de Contenido Un lienzo que contiene el "contenido" de una ventana. . cada ventana tiene al menos un lienzo de contenido y generalmente solamente uno.

Lienzo de dibujo Lienzos Apilados Un lienzo que se muestra encima de otro lienzo. conteniendo generalmente un grupo de elementos independiente de los elementos del lienzo de contenido subyacente. .

el usuario pulsa en la ficha del lienzo para ver los elementos de la página de dicha ficha.Lienzo de dibujo Lienzos de Fichas Un lienzo de contenido que divide el contenido de la ventana en fichas. .

respectivamente.Lienzo de dibujo Lienzos Barra de Herramientas Un lienzo que contiene botones con iconos de herramientas que la ventana muestra en barras horizontales y verticales en la parte superior o en el lado izquierdo de una ventana. .

Lienzos Apilados Los lienzos apilados permiten diversos efectos especiales: – Se puede crear un grupo de botones y otros elementos en un grupo separado con un fondo que lo distinga gráficamente del resto del contenido del lienzo. . como una lista de botones. – Se puede crear un grupo de elementos separable y reutilizable.

Lienzos Apilados Efectos especiales (cont. – Se pueden mostrar texto y campos fijos en la parte superior de múltiples lienzos de contenido que cambian dentro y fuera dinámicamente. – Se puede tener un conjunto de elementos permanentes en una pantalla con múltiples registros. .): – Se puede ocultar o mostrar un lienzo apilado mediante programa para crear una vista que cambie automática-mente cuando el usuario realice determinadas acciones.

.Lienzos Apilados ¿Cómo crearlos? – Seleccionar un (Nuevo Lienzo) y especificar como tipo "Apilado" al utilizar el Asistente de Diseño. se puede ver en el Editor de Diseño (Ver / Vistas Apiladas). – Dimensionar el lienzo de contenido para que contenga sus propios elementos y el lienzo apilado. La relación de ubicación entre ambos lienzos. – Situar el lienzo apilado sobre el lienzo de contenidos. Luego dimensionar la ventana para que los contenga.

Developer 6i muestra dicha página.Lienzos de Fichas Un lienzo de fichas muestra sus elementos en una o varias fichas. . Una ficha es un tipo de lienzo reducido parecido a una carpeta de archivos. Cuando se pulsa en una de las solapas etiquetadas. Los lienzos de fichas se utilizan para agrupar elementos.

indicar también como separador de página (nueva página de tabulación). – Volver a utilizar el Asistente de Diseño habiendo seleccionado el Lienzo de tipo Tabulador en el navegador. .Lienzos de Fichas ¿Cómo crearlos? – Seleccionar un (Nuevo Lienzo) y especificar como tipo "Tabulador" al utilizar el Asistente de Diseño. Indicar como pantalla el lienzo creado previamente y como separador de página (nueva página de tabulación).

Lienzos de Fichas ¿Cómo crearlos? (cont. – Modificar los tamaños. de las páginas a través del Editor de Disñeo o de las propiedades.) – Distribuir los elementos desplegados entre las distintas páginas y cambiar la posición en cada una de ellas a través del Editor de Diseño o de las propiedades. etc. . los títulos.

la ventana permite verlo Cada ventana tiene al menos un lienzo de contenido que define el contenido de la misma.Vistas a través de ventanas El lienzo estructura el contenido de un formulario. .

Vistas a través de ventanas Utilización de múltiples documentos: La arquitectura llamada interfaz de múltiples documentos (MDI. Developer 6i adopta la arquitectura MDI: – ventana de aplicación – ventana documento – cuadro de diálogo . Multiple Document Interface) estructura la utilización de múltiples ventanas en una aplicación.

y dicha ventana siempre está abierta. – Las ventanas de los formularios son hijas de esta ventana y pueden ser ventanas de . – La ventana de aplicación no tiene lienzos sino que muestra el resto de las ventanas. – El menú principal pertenece a la ventana de aplicación.Vistas a través de ventanas Ventana de aplicación: – En una aplicación MDI hay una ventana de aplicación a la que pertenecen el resto de ventanas.

Vistas a través de ventanas Ventana documento: – Es una ventana contenida completamente dentro de la ventana de aplicación. como los gráficos y los datos de la tabla de la base de datos. – Muestra generalmente el contenido central de la aplicación. – Si se mueve la ventana de documento más allá de la ventana de aplicación. la porción del documento que está fuera de dicha ventana desaparece. .

Vistas a través de ventanas
Cuadro de diálogo:
– Es una ventana independiente de la ventana de aplicación. – Se puede mover más allá de la ventana de aplicación (si sus propiedades permiten esto) sin estar atadas la una a la otra. – Contiene generalmente campos que permiten que la aplicación interactúe con el usuario, como colecciones de opciones o parámetros de la aplicación.

Vistas a través de ventanas
Otra forma de categorizar ventanas es:
– Ventana modal: requiere que el usuario responda y haga desaparecer la ventana antes de hacer nada en cualquier otra ventana de la aplicación. Tienen características que las distinguen, como la falta de barras de desplazamiento, un tamaño fijo y la incapacidad de poder minimizarse a un icono. – Ventana no modal: permite acceder a otra ventana sin hacer desaparecer la primera.

Vistas a través de ventanas
¿Cómo crearlas?
– Cuando se crea un nuevo formulario, se obtiene una nueva ventana. El primer lienzo utiliza esta ventana automáticamente. – Cuando se deseen crear más ventanas, utilícese el Navegador de Objetos de la forma habitual: se selecciona la cabecera Ventanas y se pulsa en la herramienta Crear.

Llamar al subprograma incorporado Show_Window desde el trigger de un botón o la orden de un menú. . – Configurar la forma de mostrarlos: Organizar el orden de navegación por los elementos de forma que el usuario navegue a un elemento del lienzo del diálogo.Vistas a través de ventanas ¿Cómo crear cuadros de diálogo modales? – Asignar el valor Diálogo en "Estilo de Ventana" y Sí en "Modal". Crear y asociar los elementos que constituyen el cuadro de diálogo. – Crear el lienzo de contenido.

.Vistas a través de ventanas ¿Cómo crear barras de herramientas? – Crear un lienzo de barra de herramientas que contenga los elementos botón y los gráficos planos. – Especificar una ventana que mostrará la barra de herramientas como la propiedad "Ventana" del lienzo – Asignar el nombre del lienzo apropiado a las propiedades "Lienzo de Barra de Herramientas Horizonal" o "Lienzo de Barra de Herramientas Vertical" del elemento ventana.

Developer 6i tiene un elemento especial para avisos que simplifica la programación de estas ventanas tan comunes. se selecciona la cabecera Alertas del Navegador de Objetos y se pulsa en la herramienta Crear de la forma usual. .Vistas a través de ventanas ¿Cómo crear avisos o alertas? – Un aviso es una ventana modal que muestra un mensaje o realiza una pregunta sencilla que solicita un tipo de respuesta de tipo Sí o No del usuario. – Para crear un aviso.

Vistas a través de ventanas Hay tres clases de avisos predefinidos. el tipo que se quiere utilizar se especifica mediante la propiedad "Estilo de Alerta". – Parar – Precaución – Información o Nota .

Vistas a través de ventanas Alerta de Parada .

Vistas a través de ventanas Alerta de Precaución .

Vistas a través de ventanas Alerta de Información o Nota .

BLOQUES Y ELEMENTOS .

. – Utilizando máscaras de formato para las fechas se puede reducir los errores relacionados con fechas y horas en la base de datos.Bloques y Elementos Developer 6i proporciona diversas características relacionadas con elementos: – Con los botones de opción se pueden crear fácilmente opciones mutuamente exclusivas. – A través de campos con resultados de cálculos se pueden mostrar totales y otros cálculos que se realizan en un formulario.

Existen cuatro tipos de lista: – Lista emergente. .Listas Una lista es un elemento de formulario que permite mostrar una lista de elementos de texto en un único lugar. La idea es permitir que el usuario elija entre diversas opciones mutuamente exclusivas viendo la lista de opciones y seleccionando una. Cuadro de combinación y Lista de valores (LDV). Lista T.

provocando que la lista se despliegue en la ventana junto al elemento.Listas Lista emergente: Es una lista desplegable de elementos texto que se activa a través de una pequeña fecha en un cuadro al lado de la lista. .

Listas Lista T: Es un cuadro de lista que muestra todos los elementos texto en una lista desplazable. . como un lienzo independiente. pero dentro de un único campo del formulario.

Listas Cuadro de combinación: Es una combinación de la lista emergente y un elemento de texto que permite desplegar una lista de elementos texto. . pero que además permite introducir un valor.

Listas Lista de valores (LDV): Es un cuadro de diálogo que muestra los elementos texto y proporciona capacidades de búsqueda en la lista ajustándose a un patrón. El cuadro de diálogo devuelve el único elemento de la lista seleccionado y lo copia en otro elemento bloque. no un elemento lista. . éste es un bloque completamente independiente de Forms.

La lista transforma lo que se ve en la pantalla. en un valor real del elemento. Sin embargo.Listas Todas estas listas muestran de alguna forma una lista de elementos texto. una etiqueta. las cadenas de caracteres visualizadas no son necesariamente los valores de los elementos. . y dicho valor es el que Forms almacena en la base de datos.

con el que se muestran los registro que contienen elementos que no están en la lista. simplemente se descarta el registro.Listas Importante: – Cuando se consulta un conjunto de registros. La propiedad “Correspondencia de Otros Valores" de los elementos lista permite asignar un valor. y alguno de ellos viola un trigger o cualquier otra condición exigida por el formulario. . – Una de las condiciones exigidas es que el valor de un elemento lista esté en la lista que se ha codificado.

Ventajas: son la simplicidad y la velocidad. Se pueden crear muy rápidamente y su rendimiento es muy bueno porque están en memoria. Desventaja: no se pueden cambiar sin . Se utilizarían para listas sencillas que no cambian.Listas Listas explícitas Es una lista que se especifica completamente durante el diseño.

la longitud de la etiqueta más larga a la propiedad "Longitud Máxima” y a la propiedad Estilo de la Lista" uno de los tres tipos de lista: Lista Desplegable. Asignar el valor Artículo de Lista a la propiedad "Tipo de elemento”.Listas ¿cómo crear una Lista explícita? Crear el elemento lista en el bloque. CasilleroCombo. Introducir en la propiedad "Elementos en Lista” las etiquetas y los valores correspondientes. . Tlista.

La lista obtiene sus etiquetas y valores de un elemento de grupo de registros que se crea y se rellena con una sentencia SELECT. Después. Hay dos formas de rellenarlas: – Construir la lista a partir de una tabla de la base de datos.Listas Listas dinámicas Es una lista que se rellena en tiempo de ejecución. . la lista se rellena a partir del grupo de registros. – Utilizar la función incorporada Add_List_Element para añadir los valores.

Crear una unidad de programa que rellene el grupo de registros con la consulta y luego los utilice para cargar la lista. Elegir un trigger para construir la lista. por ejemplo When-New-Form-Instance. .Listas ¿cómo crear una Lista dinámica a partir de un grupo de registros? Crear el elemento lista y configurar la propiedad “Correspondencia de Otros Valores”. Crear un elemento grupo de registros.

que añade un elemento a la lista. Crear una unidad de programa que rellene la lista utilizando la función incorporada Add_List_Element. .Listas ¿cómo crear una Lista dinámica utilizando Add_List_Element? Crear el elemento lista y configurar la propiedad “Correspondencia de Otros Valores”. Elegir un trigger para cargar la lista.

Aunque es un elemento independiente en la jerarquía de elementos de Forms. Una LDV es similar a una lista T dinámica a la que se añade una búsqueda por patrón. . no es un elemento lista de bloque.Listas LDVs o Lista de Valores Es un cuadro de diálogo independiente que contiene una lista interna con capacidades de búsqueda ajustándose a un patrón.

. Conectar la LDV al elemento mediante la propiedad "Lista de Valores" del grupo "Lista de Valores (LDV)" del mismo.Listas ¿cómo crear una Lista de Valores? Crear la LDV y su grupo de registros basado en SQL. Conectar el elemento al LDV mediante las propiedades del elemento.

Listas Para crear una Lista de Valores se puede utilizar un Asistente o hacerla en forma manual .

Botones de opción El botón de opción ofrece una alternativa para permitir al usuario elegir entre una serie de valores alternativos. se deja de seleccionar el botón actual y selecciona el elegido. . Cuando el usuario pulsa un botón. en el que un botón de opción es un pequeño botón circular con una etiqueta. Un grupo de opciones es una colección de botones de opción. Sólo puede estar seleccionado un único botón de opción al mismo tiempo.

si se obtiene una fila de la base datos con un valor que no se corresponde con ninguno de los valores de los botones de opción. se la descarta. Igual que con las listas. .Botones de opción Los botones de opción se utilizan cuando se tiene un número relativamente pequeño de opciones mutuamente exclusivas y es poco probable que cambien con el tiempo. Es posible utilizar la propiedad “Correpondencia de Otros Valores" del grupo de opciones.

Botones de opción El grupo de opciones es un elemento de bloque que se corresponde a la columna de una tabla de la base de datos. Los botones de opción se corresponden a posibles valores de dicha columna. .

Asignando el valor Fórmula a "Modo de Cálculo" se activa la característica de cálculo.Elementos con resultados de cálculos Creando un nuevo elemento de pantalla que no sea de base de datos asignando el valor No a la propiedad “Elemento de Base de Datos" del elemento y se rellenan las propiedades de grupo "Cálculo". A continuación se introduce la fórmula como si se estuviera introduciendo código PL/SQL. por ej: :precio_unitario * :cantidad .

se deben crear en el bloque en el que se trata de hacer la agregación. Se asigna el valor 1 a la propiedad “Número de Artículos desplegados” del elemento Total. Se debe asignar el valor Sí a la propiedad “Precomputar Resúmenes” del grupo “Base de Datos Avanzada” de dicho bloque.Elementos con resultados de cálculos En el caso de los totales. . No se quiere visualizar un total para cada registro.

Elementos con resultados de cálculos Asignando “Resumen” a “Modo de Cálculo” se activa el cálculo de resúmenes del elemento. respectivamente. “Suma” a “Función de Resumen” indica que sume valores de registros. Las listas desplegables “Bloque Resumido” y “Artículo Resumido” muestran todos los bloques y todos los elementos del bloque que se elija. .

.Elementos con resultados de cálculos Developer 6i mostraría automáticamente el total del bloque en un campo separado del lienzo y manejaría todos los cálculos provocados por los cambios en los elementos que intervienen en el total. incluyendo la limpieza o el borrado de registros.

se deben codificar con PL/SQL el o los triggers PreInsert. .Elementos de fecha y hora y máscaras de formato El tipo de fecha DATE contienen tanto fechas como horas. Pre-Delete y PostQuery para combinar o dividir los elementos de la fecha utilizando las funciones de conversión To_Char y To_Date. Para presentar al usuario campos de entrada independientes para la fecha y la hora que permitan asignar o ver una fecha y hora. Pre-Update.

Elementos de fecha y hora y máscaras de formato En Developer 6i. lo que se ve en la pantalla no es necesariamente lo que hay en la base de datos. dependiendo de la mascara utilizada. la utilización de una máscara de formato no afecta la precisión de la fecha y la hora. Como resultado. .

YYYY” el cual muestra la cadena de caracteres “ABRIL 11. YYYY” muestra la cadena de caracteres “ABRIL 11. 2000”. 2000”. .Elementos de fecha y hora y máscaras de formato La máscara “MONTH DD. Utilizando “Month” en vez de “MONTH” se puede especificar si las letras van en mayúscula o minúscula en el elemento de formato. se puede utilizar el prefijo FM: “FM MONTH DD. MONTH es de longitud fija.

Elementos de fecha y hora y máscaras de formato
Los delimitadores son las marcas de puntuación que separan el día, el mes y el año en las fechas: 11-ABR-2000, o 11/04/2000, el usuario puede introducir puntuaciones diferentes (11.04.2000, por ejemplo) y la máscara realiza la conversión adecuada. Para forzar a utilizar una puntuación específica y forzar que el usuario introduzca todos los elementos y caracteres de una fecha o una hora, utilícese el prefijo FX.

PROCESOS Y TRIGGERS DE FORMULARIOS

Navegación
La interfaz de usuario permite interactuar con un único elemento, como ser un botón, una lista desplegable o un campo de texto, una parte de la interfaz de usuario, llamada foco de atención del usuario. La posición del cursor, es un tipo de puntero virtual que señala el elemento que tiene el foco de atención El usuario controla las tareas realizadas por la aplicación navegando entre los elementos del formulario. Los eventos de navegación constituyen los eventos básicos de una aplicación de formularios.

When-New-RecordInstance. Post-Block.Procesamiento de Navegación Pre-Form. Pre-Record. When-New-Item-Instance . PostText-Item When-New-Form-Instance. Pre-TextItem Post-Form.When-NewBlock-Instance. Post-Record. Pre-Block.

. se compone del elemento que posee dicho trigger y de cualquier otro elemento que pertenezca a dicho elemento. bloque o formulario en la jerarquía del Navegador de Objetos. El ámbito de los triggers es el conjunto de elementos que lanzan el trigger.Ámbito de los triggers En Developer 6i los triggers pueden definirse a nivel de elemento.

Cambiando la propiedad “Estilo de ejecución” del trigger se puede alterar comportamiento de un trigger concreto. por ej. WhenValidate-Record. Algunos triggers sólo tienen sentido cuando se definen a un nivel específico. . Developer 6i lanza por defecto el asociado al elemento situado más debajo en la jerarquía.Ámbito de los triggers Si existe más de un trigger con el mismo nombre en un ámbito particular.

. procesos y triggers que tiene como resultado final la confirmación de los datos en la base de datos o la vuelta atrás de los cambios. Actualización de la base de datos – Es la escritura en la base de datos de cualquier cambio pendiente en un formulario mediante una serie de sentencias INSERT.Procesamiento de Transacciones Una transacción de formulario es una secuencia de eventos. DELETE. UPDATE.

Post-Update. Pre-Delete ∗ On-Insert. On-Update. On-Commit ∗ Post-Database-Commit . Post-Delete ∗ Post-Forms-Commit. Pre-Update.Procesamiento de Transacciones – Triggers asociados: ∗ Pre-Commit ∗ Pre-Insert. On-Delete ∗ Post-Insert.

.Procesamiento de Transacciones Bloqueo – Developer 6i utiliza el bloqueo exclusivo de fila. ∗Cuando el operador solicita explícitamente un cerrojo de fila para el registro en curso. el cual se adquiere en cualquiera de las siguientes condiciones: ∗Cuando el operador modifica el valor de un elemento de la tabla base.

– Triggers asociado: ∗ On-Lock . ∗ Cuando un trigger llama a las funciones DELETE_RECORD.Procesamiento de Transacciones ∗ Cuando un trigger hace un cambio en la base de datos mediante una sentencia UPDATE o DELETE. EXECUTE_QUERY (FOR_UPDATE) o LOCK_RECORD. ∗ Cuando el trigger contiene una sentencia SQL LOCK TABLE explícita (no se recomienda).

Validación La validación sucede cuando se navega fuera del elemento o cuando se pulsa el retorno de carro. Se puede validar un elemento. un registro. Validación y estado de elementos y registros – El estado de un elemento o un registro está relacionado con el valor y lo que se ha hecho con dicho valor. un bloque de datos o un formulario. Un elemento puede ser .

Validación –Triggers asociado: ∗ On-Change ∗ Post-Change ∗ When-Validate-Item ∗ When-Validate-Record .

Procesamiento de consultas En Developer 6i las aplicaciones de formularios tienen incorporado un proceso de consulta que proporciona una tremenda potencia y flexibilidad sin tener que escribir ni una línea de código. On-Count Aborto y cierre de la consulta: mientras se introduce la consulta. se la puede querer finalizar sin ejecutarla. On-Close . Escrutinio de la consulta: este proceso le solicita al servidor que le diga el número de registros que devolverá la consulta.

Procesamiento de consultas Introducción (Enter_Query) de una consulta SELECT lista-selección FROM tabla WHERE condición-consulta ORDER BY lista-ordenación La lista-ordenación se especifica mediante la cláusula ORDER BY de la propiedad del bloque o de forma interactiva a través del cuadro de diálogo Where. .

– Condiciones especiales: condiciones que se introducen a través del cuadro de diálogo .Procesamiento de consultas La condición-consulta mediante: se puede especificar – Condiciones por defecto: el conjunto de condiciones que se especifican en la cláusula WHERE por defecto en la propiedad de un bloque o en tiempo de ejecución mediante un trigger. – Condiciones de columna: condiciones que se introducen cuando se rellenan las columnas en el registro de ejemplo.

la barra de herramientas o cualquier otra interfaz que se haya creado. Post-Select .Procesamiento de consultas Ejecución de (Execute_Query) una consulta Una vez que se ha introducido la consulta. – Triggers asociado: ∗Pre-Query ∗Pre-Select. On-Select. ésta se ejecuta con el menú.

Developer 6i organiza la recogida de registros.Procesamiento de consultas Recogida de registros Después de completar el proceso de ejecución de la consulta SQL. – Triggers asociado: ∗On-Fetch ∗Post-Query .

El proceso comprueba si ya hay iniciada otra sesión y sólo continúa si no la hubiera. La finalización de la sesión de una aplicación Forms borra la memoria relacionada con al base de datos y finaliza la sesión con ésta.Proceso de inicio de sesión La entrada y salida en una aplicación Developer 6i Forms lanza triggers en diferentes puntos. .

On-Logout ∗ On-Column-Security ∗ Post-Logon. Post-Logout . Pre-Logout ∗ On-Logon.Proceso de inicio de sesión –Triggers asociado: ∗ Pre-Logon.

siendo estos basado en una tabla o no. –Triggers asociado: ∗ When-Create-Record ∗ When-Database-Record ∗ When-Clear-Block ∗ When-Remove-Record . proporcionando un nivel de agregación al grupo de elementos que contiene.Procesamiento de datos y registros Los bloques de datos son una estructura básica que contiene elementos.

se cierra una ventana. . – Eventos de ratón. etc. se selecciona un cuadro de verificación.) se lanza el trigger asociado a dicho evento.Procesamiento de eventos de interfaz y de teclado Cuando se produce un evento (se pulsa el ratón. Los eventos de interfaz de las aplicaciones Form se agrupan en: –Controles de interfaz de usuario. –Eventos de teclado. se pulsa un botón.

Key-Others ∗ When-Timer-Expired.Procesamiento de eventos de interfaz y de teclado –Triggers asociado: ∗ When-Button-Pressed. When-Radio-Changed ∗ Key.[all]. When-Window-Closed ∗ When-Window-Deactivated . When-WindowActivated.When-WindowResized . When-CheckBoxChanged.

desencadene la necesidad de refrescar la información de detalle. –Triggers asociado: ∗ On-Clear-Details ∗ On-Populate-Details ∗ On-Check-Delete-Master .Coordinación maestro-detalle Un evento de coordinación es cualquier evento de un bloque maestro que hace que cuando el registro en curso del bloque maestro sea otro diferente del actual.

Funciones incorporadas que devuelven diversas partes del mensaje: –Error_Code o Message_Code. On-Message. DBMS_Error_Text.Manejo de mensajes Existen dos triggers que afectan el manejo de mensajes en aplicaciones Developer 6i Forms: On-Error. –DBMS_Error_Code. –Error_Text o Message_Text. –Error_Type o Message_Type. .

Sign up to vote on this title
UsefulNot useful