Sei sulla pagina 1di 23

Oracle Developer Build Forms 1 SW-ORA-20110124

Repuestas a Práctica del Capítulo 17


Revisión: 1
Fecha: 24/01/2011

Oracle Developer Build Forms 1


Respuestas a Práctica del Capítulo 17
1. Introducción a la Práctica del Capítulo 17:

Esta práctica cubre los tópicos siguientes:


• Completa los nombres de clientes y de los representantes de ventas para
cada registro-fila del bloque “S_ORD”
• Completa la descripción para cada registro-fila del bloque “S_ITEM”
• Deshabilita el efecto del botón “Exit” en el modo “Enter Query”
• Añade dos cajas de verificación para habilitar los tipos de letra mayúscula y
minúscula y la correspondencia exacta en las consultas

En esta práctica, crea dos disparadores de consulta para completar items que no
están basados en tablas. También cambiará la interfaz de consulta predefinida para
habilitar los tipos de letra mayúsculas y minúsculas y la correspondencia exacta en
las consultas.
• Completa los nombres de clientes y de los representantes de ventas para
cada registro-fila del bloque de datos “S_ORD”
• Completa las descripciones para cada registro-fila del bloque de datos
“S_ITEM”
• Deshabilita el efecto del botón “Exit” en el modo “Enter Query”
• Agrega dos cajas de verificación para habilitar los tipos de letras mayúsculas
y minúsculas, y la correspondencia exacta en las consultas

2. Proceso: Práctica del Capítulo 17

2.1. En el formulario “ORDG01”, escriba un disparador que complete los


items “CUSTOMER_NAME” y “SALES_REP_NAME” para cada registro-fila
buscado y traído por una consulta en el bloque de datos “S_ORD”.

1/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

Respuesta 1:

En Windows 7 Ultimate 32 Bits, click en:


“Inicio → Todos los programas → Oracle Forms 6i → Form Builder”

2.1 - “Oracle Forms Builder” - ORDG01.fmb


1

Seleccionar “Open an existing form” y click en [ OK ]

2/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


2

Seleccionar el archivo de módulo de formulario “ORDG01.fmb” y click en [ Abrir ]

3/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


3

Click en “File → Connect...”


Ingresar el “User Name”, “Password”, “Database” y click en [ Connect ]

4/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


4

En el Navegador de Objetos seleccionar el nodo del item “Triggers” correspondiente al


bloque de datos “S_ORD”
Click en “Create”

5/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


5

Seleccionar el disparador “POST-QUERY” y click en [ OK ]

6/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


6

En el Editor PL/SQL escribir las sentencias SQL:



SELECT C.NAME, E.LAST_NAME
INTO :S_ORD.CUSTOMER_NAME, :S_ORD.SALES_REP_NAME
FROM S_CUSTOMER C, S_EMP E
WHERE E.ID = C.SALES_REP_ID AND :S_ORD.CUSTOMER_ID = C.ID;

Cerrar el Editor PL/SQL

2.2. Escriba un disparador que complete la descripción para cada registro-fila


buscado y traído por una consulta en el bloque de datos “S_ITEM”.

7/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

Respuesta 2:

2.2 - “Oracle Forms Builder” - ORDG01.fmb


1

En el Navegador de Objetos seleccionar el nodo “Triggers” correspondiente al bloque de


datos “S_ITEM” y click en “Create”

8/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.2 - “Oracle Forms Builder” - ORDG01.fmb


2

Seleccionar el disparador “POST-QUERY” y click en [ OK ]

9/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.2 - “Oracle Forms Builder” - ORDG01.fmb


3

En el Editor PL/SQL escribir las sentencias SQL:



SELECT NAME
INTO :S_ITEM.DESCRIPTION
FROM S_PRODUCT
WHERE :S_ITEM.PRODUCT_ID = ID;

Cerrar el Editor PL/SQL

2.3. Asegúrese de que el botón “EXIT_BUTTON” no tiene efecto en el modo


“Enter Query”.

10/
10/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

Respuesta 3:

2.3 - “Oracle Forms Builder” - ORDG01.fmb


1

Click con el botón derecho del mouse sobre el nodo del item disparador
“WHEN-BUTTON-PRESSED” correspondiente al item botón “CONTROL.EXIT_BUTTON”
Click en “Tools → Property Palette”

11/
11/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.3 - “Oracle Forms Builder” - ORDG01.fmb


2

En la Paleta de Propiedades del item disparador “WHEN-BUTTON-PRESSED”


correspondiente al item botón “CONTROL.EXIT_BUTTON” configurar:
• “Fire in Enter-Query Mode” con el valor “No”
Cerrar la Paleta de Propiedades

2.4. Ajuste la interfaz de consulta predefinida. Abra el módulo de formulario


“CUSTOMERS”. Agregue una caja de verificación llamada
“CONTROL.CASE_SENSITIVE” al formulario para que el usuario pueda
especificar si la consulta por el nombre de un cliente debería ser sensible a
mayúsculas. Puede importar el archivo “pr17_4.txt” dentro del disparador
“WHEN-CHECKBOX-CHANGED”. Configure la propiedad del valor inicial a
“Y”. En el bloque de control “CONTROL”, agregue la caja de verificación
(llamada “CONTROL.CASE_SENSITIVE” como se muestra a continuación), y
cree el disparador siguiente. Configure la propiedad “Mouse Navigate” con el
valor “No”.

12/
12/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

Disparador “WHEN-CHECKBOX-CHANGED” en el item


“CONTROL.CASE_SENSITIVE” (Caja de Verificación)
IF NVL(:CONTROL.CASE_SENSITIVE, 'Y') = 'Y' THEN
SET_ITEM_PROPERTY('S_CUSTOMER.NAME', CASE_INSENSITIVE_QUERY,
PROPERTY_FALSE);
ELSE
SET_ITEM_PROPERTY('S_CUSTOMER.NAME', CASE_INSENSITIVE_QUERY,
PROPERTY_TRUE);
END IF;

Respuesta 4:

2.4 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


1

En el Navegador de Objetos click en “Open”


Seleccionar el archivo de módulo de formulario “CUSTG01.fmb” y click en [ Abrir ]

13/
13/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.4 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


2

En el Navegador de Objetos seleccionar el nodo “Items” del bloque de control “CONTROL”


Click en “Create”
Renombrar el item nuevo como “CASE_SENSITIVE”
Seleccionar el item “CASE_SENSITIVE” y click en “Tools → Property Palette”
En la Paleta de Propiedades del item “CONTROL.CASE_SENSITIVE” configurar:
• “Item Type” con el valor “Check Box”
• “Initial Value” con el valor “Y”
• “Mouse Navigate” con el valor “No”
• “Database Item” con el valor “No”
• “Value When Checked” con el valor “Y”
• “Value When Unchecked” con el valor “N”
Cerrar la Paleta de Propiedades

14/
14/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.4 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


3

Seleccionar el nodo “Triggers” correspondiente al item caja de verificación


“CONTROL.CASE_SENSITIVE” y click en “Create”

15/
15/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.4 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


4

Seleccionar el disparador “WHEN-CHECKBOX-CHANGED” y click en [ OK ]

16/
16/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.4 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


5

En el Editor PL/SQL escribir las sentencias:



IF NVL(:CONTROL.CASE_SENSITIVE, 'Y') = 'Y' THEN
SET_ITEM_PROPERTY('S_CUSTOMER.NAME', CASE_INSENSITIVE_QUERY, PROPERTY_FALSE);
ELSE
SET_ITEM_PROPERTY('S_CUSTOMER.NAME', CASE_INSENSITIVE_QUERY, PROPERTY_TRUE);
END IF;

Cerrar el Editor PL/SQL

2.5. Agregue una caja de verificación llamada “CONTROL.EXACT_MATCH”


al formulario para que el usuario pueda especificar si una condición de consulta
para un nombre de cliente debería corresponder exactamente con el valor de la
tabla o nó. (Si se permiten correspondencias no exactas, el valor de búsqueda
puede ser una parte del valor de la tabla). Puede importar el archivo
“pr17_5.txt” dentro del disparador de pre-consulta. Configure el valor inicial
con “Y”. Agregue la caja de verificación (llamada
“CONTROL.EXACT_MATCH” como se muestra a continuación) al bloque de
control “CONTROL” y cree el disparador siguiente. Configure la propiedad
“Mouse Navigate” con el valor “No”.

17/
17/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

Disparador de Pre-Consulta en el bloque “S_CUSTOMER”


IF NVL(:CONTROL.EXACT_MATCH, 'Y') = 'N' THEN
:S_CUSTOMER.NAME := '%' || :S_CUSTOMER.NAME || '%';
END IF;

Respuesta 5:

2.5 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


1

En el Navegador de Objetos seleccionar el nodo “Items” del bloque de control “CONTROL”


en el formulario “CUSTOMERS” y click en “Create”
Renombrar el item como “EXACT_MATCH”, seleccionarlo y click en
“Tools → Property Palette”

18/
18/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.5 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


2

En la Paleta de Propiedades del item “CONTROL.EXACT_MATCH” configurar:


• “Item Type” con el valor “Check Box”
• “Initial Value” con el valor “Y”
• “Mouse Navigate” con el valor “No”
• “Database Item” con el valor “No”
• “Value When Checked” con el valor “Y”
• “Value When Unchecked” con el valor “N”
Cerrar la Paleta de Propiedades

19/
19/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.5 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


3

En el Navegador de Objetos seleccionar el nodo “Triggers” del bloque de datos


“S_CUSTOMER” y click en “Create”

20/
20/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.5 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


4

Seleccionar el disparador “PRE-QUERY” y click en [ OK ]

21/
21/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

2.5 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb


5

En el Editor PL/SQL escribir las sentencias:



IF NVL(:CONTROL.EXACT_MATCH, 'Y') = 'N' THEN
:S_CUSTOMER.NAME := '%' || :S_CUSTOMER.NAME || '%';
END IF;

Cerrar el Editor PL/SQL
Click en “Save” para ambos módulos
Cerrar ambos módulos de formulario
Desconectar de la Base de Datos
Salir del Constructor de Formularios de Oracle

22/
22/23
Oracle Developer Build Forms 1 SW-ORA-20110124
Repuestas a Práctica del Capítulo 17
Revisión: 1
Fecha: 24/01/2011

3. Referencias:

Item Referencia y URL


1 Oracle Developer: Build Forms 1
Volume 2 – Instructor Guide
43112GC10
Production 1.0
April 1999
M08605

Historia de Cambios

Revisión Autor Fecha Descripción


Ezequiel Hernán
1 24/01/2011 Creación del documento.
Villanueva

23/
23/23

Potrebbero piacerti anche