Title: Sin ttulo de diapositiva
1Qué 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
2Componentes de Developer/2000
Project Builder
Translation Builder
Form Builder
Report Builder
Graphics Builder
Procedure Builder
Query Builder
Schema Builder
Database Interface
Build Forms
3Componentes 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
- REGEDIT.EXE
- Cauprefs.ora (preferencias)
Build Forms
4Esquema 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
5Qué es Form Builder?
Es un componente de Developer/2000 que permite
desarrollar rápidamente aplicaciones basadas en
formas, para presentar y manipular
datos. F50RUN32 MODULEsummit USERID
usrdev12/lania Incluye tres componentes
ejecutables.
Form Builder
.FMB
.FMX
Form Runtime
Form Compiler
Definitions
Build Forms
Runfiles
6Características de Form Builder
- Características
- Insertar, actualizar, borrar y consultar datos.
- Presentar datos texto, sonido, video, imagen y
controles - Active X.
- Controlar formas a través 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
7Modos de Operación
Dentro de Form Builder existen dos modos de
operación
- Modo Consulta (Enter Query mode)
- Permite
- Consultas restringidas y
- sin restricción.
- Conteo de registros
- No permite
- Navegación fuera del bloque
- de datos
- Salir de la sesión
- Insertar, Actualizar, Borrar
- Modo normal (Normal mode)
- Permite
- Consultas sin restricciones
- Insertar, Actualizar, Borrar
- Commit
- Navegación fuera del bloque
- de datos actual
- Salir de la sesión
- No permite
- Consultas restringidas
Build Forms
8Componentes 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 lógico 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
9Relaciones 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
10Blocks, Items and Canvases
Canvas 1
Canvas 2
Items
Items
Block B
Block A
Build Forms
11Modulo de Jerarquía
Module
Database
Blocks
Item
Trigger
Canvas
Item
Frame
Program Units
Item
Window
Trigger
Trigger
Build Forms
12Canvas Types
Horizontal Toolbar
Vertical Toolbar
Stacked Canvas
Tab
Tab Canvas
Build Forms
13Creación de una Forma
Build Forms
14Property Palette
- Cada objeto tiene diferentes propiedades. Estas
propiedades - están divididas en los siguientes grupos
- General
- Navegación
- Registros
- Base de Datos
- Atributos Visuales
- Etiquetas (prompt)
- Fuentes y Color
- Física
Build Forms
15Elemento (Text Item )
Prompt
Es un objeto en la interfaz a través 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, Físicas, de Registros, de Fuente y
Color, Etiquetas (Prompt), etc. Las propiedades
Keyboard Navigable y Enabled permiten
o prohiben la navegación e interacción con el
Text Item Se pueden crear Text Item
multi-líneas
Build Forms
16LOVs
Lista de Valores (LOV) . Objeto dentro de una
forma que cuando es activado en tiempo de
ejecución, abre su propia ventana para elegir
una opción de una lista de valores. Característic
as Dinámicos Independientes Flexibles Eficientes
Las listas de valores pueden devolver más de un
valor y asignarselo tanto a variables como a los
items.
Build Forms
17Input Items and Noninput Items
Noninput Items No aceptan entradas directas por
parte del usuario.
Input Items Aceptan entradas por parte del
usuario. Pueden interactuar con la base de datos.
Elementos que representan datos
a desplegarse Display Items Image
Items Calculated Items Elementos que no
representan datos a desplegarse Sound
Items Buttons
Check boxes List Items Radio Groups
Build Forms
18Calculated Item
Se pueden realizar campos en donde se invoque una
fórmula. Existen dos modos de calcular una
operación por fórmulas 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 fórmula se
aplica para operaciones horizontales invocando a
una o más variables.
Build Forms
19Triggers
Existen tres principales componentes a considerar
cuando se diseña un trigger
Scope
Type
Trigger
Code
PL/SQL User subprograms Built-in subprograms
Build Forms
20Variables 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 PARAMETER.name Variables
PL/SQL. Están disponibles para todos los triggers
que accesen a ese paquete. Form Builder provee
de un conjunto de subprogramas predefinidos
llamados Built-ins. EDIT_TEXTITEM
ENTER_QUERY SHOW_LOV EXIT_FORM GO_BLOCK
GO_ITEM MESSAGE SHOW_ALERT SHOW_EDITOR
Build Forms
21Interacción 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
22Interacción 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
23Interacción de los Triggers con Items y Nonitems
When-Checkbox-Changed
IF S_CUSTOMER.cass Y THEN
S_CUSTOMER.name NAME S_CUSTOMER.name E
ND IF
IF CHECKBOX_CHECKED (S_ORD.order_filled) THEN
SET_ITEM_PROPERTY (S_ORD.date_shipped,UPDATE_AL
LOWED, PROPERTY_FALSE) ELSE
SET_ITEM_PROPERTY (S_ORD.date_shipped,UPDATE_ALL
OWED, PROPERTY_TRUE) END IF
Build Forms
24Interacción 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,ind
ex)
When-Image-Pressed
When-Image-Activated
READ_IMAGE_FILE (Filename,Filetype,Item_name)
Build Forms
25Mensajes y Alertas
Alertas
Sistema
Aplicación
SHOW_ALERT Built-in
Mensajes
On-Message trigger
Informativos
On-Error trigger
Error
Trabajo
Supress_Working (true)
Aplicación
Message Built-in
Build Forms
26Mensajes 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
27Mensajes y Alertas
Cuando se detecta un error es necesario
identificarlo para tomar una acción
específica. Built-ins ERROR _CODE Número del
Error. ERROR_TEXT Descripción del
Error. ERROR_TYPE FRM Error en la Forma, ORA
Error de Oracle. On-Error IF ERROR_CODE40202
THEN MESSAGE (Este campo debe ser
llenado) ELSE MESSAGE (ERROR_TYPE-TO_CH
AR(ERROR_CODE) ERROR_TEXT) END IF
Build Forms
28Mensajes 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
29Alertas
Yes/No Question
Yes/No/Cancel Question
Informative Messages
i
SET_ALERT_PROPERTY(alert_name,property,
message) Cambia el mensaje que esta asignado a
una alerta. 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
Caution Messages
!
Build Forms
30Procesamiento de Consultas
Disparar el trigger Pre-Query
Abortar la consulta
Construccción del SELECT...
Realizar la consulta
Fetch a row into a new record
Marcar el registro como válido
Disparar el trigger Post-Query
Validar algunos cambios en el registro
Build Forms
31Procesamiento de Consultas
Ejemplo de Pre-Query IF TO_CHAR (S_ORD.ID)
TO_CHAR (S_ORD.dateordered) 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
32Información en Tiempo de Ejecución
- 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
33Validaciones
- Form Builder realiza procesos de validación a
varios niveles para - asegurar que los registros y valores individuales
sean correctos. - Forma Commit
- Bloque
- Registro When-Validate-Record
- Elemento When-Validate-Item
- IF S_ORD.date_ordered gt SYSDATE THEN
- MESSAGE (La fecha del pedido es mayor que la
actual) - RAISE form_trigger_failure
- END IF
Build Forms
34Navegación
Forms Limitar la navegación con el mouse.
Navegación sobre el primer bloque de
datos Blocks Estilo de navegación.
Navegación a un Bloque Previo Navegación al
Próximo Bloque Items Habilitarlo Navegación
por el teclado Navegación por el mouse
Navegación a un Item previo Navegación al
próximo Item
Mouse Navigate valores NO, YES.
Build Forms
35Navegación
Trigger When-New When-New-Form-Instance When-New-B
lock-Instance When-New-Record-Instance When-New-It
em-Instance Triggers Pre/Post Pre-Form Post-Form
Pre-Block Post-Block Pre-Record Post-Record Pre-T
ext-Item Post-Text-Item
Navegación en Triggers Go_Form Go_Block Go_Item Go
_Record Next_Block Next_Item Next_Key Next_Record
Previous_Block Previous_Item Previous_Record
Build Forms
36Transacciones
Validar la forma
Pre-Commit
Validar el bloque
Copia el valor del Item
Pre-Insert
Pre-Insert
Verifica valores únicos
Verifica valores únicos
On-Insert
Insert row
On-Update
Update row
Post-Insert
Post-Update
Post-Forms-Commit
Commit changes
Post-Database-Commit
Build Forms
37Diversos Usos para los Trigger Commit
Pre-Commit gt Verificar la autorización del
usuario. Utiliza métodos de bloqueo Pre-Delete
gt Implementar las reglas de borrado de las
llaves-foráneas. Pre-Insert gt Llenar
automáticamente columnas, Generar una secuencia
de números, verificar llaves. Pre-update
gt Llenar automáticamente columnas, verificar
llaves, implementar actualizaciones
en cascada o restringidas. On-Insert/Update/Delet
e gt Reemplazar enunciados DML del
bloque. Post-Forms-Commit gt Verificar las
complejas restricciones sobre varios
registros Post-Database-Commit gt Determinar
si el commit fue exitoso o si fue
utilizado.
Build Forms
38Código Flexible
- Código flexible es el código 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
39Project Builder
Facilita la administración de grandes y complejas
aplicaciones alEnlista todos los archivos
asociados con una aplicación en un Navegador en
común. Automatizar acciones Compartir proyectos
entre los miembros del equipo. Liberar la
aplicación para el usuario final. PROYECTO Es
una colección de apuntadores a los archivos que
conforman una aplicación.
Build Forms
40Project Builder
Dependencia Implícita Project Builder deduce
automáticamente muchas dependencias de la
propiedad Deliverable Type y del Build
Form. Ejemplo Del archivo fuente .fmb se
deriva el ejecutable .fmx Dependencia
Explícita Algunas veces habrá dependencias que no
pueden ser determinadas automáticamente. Definici
ón de menues Un módulo de menues es una
estructura jerárquica que provee, mediante un
método fácil y rápido, una lista de opciones
relacionadas con la aplicación. Estilos Pull-Dow
n, Full-Screen, Bar
Build Forms
41Project Builder
Compile Selection Esta opción compilará todos los
archivos que se encuentren previamente
seleccionados. Compile Incremental Project
Builder automáticamente determina cuáles son los
archivos que necesitan ser compilados. Compile
All Compila todos los archivos del Proyecto.
Build Forms
42The Menu Editor
Interfaz gráfica para facilitar la creación y
modificación de los módulos de los menues y sus
objetos. Select Tools Menu
Editor Extensión .MMB(definición) .MMX
(ejecutable) Propiedades del Menu Item
Enabled Menu Item Code Label Submenu
Name Menu Item Type Keyboard Accelerator
Magic Item Icon in Menu Menu Item Radio
Group Icon Filename Command Type Help
Description
Plain
Save
? Image Activate
Check
Radio
Order Id
Customer Id
Sales Rep Id
Copy CtrlC
Magic
Build Forms
43Mouse 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 dinámicamente SET_APPLICATION_P
ROPERTY (CURSOR_STYLE,value) Defauly, busy,
crosshair, help, insertion.
When-Mouse-Enter
When-Mouse-Leave
When-Mouse-Move
44Mouse 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 _OFFSET
SYSTEM.MOUSE_RECORD
45Controlando Ventanas y Canvas
Triggers When-Window-Activated When-Window-Desact
ivated When-Window-Closed When-Window-Resized Var
iable del sistema SYSTEM.EVENT_WINDOW Built-In
FIND-WINDOW GET_WINDOW_PROPERTY HIDE_WINDOW MOVE_W
INDOW RESIZE_WINDOW SET_WINDOW_PROPERTY SHOW_WINDO
W
Built-ins FIND_CANVAS, FIND_VIEW GET_CANVAS_PROPER
TY GET_VIEW_PROPERTY SET_CANVAS_PROPERTY SET_VIEW_
PROPERTY HIDE_VIEW SHOW_VIEW REPLACE_CONTENT_VIEW
SCROLL_VIEW
46Componentes Reusables
Es un objeto que se puede reusar en todas las
aplicaciones. Controles ActiveX Calendario Navega
dor Ayuda en línea Utilerías y Bibliotecas para
Formas Menues Iconos