Sunteți pe pagina 1din 25

Oracle Developer Build Forms 1 SW-ORA-20110128

Repuestas a Práctica del Capítulo 23


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

Oracle Developer Build Forms 1


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

Esta práctica cubre los tópicos siguientes:


• Enlazando los formularios “ORDERS” y “CUSTOMERS” usando variables
globales
• Usando funciones/procedimientos incorporados para chequear si el
formulario “ORDERS” se está ejecutando
• Usando variables globales para restringir una consulta en el formulario
“ORDERS”

En esta práctica, produce una aplicación de formularios múltiples enlazando los


módulos de formularios “ORDG01” y “CUSTG01”.
• Enlazando los formularios “ORDERS” y “CUSTOMERS” usando variables
globales
• Usando funciones/procedimientos incorporados para chequear si el
formulario “ORDERS” se está ejecutando
• Usando variables globales para restringir una consulta en el formulario
“ORDERS”

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

2.1. En el formulario “ORDG01”, cree un disparador “Pre-Form” para


asegurarse que la variable global llamada “CUSTOMER_ID” existe.
Use la función/procedimiento incorporada “DEFAULT_VALUE”, y configure la
variable a “NULL” si aún no existe.

1/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/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/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/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/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/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/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/01/2011

2.1 - “Oracle Forms Builder” - ORDG01.fmb


4

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


“ORDERS” y click en “Create”

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb


5

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

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb


6

En el Editor PL/SQL escribir las sentencias:



DEFAULT_VALUE('', 'GLOBAL.CUSTOMER_ID');

Cerrar el Editor PL/SQL

2.2. Agregue un disparador para asegurarse de que las consultas en el


bloque de datos “S_ORD” son restringidas por el valor de
“GLOBAL.CUSTOMER_ID”.
Escriba un disparador “PRE-QUERY” en el bloque de datos “S_ORD” que
asigne el valor de la variable global al item “CUSTOMER_ID”.

7/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/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_ORD” y click en “Create”

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb


2

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

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb


3

En el Editor PL/SQL escribir las sentencias:



:S_ORD.CUSTOMER_ID := :GLOBAL.CUSTOMER_ID;

Cerrar el Editor PL/SQL

2.3. Guarde, compile, y ejecute el formulario para testear que funcione en


forma independiente.

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

Respuesta 3:

2.3 - “Oracle Forms Builder” - ORDG01.fmb


1

En el Navegador de Objetos click en “Save”, y en “Run Form Client/Server”


Click en [ Exit ] para cerrar el entorno de ejecución del formulario y click en [ Yes ]

2.4. En el formulario “CUSTG01”, cree un botón en el bloque de control


llamado “ORDERS_BUTTON”.

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

Respuesta 4:

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


1

En el Navegador de Objetos click en “Open” y seleccionar el archivo de módulo de formulario


“CUSTG01.fmb”

12/
12/25
Oracle Developer Build Forms 1 SW-ORA-20110128
Repuestas a Práctica del Capítulo 23
Revisión: 1
Fecha: 28/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”


del formulario “CUSTOMERS” y click en “Create”
Renombrar el item con el nombre “ORDERS_BUTTON”
Doble click sobre el item “ORDERS_BUTTON” y configurar en su Paleta de Propiedades:
• “Item Type” con el valor “Push Button”
• “Canvas” con el valor “CV_CUSTOMER”
• “Prompt” con el valor “Orders Button”
Cerrar la Paleta de Propiedades

2.5. Defina un disparador para el item “CONTROL.ORDERS_BUTTON” del


formulario “CUSTOMERS” que inicialice la variable global
“GLOBAL.CUSTOMER_ID” con el ID de Cliente actual, y luego abra el
formulario “ORDG01”, pasando el control a éste.
Use la función/procedimiento incorporado “OPEN_FORM”. Asegúrese de que
el nombre interno del formulario “ORDG01” (en el Navegador de Objetos)
coincida con el nombre del archivo de módulo de formulario.

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

Respuesta 5:

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


1

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


“CONTROL.ORDERS_BUTTON” del formulario “CUSTOMERS” y click en “Create”

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

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


2

Seleccionar el disparador “WHEN-BUTTON-PRESSED” y click en [ OK ]

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

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


3

En el Editor PL/SQL escribir las sentencias:



:GLOBAL.CUSTOMER_ID := :S_CUSTOMER.ID;
OPEN_FORM('ORDG01');

Cerrar el Editor PL/SQL

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

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


4

En el Navegador de Objetos renombrar el formulario “ORDERS” como “ORDG01”

2.6. Guarde, Compile, cada formulario, luego ejecute la aplicación para


testearla.
Ejecute el fomulario “CUSTG01”, entonces abra el formulario “ORDG01”
desde el botón nuevo. Son las posiciones relativas de los formularios
adecuadas.

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

Respuesta 6:

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


1

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

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

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


2

Se observa el entorno de tiempo de ejecución con el formulario “CUSTOMER”


Click en “Enter Query” y en “Execute Query”
Click en el botón “Orders Button”
Se obtiene un mensaje de error y el formulario “ORDG01” no abre

2.7. Cambie la ubicación de la ventana del formulario “ORDG01” si es


necesario.

Respuesta 7:

No se realiza cambios.

2.8. Altere el disparador del botón “ORDERS_BUTTON” en el formulario


“CUSTG01” para que use la función/procedimiento incorporada “GO_FORM”
para pasar el control al formulario “ORDG01” si el formulario ya se está
ejecutando. Use la función/procedimiento incorporado “FIND_FORM” para este
propósito.
Recuerde que necesita usar el nombre del módulo en “GO_FORM”, y el
nombre del archivo en “OPEN_FORM”.

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

Respuesta 8:

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


1

Doble click sobre el nodo “WHEN-BUTTON-PRESSED” correspondiente al botón


“CONTROL.ORDERS_BUTTON” y en el Editor PL/SQL escribir:

:GLOBAL.CUSTOMER_ID := :S_CUSTOMER.ID;
IF ID_NULL( FIND_FORM( 'ORDG01' ) ) THEN
OPEN_FORM('ORDG01');
ELSE
GO_FORM('ORDG01');
END IF;

Cerrar el Editor PL/SQL

2.9. Escriba un disparador “WHEN-CREATE-RECORD” sobre el bloque de


datos “S_ORD” que use el valor de la variable global
“GLOBAL.CUSTOMER_ID” como valor predefinido para
“S_ORD.CUSTOMER_ID”.

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

Respuesta 9:

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


1

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


datos “S_ORD” y click en “Create”

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

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


2

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

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

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


3

En el Editor PL/SQL escribir las sentencias:



:S_ORD.CUSTOMER_ID := :GLOBAL.CUSTOMER_ID;

Cerrar el Editor PL/SQL

2.10. Agregue código al formulario “CUSTG01” para que


“GLOBAL.CUSTOMER_ID” sea actualizado cuando cambia el
“CUSTOMER_ID” actual.

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

Respueta 10:

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


1

Doble click sobre el nodo del disparador “WHEN-VALIDATE-ITEM” correspondiente al item


“S_CUSTOMER.ID” del formulario “CUSTG01”
En el Editor PL/SQL escribir para dejar como se muestra:

:GLOBAL.CUSTOMER_ID := :S_CUSTOMER.ID;
--
-- Begin default enforce data integrity constraint SYS_C004160 section
--
if not( :S_CUSTOMER.ID IS NOT NULL ) then
message( 'WHEN-VALIDATE-ITEM trigger failed on field - ' ||
:system.trigger_field );
raise form_trigger_failure;
end if;
--
-- End default enforce data integrity constraint SYS_C004160 section
--

Cerrar el Editor PL/SQL

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

3. Referencias:

Item Referencia y URL


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

Historia de Cambios

Revisión Autor Fecha Descripción


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

25/
25/25

S-ar putea să vă placă și