19
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19 Repuestas a Práctica del Capítulo 19 SW-ORA-20110125 SW-ORA-20110125 Revisión: 1 Revisión: 1 Fecha: 25/01/2011 Fecha: 25/01/2011 Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Respuestas a Práctica del Capítulo 19 Respuestas a Práctica del Capítulo 19 1. Introducción a la Práctica del Capítulo 19: Introducción a la Práctica del Capítulo 19: Esta práctica cubre los tópicos siguientes: Ejecución de una consulta en el inicio de la ejecución de un formulario Completando la imagen del producto cuando el cursor llega a un registro-fila del bloque de datos “S_ITEM” En esta práctica, usa el disparador de instancia nueva “WHEN-NEW-“Object”” para completar el item “PRODUCT_IMAGE” cuando el operador navega entre los registros-filas del formulario “ORDG01”. También, proporciona un disparador para efectuar automáticamente una consulta al inicio de la ejecución del formulario. Ejecutando la consulta al inicio Completando las imágenes de los productos cuando el cursor llega sobre cada registro-fila del bloque de datos “S_ITEM” 2. Proceso: Práctica del Capítulo 19 Proceso: Práctica del Capítulo 19 2.1. Escriba un disparador de instancia nueva “WHEN-NEW-FORM-INSTANCE” en el formulario “ORDG01” para ejecutar una consulta al inicio de la ejecución. Use el procedimiento incorporado “EXECUTE_QUERY”. 1/ 19 19

SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

  • Upload
    ehv80

  • View
    189

  • Download
    2

Embed Size (px)

DESCRIPTION

Oracle Developer 6i Build Forms 1 Respuestas a Practica del Capitulo 19

Citation preview

Page 1: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Respuestas a Práctica del Capítulo 19Respuestas a Práctica del Capítulo 19

1. Introducción a la Práctica del Capítulo 19:Introducción a la Práctica del Capítulo 19: Esta práctica cubre los tópicos siguientes:

• Ejecución de una consulta en el inicio de la ejecución de un formulario • Completando la imagen del producto cuando el cursor llega a un registro-fila

del bloque de datos “S_ITEM” En esta práctica, usa el disparador de instancia nueva “WHEN-NEW-“Object”” para completar el item “PRODUCT_IMAGE” cuando el operador navega entre los registros-filas del formulario “ORDG01”. También, proporciona un disparador para efectuar automáticamente una consulta al inicio de la ejecución del formulario.

• Ejecutando la consulta al inicio• Completando las imágenes de los productos cuando el cursor llega sobre

cada registro-fila del bloque de datos “S_ITEM”

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

2.1. Escriba un disparador de instancia nueva “WHEN-NEW-FORM-INSTANCE” en el formulario “ORDG01” para ejecutar una consulta al inicio de la ejecución.Use el procedimiento incorporado “EXECUTE_QUERY”.

11//1919

Page 2: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

Revisión: 1Revisión: 1Fecha: 25/01/2011Fecha: 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” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb11

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

22//1919

Page 3: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb22

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

33//1919

Page 4: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb33

Click en “File → Connect...”Ingresar el “User Name”, “Password”, “Database” y click en [ Connect ]

44//1919

Page 5: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb44

Seleccionar el nodo “Triggers” correspondiente al formulario “ORDERS” y click en “Create”

55//1919

Page 6: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb55

Seleccionar el disparador de instancia nueva “WHEN-NEW-FORM-INSTANCE” y click en [ OK ]

66//1919

Page 7: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb66

En el Editor PL/SQL escribir la sentencia: “EXECUTE_QUERY;”Cerrar el Editor PL/SQL

2.2. Escriba un disparador que se activa cuando el cursor llega sobre cada

registro-fila del bloque de datos “S_ITEM”, y completa el item “PRODUCT_IMAGE” con una imagen del producto, si no existe una. Use la función “GET_PRODUCT_IMAGE” para este propósito.“GET_PRODUCT_IMAGE” es una función que ya está creada. Esta función retorna el nombre del archivo de la imagen, para un número de producto dado. Si el archivo no se encuentra, la función retorna “No file”.

77//1919

Page 8: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

FUNCTION get_product_image (product_number IN NUMBER) RETURN VARCHAR2 IS v_filename VARCHAR2(20);BEGIN

SELECT s_image.filename INTO v_filenameFROM s_image, s_productWHERE s_image.id = s_product.image_idAND s_product.id = product_number; IF v_filename IS NULL THEN

v_filename := 'No file';END IF;RETURN v_filename;EXCEPTION

WHEN no_data_found THEN return('No file');END;

Si la función retorna un nombre de archivo usable, el disparador debería pasar este nombre a la función incorporada “READ_IMAGE_FILE”. Respuesta 2:

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb11

En el Navegador de Objetos seleccionar el nodo “Program Units” y click en “Create” Renombrar el item como “GET_PRODUCT_IMAGE”

88//1919

Page 9: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb22

Seleccionar el tipo “Function” y click en [ OK ]

99//1919

Page 10: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb33

En el Editor PL/SQL escribir las sentencias de la función:“FUNCTION get_product_image (product_number IN NUMBER) RETURN VARCHAR2 IS v_filename VARCHAR2(20);BEGIN

SELECT s_image.filename INTO v_filenameFROM s_image, s_productWHERE s_image.id = s_product.image_idAND s_product.id = product_number; IF v_filename IS NULL THEN

v_filename := 'No file';END IF;RETURN v_filename;EXCEPTION

WHEN no_data_found THEN return('No file');END;”Cerrar el Editor PL/SQL

1010//1919

Page 11: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb44

En el Navegador de Objetos seleccionar el nodo “Triggers” correspondiente al nodo del item “S_ITEM” y click en “Create”

1111//1919

Page 12: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb55

Seleccionar el disparador de registro-fila nuevo “WHEN-NEW-RECORD-INSTANCE” y click en [ OK ]

1212//1919

Page 13: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb66

En el Editor PL/SQL escribir la sentencia para el disparador de registro-fila nuevo: “DECLARE

filename VARCHAR2(20);BEGIN

filename := GET_PRODUCT_IMAGE(:S_ITEM.PRODUCT_ID);IF filename = 'No file' THEN

NULL;ELSE

READ_IMAGE_FILE(filename, 'tiff', 'S_ITEM.PRODUCT_IMAGE');END IF;

END;”Cerrar el Editor PL/SQL

2.3. Defina el mismo tipo y código de disparador sobre el bloque de datos

“S_ORD”. Este mostrará la imagen para el primer línea de item de producto si el operador cambia el orden mostrado.

1313//1919

Page 14: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

Respuesta 3:

2.3 - “Oracle Forms Builder” - ORDG01.fmb2.3 - “Oracle Forms Builder” - ORDG01.fmb11

Seleccionar el nodo “Triggers” correspondiente al bloque de datos “S_ORD” y click en “Create”

1414//1919

Page 15: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.3 - “Oracle Forms Builder” - ORDG01.fmb2.3 - “Oracle Forms Builder” - ORDG01.fmb22

Seleccionar el disparador de registro-fila nuevo “WHEN-NEW-RECORD-INSTANCE” y click en [ OK ]

1515//1919

Page 16: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.3 - “Oracle Forms Builder” - ORDG01.fmb2.3 - “Oracle Forms Builder” - ORDG01.fmb33

En el Editor PL/SQL escribir las sentencias:“DECLARE

filename VARCHAR2(20);BEGIN

filename := GET_PRODUCT_IMAGE(:S_ITEM.PRODUCT_ID);IF filename = 'No file' THEN

NULL;ELSE

READ_IMAGE_FILE(filename, 'tiff', 'S_ITEM.PRODUCT_IMAGE');END IF;

END;”Cerrar el Editor PL/SQL

2.4. ¿Hay otro disparador en dónde podría ubicar este código PL/SQL?

Respuesta 4: Este código PL/SQL se podría incluir en el disparador “WHEN-VALIDATE-ITEM” del item “S_ITEM.PRODUCT_ID”.

1616//1919

Page 17: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.5. Guarde, compile y ejecute el formulario para testear los cambios.

Respuesta 5:

2.5 - “Oracle Forms Builder” - ORDG01.fmb2.5 - “Oracle Forms Builder” - ORDG01.fmb11

En el Navegador de Objetos click en “Save”, luego en “Run Form Client/Server” Se observan errores de compilación, debido a que la Tabla “S_ITEM” no posee una columna llamada “filename”. Así que se procede a crear mediante la siguiente sentencia SQL:“SQL> ALTER TABLE S_IMAGE ADD ( FILENAME VARCHAR2(254) );”

1717//1919

Page 18: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

2.5 - “Oracle Forms Builder” - ORDG01.fmb2.5 - “Oracle Forms Builder” - ORDG01.fmb22

Nuevamente click en “Run Form Client/Server” Luego cerrar el entorno de tiempo de ejecuciónCerrar el archivo de módulo de formularioDesconectar de la Base de DatosSalir del Constructor de Formularios de Oracle

1818//1919

Page 19: SW-OrA-20110125 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 19

Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 19Repuestas a Práctica del Capítulo 19

SW-ORA-20110125SW-ORA-20110125

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

3. Referencias:Referencias:

ItemItem Referencia y URLReferencia y URL11 Oracle Developer: Build Forms 1

Volume 2 – Instructor Guide43112GC10Production 1.0April 1999M08605

Historia de CambiosHistoria de Cambios

RevisiónRevisión AutorAutor FechaFecha DescripciónDescripción

11 Ezequiel Hernán Villanueva 25/01/2011 Creación del documento.

1919//1919