Qu es Developer/2000?
Es un conjunto de componentes Oracle que se integran para construir aplicaciones. Soporta: GUI Base de datos (ODBC) Cliente/Servidor World Wide Web Object Linking and Embedding (OLE2) Dinamic Data Exchange (DDE) ActiveX Controls
Build Forms
Componentes de Developer/2000
Project Builder Translation Builder Form Builder Procedure Builder Report Builder Query Builder Graphics Builder Schema Builder
Database Interface
Build Forms
Componentes y Variables de Ambiente
Componentes OBJECT NAVIGATOR PROPERTY PALETTE LAYOUT EDITOR DESARROLLO PL/SQL
Variables de Ambiente
FORMS50_PATH REPORTS30_PATH GRAPHICS30_PATH TK25_ICON
ORACLE_PATH
[Link]
[Link] (preferencias)
Build Forms
Esquema relacional de ejemplo
s_item s_ord s_customer
s_inventory
s_emp
s_product
s_warehouse
s_dept
s_image
s_region
Build Forms
Qu es Form Builder?
Es un componente de Developer/2000 que permite desarrollar rpidamente aplicaciones basadas en formas, para presentar y manipular datos. F50RUN32 MODULE=summit USERID= usrdev12/lania Incluye tres componentes ejecutables.
.FMB
Form Builder
.FMX Form Compiler
Definitions
Form Runtime
Runfiles
Build Forms
Caractersticas de Form Builder
Caractersticas:
Insertar, actualizar, borrar y consultar datos.
Presentar datos: texto, sonido, video, imagen y controles Active X. Controlar formas a travs de varias ventanas y transacciones a la base de datos. Accesar a Graphics y aplicaciones OLE2.
Utilizar menues integrados.
Enviar datos directamente a Report Builder.
Build Forms
Modos de Operacin
Dentro de Form Builder existen dos modos de operacin:
Modo Consulta (Enter Query mode) Permite:
Consultas restringidas y sin restriccin. Conteo de registros
Modo normal (Normal mode) Permite:
Consultas sin restricciones
Insertar, Actualizar, Borrar
Commit Navegacin fuera del bloque de datos actual
No permite:
Navegacin fuera del bloque de datos Salir de la sesin Insertar, Actualizar, Borrar
Salir de la sesin
No permite:
Consultas restringidas Build Forms
Componentes de una forma
Ventana: Contenedor de los objetos visuales de la forma. Canvas: Superficie dentro de una ventana,sobre la cual se colocan los items e imagenes.
Bloques: Es el propietario lgico de los elementos que se despliegan dentro del Canvas. Existen dos tipos de bloques: Bloques de datos. Estan asociado a una tabla de la base de datos. Bloques de control. No estan asociados a una tabla.
Build Forms
Relaciones entre Bloques
Master Master Master
Detail
Detail
Detail
Detail
Detail
Es de mayor conveniencia: crear varias formas con pocos bloques, que crear una forma con varios bloques.
Build Forms
Blocks, Items and Canvases
Canvas 1
Canvas 2
Items Block B Block A
Items
Build Forms
Modulo de Jerarqua
Table
Module
Database
Blocks
Column
Item
Trigger Program Units
Item
Frame
Item
Canvas
Window
Trigger
Trigger Build Forms
Canvas Types
Horizontal Toolbar
Stacked Canvas Tab
Vertical Toolbar
Tab Canvas Build Forms
Creacin de una Forma
Para Crear un modulo vaco Utilizar Object Navigator
Crear un bloque de datos y sus Data Block Wizard items Aplicar estndares Object Library Afinar el Diseo Layout wizard o Layout editor Poner propiedades a los Property Palette objetos Agregar Cdigo PL/SQL editor Probar el mdulo de la forma Forms Runtime
Build Forms
Property Palette
Cada objeto tiene diferentes propiedades. Estas propiedades estn divididas en los siguientes grupos: General Navegacin Registros Base de Datos Atributos Visuales Etiquetas (prompt) Fuentes y Color Fsica
Build Forms
Elemento (Text Item )
Prompt
Es un objeto en la interfaz a travs del cual se puede: consultar, insertar, actualizar y borrar datos.
Usualmente un Text Item corresponde a una columna de la base de datos. Cuando es creado el tipo por default es texto.
Posee propiedades: Generales, Fsicas, de Registros, de Fuente y Color, Etiquetas (Prompt), etc. Las propiedades Keyboard Navigable y Enabled permiten o prohiben la navegacin e interaccin con el Text Item Se pueden crear Text Item multi-lneas
Build Forms
LOVs
Lista de Valores (LOV) . Objeto dentro de una forma que cuando es activado en tiempo de ejecucin, abre su propia ventana para elegir una opcin de una lista de valores. Caractersticas: Dinmicos Independientes Flexibles Eficientes Las listas de valores pueden devolver ms de un valor y asignarselo tanto a variables como a los items.
Build Forms
Input Items and Noninput Items
Input Items
Aceptan entradas por parte del usuario. Pueden interactuar con la base de datos.
Noninput Items
No aceptan entradas directas por parte del usuario.
Elementos que representan datos a desplegarse:
Check boxes
Etiqueta
List Items
Opcin
Display Items Image Items Calculated Items
Elementos que no representan datos a desplegarse:
Radio Groups
Opcin 1 Opcin 2 Opcin 3
Sound Items Buttons
Build Forms
Calculated Item
Se pueden realizar campos en donde se invoque una frmula. Existen dos modos de calcular una operacin: por frmulas o por sumas
Dentro de las funciones de sumas o total se encuentran: AVG, COUNT, MAX, MIN, SUM, VARIANCE Una suma o total se aplica para operaciones realizadas verticalmente, invoca los valores de un solo item.
Una frmula se aplica para operaciones horizontales invocando a una o ms variables.
Build Forms
Triggers
Existen tres principales componentes a considerar cuando se disea un trigger: PrePostWhenOnKey-
Form Block Item
Trigger Scope Type
Code
PL/SQL User subprograms Built-in subprograms
Build Forms
Variables y Built-in
Variables de Form Builder. Requiere del prefijo : para hacer referencia a su valor. : block_name.item_name :GLOBAL.variable_name :SYSTEM. variable_name :[Link]
Variables PL/SQL. Estn disponibles para todos los triggers que accesen a ese paquete. Form Builder provee de un conjunto de subprogramas predefinidos llamados Built-ins. * EDIT_TEXTITEM * EXIT_FORM * MESSAGE * ENTER_QUERY * GO_BLOCK * SHOW_ALERT * SHOW_LOV * GO_ITEM * SHOW_EDITOR
Build Forms
Interaccin de los Triggers con Items y Nonitems
When-Button-Pressed When-Checkbox-Changed When-Radio-Changed When-Image-Pressed When-Image-Activated When-List-Changed When-List-Activated
Build Forms
Interaccin de los Triggers con Items y Nonitems
When-Radio-Changed
DECLARE v_credit_rating S_CUSTOMER.credit_rating%TYPE BEGIN IF :S_ORD.payment_type= CREDIT THEN SELECT credit_rating INTO v_credit_rating FROM S_CUSTOMER WHERE id= :S_ORD.customer_id; IF v_credit_rating NOT IN (GOOD, EXCELLENT) THEN :S_ORD.payment_type := CASH; MESSAGE (Warning-customer must pay cash); END IF; END IF; END;
Build Forms
Interaccin de los Triggers con Items y Nonitems
When-Checkbox-Changed
IF :S_CUSTOMER.cass = Y THEN :S_CUSTOMER.name := NAME: || :S_CUSTOMER.name; END IF;
IF CHECKBOX_CHECKED (S_ORD.order_filled) THEN SET_ITEM_PROPERTY (S_ORD.date_shipped,UPDATE_ALLOWED, PROPERTY_FALSE); ELSE SET_ITEM_PROPERTY (S_ORD.date_shipped,UPDATE_ALLOWED, PROPERTY_TRUE); END IF;
Build Forms
Interaccin de los Triggers con Items y Nonitems
When-Button-Pressed
LOOP EXIT WHEN SHOW_LOV(customer_lov); MESSAGE (Debes Seleccionar un Valor de la Lista); END LOOP
When-List-Activated
ADD_LIST_ELEMENT (list_item_name,index,label,value); DELETE_LIST_ELEMENT (list_item_name,index);
When-Image-Pressed
When-Image-Activated
READ_IMAGE_FILE (Filename,Filetype,Item_name);
Build Forms
Mensajes y Alertas
Alertas
Sistema Aplicacin
SHOW_ALERT Built-in
Mensajes
On-Message trigger
On-Error trigger
Informativos Error
Trabajo Aplicacin
Build Forms
Supress_Working (true) Message Built-in
Mensajes y Alertas
Form_Sucess True: xito, False: Error fatal Form_Failure True: Error, False: No hay error Form_Fatal True: Error fatal, False: No hay error GO_BLOCK (S_INVENTORY); IF FORM_SUCESS THEN EXECUTE QUERY; ELSE MESSAGE (Un error ha ocurrido); END IF
Build Forms
Mensajes y Alertas
Cuando se detecta un error es necesario identificarlo para tomar una accin especfica.
Built-ins ERROR _CODE: Nmero del Error. ERROR_TEXT: Descripcin del Error. ERROR_TYPE: FRM= Error en la Forma, ORA= Error de Oracle.
On-Error IF ERROR_CODE=40202 THEN MESSAGE (Este campo debe ser llenado); ELSE MESSAGE (ERROR_TYPE||-||TO_CHAR(ERROR_CODE)||:|| ERROR_TEXT); END IF;
Build Forms
Mensajes y Alertas
Los TRIGGERS poseen su propio manejador de excepciones: FORM_TRIGGER_FAILURE SELECT name, phone INTO :S_ORD.customer_name, :S_ORD.customer_phone FROM S_CUSTOMER WHERE id= :S_ORD.customer_id; EXCEPTION WHEN no_data_found THEN MESSAGE (El Cliente no se encontro); RAISE form_trigger_failure
Build Forms
Alertas
Yes/No Question Yes/No/Cancel Question Informative Messages
SET_ALERT_PROPERTY(alert_name,property, message) Cambia el mensaje que esta asignado a una alerta.
Caution Messages
SET_ALERT_BUTTON_PROPERTY (alert_name, button, property,value) Cambia la etiqueta de uno de los botones SHOW_ALERT (alert_name) Despliega una Alerta y regresa la respuesta del usuario.
IF SHOW_ALERT (del_check)=ALERT_BUTTON1 THEN DELETE_RECORD END IF;
Build Forms
Procesamiento de Consultas
Disparar el trigger Pre-Query Construcccin del SELECT... Realizar la consulta Fetch a row into a new record Marcar el registro como vlido Disparar el trigger Post-Query Validar algunos cambios en el registro
Abortar la consulta
Build Forms
Procesamiento de Consultas
Ejemplo de Pre-Query: IF TO_CHAR (:S_ORD.ID)|| TO_CHAR (:S_ORD.date:ordered)|| TO_CHAR (:S_ORD.date_shipped) IS NULL THEN MESSAGE(Es necesario introducir una orden o una fecha); RAISE form_trigger_failure; END IF;
Ejemplo de Post-Query
SELECT COUNT (ord_id) INTO :S_ORD.lineitem_count FROM S_ITEM WHERE ord_id= :S_OR.id;
Build Forms
Informacin en Tiempo de Ejecucin
GET_BLOCK_PROPERTY, SET_ BLOCK_PROPERTY
GET, SET DEFAULT_WHERE ORDER_BY QUERY_ALLOWED QUERY_HITS GET QUERY_OPTIONS RECORDS_TO_FETCH GET_ITEM_PROPERTY, SET_ITEM_PROPERTY GET, SET CASE_INSENSITIVE_QUERY QUERYABLE QUERY_ONLY GET QUERY_LENGTH Build Forms
Validaciones
Form Builder realiza procesos de validacin a varios niveles para asegurar que los registros y valores individuales sean correctos.
Forma
Bloque
Commit
Registro Elemento
When-Validate-Record When-Validate-Item
IF :S_ORD.date_ordered > SYSDATE THEN MESSAGE (La fecha del pedido es mayor que la actual); RAISE form_trigger_failure; END IF;
Build Forms
Navegacin
Forms Limitar la navegacin con el mouse. Navegacin sobre el primer bloque de datos Blocks Estilo de navegacin. Navegacin a un Bloque Previo Navegacin al Prximo Bloque Items Habilitarlo Navegacin por el teclado Navegacin por el mouse Navegacin a un Item previo Navegacin al prximo Item
Mouse Navigate valores: NO, YES.
Build Forms
Navegacin
Trigger When-New When-New-Form-Instance When-New-Block-Instance When-New-Record-Instance When-New-Item-Instance Triggers Pre/Post Navegacin en Triggers Go_Form Go_Block Go_Item Go_Record
Pre-Form
Post-Form Pre-Block Post-Block Pre-Record Post-Record Pre-Text-Item Post-Text-Item
Next_Block
Next_Item Next_Key Next_Record Previous_Block Previous_Item Previous_Record
Build Forms
Transacciones
Validar la forma Pre-Commit Validar el bloque Copia el valor del Item Pre-Insert Verifica valores nicos On-Insert Insert row Pre-Insert Verifica valores nicos On-Update Update row
Post-Insert Post-Forms-Commit
Post-Update
Commit changes
Post-Database-Commit Build Forms
Diversos Usos para los Trigger Commit
Pre-Commit => Verificar la autorizacin del usuario. Utiliza mtodos de bloqueo
Pre-Delete => Implementar las reglas de borrado de las llaves-forneas.
Pre-Insert => Llenar automticamente columnas, Generar una secuencia de nmeros, verificar llaves.
Pre-update => Llenar automticamente columnas, verificar llaves, implementar actualizaciones en cascada o restringidas.
On-Insert/Update/Delete => Reemplazar enunciados DML del bloque. Post-Forms-Commit => Verificar las complejas restricciones sobre varios registros Post-Database-Commit => Determinar si el commit fue exitoso o si fue utilizado.
Build Forms
Cdigo Flexible
Cdigo flexible es el cdigo que puede ser reutilizado. Variables del sistema para localizar el enfoque: CURSOR_BLOCK CURSOR_RECORD CURSOR_ITEM CURSOR_VALUE
Variables del sistema para determinar el estado actual de la forma
SYSTEM.RECORD_STATUS Valores: New, Insert, Query, Changed SYSTEM.BLOCK_STATUS Valores: New, Query, Changed SYSTEM.FORM_STATUS Valores: New, Query, Changed
Build Forms
Project Builder
Facilita la administracin de grandes y complejas aplicaciones al: Enlista todos los archivos asociados con una aplicacin en un Navegador en comn. Automatizar acciones Compartir proyectos entre los miembros del equipo. Liberar la aplicacin para el usuario final. PROYECTO Es una coleccin de apuntadores a los archivos que conforman una aplicacin.
Build Forms
Project Builder
Dependencia Implcita Project Builder deduce automticamente muchas dependencias de la propiedad Deliverable Type y del Build Form. Ejemplo: Del archivo fuente .fmb se deriva el ejecutable .fmx Dependencia Explcita Algunas veces habr dependencias que no pueden ser determinadas automticamente. Definicin de menues Un mdulo de menues es una estructura jerrquica que provee, mediante un mtodo fcil y rpido, una lista de opciones relacionadas con la aplicacin. Estilos: Pull-Down, Full-Screen, Bar
Build Forms
Project Builder
Compile Selection Esta opcin compilar todos los archivos que se encuentren previamente seleccionados.
Compile Incremental Project Builder automticamente determina cules son los archivos que necesitan ser compilados.
Compile All Compila todos los archivos del Proyecto.
Build Forms
The Menu Editor
Interfaz grfica para facilitar la creacin y modificacin de los mdulos de los menues y sus objetos.
Select Tools
Menu Editor
Extensin .MMB(definicin) .MMX (ejecutable)
Plain Check Radio
Save Image Activate Order Id Customer Id Sales Rep Id Copy Ctrl+C
Propiedades del Menu Item: * Enabled * Label * Menu Item Type * Magic Item * Menu Item Radio Group * Command Type
Magic
* Menu Item Code * Submenu Name * Keyboard Accelerator * Icon in Menu * Icon Filename * Help Description
Build Forms
Mouse Events
Eventos del Mouse Por movimiento: Entrar a un item o canvas Salir de un item o canvas Movimiento en General Por los botones del mouse Click Double-Click Para cambiar el estilo del cursor dinmicamente: SET_APPLICATION_PROPERTY (CURSOR_STYLE,value); Defauly, busy, crosshair, help, insertion. When-Mouse-Enter
When-Mouse-Leave
When-Mouse-Move
Mouse Events
Variables del Sistema para determinar a donde se ha movido el mouse.
SYSTEM.MOUSE_FORM
SYSTEM.MOUSE_CANVAS
SYSTEM.MOUSE_X_POS
SYSTEM.MOUSE_Y_POS SYSTEM.MOUSE_ITEM
SYSTEM.MOUSE_RECORD
SYSTEM.MOUSE_RECORD _OFFSET
Controlando Ventanas y Canvas
Triggers: When-Window-Activated When-Window-Desactivated When-Window-Closed When-Window-Resized Variable del sistema: :SYSTEM.EVENT_WINDOW Built-In FIND-WINDOW GET_WINDOW_PROPERTY HIDE_WINDOW MOVE_WINDOW RESIZE_WINDOW SET_WINDOW_PROPERTY SHOW_WINDOW Built-ins FIND_CANVAS, FIND_VIEW GET_CANVAS_PROPERTY GET_VIEW_PROPERTY SET_CANVAS_PROPERTY SET_VIEW_PROPERTY HIDE_VIEW SHOW_VIEW REPLACE_CONTENT_VIEW SCROLL_VIEW
Componentes Reusables
Es un objeto que se puede reusar en todas las aplicaciones. Controles ActiveX Calendario Navegador Ayuda en lnea Utileras y Bibliotecas para Formas Menues Iconos