domingo, 26 de marzo de 2017

Trabajando con Text Items

Objetivos:
 Describir los Text Items.
 Modificar la apariencia de un Text Item.
 Controlar de los datos en un Text Item.
 Alterar el comportamiento de navegación entre Text Items.
 Ajustar la relación entre un Text Item y la Base de Datos.
 Agregar funcionalidad a un Text Item.
 Mostrar mensajes útiles.

NOTA: Usamos como ejemplo la Base de Datos: ORCL, la cual viene por defecto en cualquier versión de ORACLE.
______________________________________________________________________________________
Los Text Items.
El tipo de elemento/Item predeterminado en una aplicación Oracle Forms Developer es el Text Item o campo de texto. En publicaciones anteriores hemos visto cómo al crear un nuevo bloque de datos basado en una tabla, se crean Text Items para cada columna seleccionada de dicha tabla. Esta entrega le muestra cómo personalizar estos Items para cambiar su apariencia y comportamiento.

Definición:
Un Text Item es un objeto de interfaz a través del cual puede consultar, insertar, actualizar y eliminar datos. Un Text Item normalmente corresponde a una columna de una tabla de base de datos. Cuando se crea un Item por primera vez, su tipo predeterminado es texto.

El tipo de Item determina las propiedades disponibles en la paleta de propiedades. En esta entrega verá las propiedades de un Text Item.

Utilice la paleta de propiedades para definir, alterar o examinar las características de los Items.

Creando Text Items.
Puede crear un Text Item realizando una de las siguientes acciones:
 Convertir un Item existente al tipo Text Item.
 Usando la herramienta Text Item del Editor de Diseño.
 Usando el icono Crear en el Navegador de objetos.
 Usando los asistentes.

Cómo crear un Text Item en el Editor de Diseño:
1. Abra el Editor de diseño y asegúrese de tener seleccionado el Bloque de Datos donde desea crear el Text Item. En el Editor de diseño, seleccione el bloque de la lista Block (Ver Imagen).
2. En la barra de herramienta, haga clic en el Icono Text Item.
3. Haga clic en algún lugar del Canvas donde quiere que aparezca el Item.
4. Haga doble clic en el Text Item creado para abrir la Paleta de propiedades.
5. Configure las propiedades del Item según sea necesario.
Cómo crear un Text Item desde el Navegador de Objetos:
1. Localice el bloque en el que desea crear el Item.
2. Seleccione el nodo Items.
3. Haga clic en el ícono Crear.
4. Una vez creado el Item, selecciónelo y presione la tecla F4(para abrir sus propiedades.
5. Establezca todas las propiedades según sea necesario, (La Propiedad: Tipo (Type) debe ser igual a Text Item).
Nota: Para que en tiempo de ejecución pueda visualizar un Text Item creado a través del Navegador de Objetos, debe asignar la propiedad Canvas con el nombre del Canvas en cuestión.

Modificando la apariencia de los Text Items.
Las propiedades de un Item se dividen en varios grupos.
Puede afectar a la forma en que se muestra el Text Item alterando los grupos de propiedades como: General, Physical, Records, Font y Color.

 General:
---Tipo de Item: Selecciona de la lista el tipo de Item que desea crear.
 Físico (Physical):
---Visible: determina si el elemento debe ser visible en el Canvas.
---Canvas: Es donde se especifica el Canvas que va a contener al Item. Si no se especifica, se dice que el Item es un elemento de Canvas nulo y no se mostrará en tiempo de ejecución ni en el Editor de Diseño.
---Posición X e Y: Establece las coordenadas X e Y del elemento en relación con el Canvas.
---Anchura y altura (Width and Height:): Establece el ancho y largo del Item en las unidades de coordenadas del Form actual
---Bisel (Bevel): Controla el aspecto del bisel alrededor del elemento; También se puede establecer en Plain (flat) o None.
 Records:
---Current Record Visual Attribute Group: Especifica el nombre del atributo visual a utilizar cuando el Item forma parte del registro actual.
---Distancia entre registros (Distance between records): Especifica el espacio entre instancias del Item en un bloque de múltiples registros.
---Número de Items Mostrados (Number of Items Displayed): Especifica el número de instancias de Items que se muestran cuando dicho Item esta en un bloque de múltiples registros.
 Atributos Visuales: Aquí es donde establece el Atributo Visual que usara el Item de manera individual.
 Color: Las propiedades de esta sección permiten establecer el color de letra(foreground), color de fondo(background), y el patrón de relleno para el elemento que seleccione.
 Fuente (Font): Las propiedades de esta sección determinan el tipo de letra utilizado para el Item, junto con su tamaño, el peso, el estilo y el espaciamiento. Puede hacer doble clic en el grupo Fuente para mostrar un cuadro de diálogo de fuentes que le permite establecer todas estas propiedades a la vez, o puede hacer clic en las propiedades individuales para seleccionar cada uno por separado.

Nota: Cuando el módulo Forms no contiene objetos de atributos visuales, la lista emergente para la propiedad: Visual Attribute Group sólo se muestra la opción: predeterminado (default). Un Item que tiene esta propiedades como predeterminado, hereda los ajustes del Canvas al que pertenece.

Puede controlar la apariencia del Prompt o Etiqueta de un Item de texto mediante las propiedades de los siguientes grupos:
 Prompt: Puede configurar el texto del mensaje y otras propiedades, como:
---Estilo de Visualización (Display Style): Es para especificar en cual registro se mostrara el Prompt o Etiqueta, Opciones: Primer Registro (First Record), Oculo (Hidden), y Todos los Registros (All Records).
---Attachment Edge: Especifica la posición del Prompt con respecto al Item.
---Attachment Offset: Especifica la distancia entre el Item y su Prompt.
 Prompt Color: Permite especificar el color de letra del Prompt.
 Prompt Font: Las propiedades de esta sección determinan el tipo de letra que se utiliza para el Item, junto con su tamaño, peso, estilo y espaciado. Puede hacer doble clic en el grupo Prompt Font para mostrar un diálogo Font que le permite establecer todas estas propiedades de una vez, o puede hacer clic en las propiedades individuales para seleccionar cada una por separado.
______________________________________________________________________________________
Asociar un Texto (Suelto) con un Prompt de un Item.
El Editor de diseño de Forms Builder tiene una herramienta denominada Associate Prompt que le permite crear un Prompt para un Item utilizando cualquier texto suelto que se muestre en el editor. Para crear una asociación de ítem-elemento utilizando la herramienta Associate Prompt, realice los pasos siguientes:
1. Abra el Editor de Diseño.
2. Seleccione el Item y el texto que desee asociar.
3. Haga clic en la herramienta Associate Prompt.
4. Si está reemplazando un Prompt existente, responda Sí al cuadro de diálogo.
______________________________________________________________________________________
Controlando los datos de un Text Item.
Las propiedades del grupo Datos (Data) de un Text Item se utilizan para controlar la forma en que se muestran e introducen los datos.
Algunas de estas propiedades son:
---Tipo de Dato (Data Type): le permite elegir CHAR, DATE, DATETIME y NUMBER; Los demás tipos son para proveer compatibilidad con versiones anteriores.
---Semántica de Longitud de Datos (Data Length Semantics): Puede establecer NULL, BYTE o CHAR para que sean compatibles con varios conjuntos de caracteres. Si la Semántica de longitud de datos es CHAR, la cantidad correcta de almacenamiento se asignará automáticamente según sea necesario para la longitud máxima con un conjunto de caracteres de un solo byte o de varios bytes.
---Longitud Máxima: Especifica la longitud máxima del valor de datos que se puede almacenar en un Item. Si la longitud máxima excede el ancho del Item, Forms automáticamente permite al usuario desplazarse horizontalmente.
---Máscara de Formato (Format Mask): puede especificar cualquier máscara de formato que sea válida para el tipo de datos. Utilice la propiedad Máscara de formato para especificar el formato en el que el usuario ve el valor del Item.
-Utilice la sintaxis estándar de formato SQL para fechas y números; Por ejemplo, DD/MM/YY y $99,999.99 respectivamente.
-Encierre caracteres no-SQL entre paréntesis; Por ejemplo, guión (-) y coma (,).
Nota: Se recomienda evitar la creación de máscaras individuales si las máscaras disponibles son suficientes.
Máscara de Formato FX: La máscara de formato FX en un valor de fecha garantiza que la fecha se ingrese exactamente como se define en la máscara. El elemento D es para decimal y G es un separador de grupo (miles). Ejemplo: Con un formato de fecha DD/MM /AA, las entradas válidas son: 10/12/00, 10 12 00, 10-DEC-00 o 101200. Puede introducir cualquier carácter para representar el (/) en el valor. Los caracteres incrustados se utilizan sólo para fines de visualización y no se almacenan en la Base de Datos.
---Requerido (Required): Especifica si Forms permitirá que dicho Item tenga un valor nulo. Cuando crea un bloque de datos, Forms establece dicha propiedad a los campos que tengan la restricción NOT NULL en la columna de la base de datos, pero puede cambiar el valor posteriormente.
---Valor Menor/Mayor permitido (Lowest/Highest Allowed Value): Especifica el rango de valores aceptados.
---Valor Inicial: Especifica el valor predeterminado asignado a un Item cada vez que se crea un registro; Puede ajustarse para seleccionar de una secuencia. Debe ser compatible con el tipo de datos del Item. Si se especifican los valores Lowest/Highest Allowed, el valor inicial no puede estar fuera del rango.
Creando un Valor Inicial.
Puede utilizar cualquiera de los valores siguientes para emitir un valor inicial cada vez que se crea un nuevo registro:
 Raw value:Eje: 340, RICHMOND
 Variable del sistema:
---Variables que dan la fecha/hora actual del sistema operativo del servidor de aplicaciones:
Variable
Formato
$$DATE$$
DD-MON-YY
$$DATETIME$$
DD-MON-YYYY hh:mi[:ss]
$$TIME$$
hh:mi[:ss]

---Variables que dan la fecha/hora de la base de datos actual:
Variable
Formato
$$DBDATE$$
DD-MON-YY
$$DBDATETIME$$
DD-MON-YYYY hh:mi[:ss]
$$DBTIME$$
hh:mi[:ss]

 Variable global.
Eje: :GLOBAL.CUSTOMER_ID
 Parámetro de Form.
Eje::PARAMETER.SALES_REP_ID
 Item de Form.
Eje: :ORDERS.ORDER_ID
 Secuencia.
El valor inicial puede hacer referencia a una secuencia en la base de datos. Los formularios escriben automáticamente los números de secuencia generados en el Item de texto. Para usar una secuencia, escriba: :secuencia<nombre de secuencia>.nextval.
Eje: :SEQUENCE.ORDERS_SEQ.NEXTVAL

Mas propiedades del Grupo Data:
---Copiar Valor de Item (Copy Value from Item): Especifica el origen del valor que Forms utiliza para llenar el Item. Cuando define una relación maestro-detalle, Forms Builder establece esta propiedad automáticamente en el elemento de clave externa en el bloque de detalle. En estos casos, la propiedad Copy Value from Item nombra el Item de clave principal en el bloque maestro cuyo valor se copia al elemento de clave externa en el bloque de detalles cada vez que se crea o se consulta un registro detalle.
Nota: El Text Item debe desactivar la entrada; De lo contrario, el usuario podría violar la relación de clave externa. Para evitar esto, establezca la propiedad Enabled en No para el elemento de clave foránea o sencillamente no lo muestre en el Canvas.
• Synchronize with Item: Especifica el nombre del Item del cual el elemento actual debe derivar su valor y sincroniza los valores de los dos elementos, de manera que se reflejan efectivamente entre sí. Cuando el usuario final o la aplicación cambia el valor de cualquier elemento, el valor del otro elemento cambia también.
______________________________________________________________________________________
Controlando el Comportamiento de Navegación de los Text Item.
Puede ver la secuencia de navegación predeterminada de los Item en el Navegador de objetos, Esto porque cada Item se muestra en el orden de navegación.
Sin embargo, también puede utilizar las propiedades del grupo de navegación para controlar el comportamiento de navegación de un Text Item.
Propiedad
Función
Keyboard Navigable
Especifica si se podrá navegar al Item en cuestión usando las teclas del teclado (Tab y Shift+Tab). Cuando esta propiedad está establecida en No, Forms omite dicho Item e avanza el siguiente elemento navegable en la secuencia de navegación predeterminada.
Previous Navigation Item
Especifica el Item (Anterior) a visitar cuando use la combinación de teclas Shift+Tab.
Next Navigation Item
Especifica el Item (Siguiente) a visitar cuando use la tecla Tab.
Nota: El Item de navegación siguiente o anterior debe estar en el mismo bloque de datos que el Item actual.
______________________________________________________________________________________
Relación entre el Test Item y la Base de Datos.
Puede modificar/mejorar la manera en que un Text Item interactúa con su columna de Base de Datos correspondiente estableciendo las propiedades del grupo: Base de Datos.
Algunas Propiedades son:
• Data Base Item: Indica si el elemento es una columna de la Base de Datos.
• Query/Insert/Update Allowed: controla si se permiten las operaciones DML.
• Query Length: Especifica la longitud máxima del criterio de consulta en el modo Enter Query.
• Case Insensitive Query: Controla si se debe validar las mayúsculas/minúsculas al procesar un query.

Nota: Cuando crea un Item en un bloque de datos, Forms Builder supone que dicho Item es un elemento de datos, por lo cual, se establece su propiedad Data Base Item en Sí y lo incluye automáticamente en cualquier sentencia SELECT, UPDATE e INSERT emitida a la Base de Datos. Si un Item que está creando es un Item de control, debe establecer explícitamente su propiedad Data Base Item en No.

Agregando Funcionalidad a un Text Item.
Aumente la funcionalidad predeterminada de un elemento de texto definiendo algunas de las características adicionales que puede establecer en el grupo Funcional (Functional) de la paleta de propiedades.

Notas:
• La propiedad Enabled establecida en No, pinta de gris (grays out) el Item, y no permite interacción con el mismo. Si desea que el Item aparezca de forma normal pero que los usuarios no puedan cambiar su valor, haga lo siguiente:
---Establezca Insert Allowed en No.
---Establezca Update Allowed en No.
---Establezca Enabled en Sí.
• Un menú emergente (pop-up menu) es un menú contextual que permite a los usuarios acceder rápidamente a funciones y comandos comunes. Es un objeto de nivel superior en el Navegador de objetos y pertenece a un módulo Form(a diferencia de un menú de Form, que pertenece a un módulo de menú independiente).
• Ocultar Datos (Conceal Data): oculta los caracteres que el operador escribe en el Text Item. Esta configuración se utiliza normalmente para la protección de contraseñas. Seleccione Sí para desactivar el eco de los datos introducidos por el operador; Con esta configuración, el valor introducido aparece como un asterisco para cada carácter introducido.

Nota: Ocultar Conjunto de datos en Sí es válido sólo para elementos de texto de una sola línea.

Configurando las Propiedades Keyboard Navigable y Enabled.
Puede establecer las propiedades Keyboard Navigable y Enabled de los Items y así establecer si los operadores pueden navegar e interactuar con ellos. La propiedad Enabled determina si los usuarios finales pueden utilizar el ratón para manipular el Item. En la siguiente tabla se describe el comportamiento de las combinaciones de estas configuraciones:

Enabled
Keyboard Navigable

Navigation Behavior
Yes
Yes
El elemento se incluye durante la navegación predeterminada y se puede navegar y manipular con el ratón.
Yes
No
El elemento se excluye durante la navegación predeterminada y se puede navegar y manipular con el ratón.
No
No
El elemento se excluye durante la navegación predeterminada y no se puede navegar ni manipular con el ratón.
No
Yes
El elemento se excluye durante la navegación predeterminada. El elemento no se puede navegar ni manipular con el ratón. La propiedad Keyboard Navigable también se establece en No.
• Multi-Line: Determina si el Text Item se muestra en una región de una sola línea o multilínea. Utilice elementos de texto multilínea para mostrar y/o editar Items como direcciones, comentarios o descripciones. Los datos en un elemento de texto de varias líneas deben ser de tipo de datos Char, Alpha o Long, no numérico ni fecha.
Si establece la propiedad Multi-Line en Sí, El Text Item permite almacenar varias líneas de texto, pero no hace que el elemento sea lo suficientemente grande como para mostrar varias líneas. Depende de usted establecer las propiedades de Width, Height, Font Size, y Maximum Length para asegurarse de que el número deseado de líneas y caracteres se muestran.
Nota: Ajustar la justificación a la derecha o al centro para los Text Items desplazables puede ocultar  los valores al usuario.
• Wrap Style: para Text Items de varias líneas, especifica cómo se muestra el texto cuando una línea excede el ancho del Item o ventana de Edición.
______________________________________________________________________________________
Visualizando Mensajes Útiles.
Puede utilizar las propiedades del grupo de Ayuda para proporcionar ayuda contextual a los usuarios:
Propiedad
Función
Hint
Escribe el texto de ayuda específico del Item que se muestra en la línea de mensaje en tiempo de ejecución. El texto de ayuda está disponible cuando el foco de entrada está en el Item.
Display Hint Automatically
Determina si la sugerencia (Hint) se muestra automáticamente. Si se establece en No, la sugerencia aparece sólo cuando el operador oprime [Ayuda] o selecciona el comando Ayuda en el menú predeterminado.
Tooltip
Texto de ayuda que debe aparecer en un pequeño cuadro debajo del elemento cuando el ratón entra en el Item. El elemento no necesita tener el foco de entrada para que aparezca la información Tooltip.
Tooltip Visual Attribute Group
Especifica el atributo visual a utilizar para la información Tooltip.
______________________________________________________________________________________
Fuente: Oracle Forms Developer 10g: Build Internet Applications.