Está en la página 1de 15

Oracle Developer Build Forms 1 SW-ORA-20110125

Repuestas a Práctica del Capítulo 18


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

Oracle Developer Build Forms 1


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

Esta práctica cubre los tópicos siguientes:


• Validación del valor del item “Sales Representative” usando una LOV
• Escritura de un disparador de validación para chequear que la fecha de
distribución no sea anterior a la fecha de la órden
• Completa los nombres de cliente, nombres de representantes de ventas, y
los IDs cuando se cambia el ID de cliente
• Escritura de un disparador de validación para completar el nombre y el
precio de un producto cuando el ID de producto es modificado

En esta práctica, introduce validación adicional para los módulos de formularios


“CUSTG01” y “ORDG01”.
• Validación del valor del item “Sales Representative” usando una LOV
• Escritura de un disparador de validación para chequear que la fecha de
distribución no sea anterior a la fecha de la órden
• Completa los nombres de clientes, representantes de ventas, e IDs cuando
el ID de cliente es modificado
• Escritura de un disparador de validación para completar el nombre y el
precio de un producto cuando se modifica el ID del producto

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

2.1. En el formulario “CUSTG01” provoque que la lista de valores


“SALES_REP_LOV” se muestre cuando el usuario ingresa un
“SALES_REP_ID” que no existe en la Base de Datos.

1/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/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” - CUSTG01.fmb


1

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

2/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

2.1 - “Oracle Forms Builder” - CUSTG01.fmb


2

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

3/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

2.1 - “Oracle Forms Builder” - CUSTG01.fmb


3

Click en “File → Connect...”


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

4/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

2.1 - “Oracle Forms Builder” - CUSTG01.fmb


4

Doble click sobre el nodo del item “S_CUSTOMER.SALES_REP_ID”


En la Paleta de Propiedades del item “S_CUSTOMER.SALES_REP_ID” configurar:
• “Validate from List” con el valor “Yes”
Cerrar la Paleta de Propiedades

2.2. Guarde, Compile y ejecute el formulario para testearlo.

5/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

Respuesta 2:

2.2 - “Oracle Forms Builder” - CUSTG01.fmb


1

En el Navegador de Objetos seleccionar el nodo del formulario “CUSTOMERS”


Click en “Save”
Click en “Run Form Client/Server”
Al ingresar un valor que no existe en la Base de Datos para el campo “Sales Rep Id” se
muestra la Lista de Valores “SALES_REP_LOV”
Salir el entorno de tiempo de ejecución del formulario “CUSTG01”

2.3. En el formulario “ORDG01”, escriba un disparador de validación para


chequear que “DATE_SHIPPED” no es anterior a “DATE_ORDERED”.
Escriba el disparador “WHEN-VALIDATE-RECORD” para comparar los valores
de “DATE_SHIPPED” y “DATE_ORDERED”. Si “DATE_SHIPPED” es anterior
a “DATE_ORDERED”, que falle el disparador con un mensaje adecuado.

6/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

Respuesta 3:

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


1

En el Navegador de Objetos click en “Open”


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

7/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

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


2

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


datos “S_ORD” y click en “Create”

8/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

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


3

Seleccionar el disparador “WHEN-VALIDATE-RECORD” y click en [ OK ]

9/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

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


4

En el Editor PL/SQL codificar:



IF :S_ORD.DATE_SHIPPED < :S_ORD.DATE_ORDERED THEN
MESSAGE('The ship date is before order date!');
RAISE FORM_TRIGGER_FAILURE;
END IF;

Cerrar el Editor PL/SQL

2.4. En el formulario “ORDG01”, cree un disparador para escribir los valores


correctos para los items “CUSTOMER_NAME”, “SALES_REP_NAME”, y
“SALES_REP_ID” cuando ocurre la validación de “CUSTOMER_ID”.
Si el cliente no es encontrado falla el disparador.

10/
10/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

Respuesta 4:

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


1

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


“S_ORD.CUSTOMER_ID” y doble click en “WHEN-VALIDATE_ITEM”

11/
11/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

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


2

En el Editor PL/SQL añadir al final:



--
-- Comienza disparador de validación del ejercicio 4 de la práctica 18
--
SELECT C.NAME,
C.SALES_REP_ID,
E.LAST_NAME
INTO :S_ORD.CUSTOMER_NAME,
:S_ORD.SALES_REP_ID,
: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;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('Invalid Customer Id');
RAISE FORM_TRIGGER_FAILURE;

--
-- Finaliza disparador de validación del ejercicio 4 de la práctica 18
--

Cerrar el Editor PL/SQL

12/
12/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

2.5. Cree otro disparador de validación sobre el item


“S_ITEM.PRODUCT_ID” para derivar el nombre del producto, y escribirlo en el
item “DESCRIPTION”.
Si el producto no se lo encuentra el disparador falla y muestra un mensaje.

Respuesta 5:

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


1

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


“S_ITEM.PRODUCT_ID” y doble click en el disparador “WHEN-VALIDATE-ITEM”

13/
13/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/01/2011

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


2

En el Editor PL/SQL añadir al final:



--
-- Comienza el disparador de validación del ejercicio 5 de la práctica 18
--
SELECT NAME,
SUGGESTED_WHLSL_PRICE
INTO :S_ITEM.DESCRIPTION,
:S_ITEM.PRICE
FROM S_PRODUCT
WHERE :S_ITEM.PRODUCT_ID = ID;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('Invalid Product Id!');
RAISE FORM_TRIGGER_FAILURE;
--
-- Finaliza el disparador de validación del ejercicio 5 de la práctica 18
--

Cerrar el Editor PL/SQL
Cerrar los módulos de formulario.
Desconectar de la Base de Datos.
Salir del Constructor de Formularios de Oracle.

14/
14/15
Oracle Developer Build Forms 1 SW-ORA-20110125
Repuestas a Práctica del Capítulo 18
Revisión: 1
Fecha: 25/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 25/01/2011 Creación del documento.
Villanueva

15/
15/15

También podría gustarte