capítulo il - repositorio.upsin.edu.mx
TRANSCRIPT
Capítulo Il
Estado del Arte
Lenguajes 4GL
Los lenguajes de cuarta generación contemplan un gran grado de
abstracción que viene a crear una verdadera caja negra pues el programador no
dice como se realizaran las aplicaciones que se desee crear, nada más dará una
serie de parámetros que aunque dependen del programa que se quiera crear
siempre van a estar muy alejados de la máquina o hardware, esta ha sido la
tendencia a seguir con cada generación de los lenguajes de programación.
Se debe considerar que los 4GL han cambiado mucho desde los
primeros lenguajes incluidos dentro de este término, la evolución se ha visto
marcada por varios aspectos, uno de ellos es las restricciones del sistema operativo
y del mismo hardware, que han marcado en gran medida la pauta a seguir.
También los lenguajes de cuarta generación se han visto influenciados
por las tendencias de cambio que ha sufrido la computación con el pasar de los
años, como la tendencia a programar con orientación a objetos, la incorporación de
la arquitectura cliente /servidor, la naciente ingeniería de software y la tendencia a
trabajar en equipo.
Antecedentes Progress 4GL
Progress 4GL o Progress OpenEdge como se han llamado sus últimas
versiones, es un lenguaje muy utilizado pues es potable y muy confiable. Es una
plataforma diseñada para ayudar a los desarrolladores en la construcción de
aplicaciones empresariales de forma rápida, esto ayuda a recuperar la inversión de
manera más rápida. Tiene la facilidad de fácilmente conectarse e integrarse con
clientes, con otras aplicaciones y con distintas bases de datos.
Progress incluye herramientas de programación y de bases de datos,
y recursos de servidores todo en su ambiente, permitiendo fácil acceso a todos los
recursos para crear aplicaciones.
Progress garantiza a los usuarios disponibilidad y accesibilidad en sus
bases de datos, ya que el tamaño de las tablas puede ser excesivamente grande
sin problema alguno. “Además, las pruebas realizadas han mostrado que la
plataforma OpenEdge tiene una escalabilidad aproximada de más de 30,000
usuarios simultáneos.”
Esta garantía de calidad que da Progress, hace de este un programa
muy usado en el momento, con una gran funcionalidad. Además es un programa
muy simple de utilizar en comparación a otros como SQL, donde se tardaría mucho
más tiempo creando una base de datos.
Principales Características de Progress:
Recuperación automática de caídas y transacciones y capacidades de avance.
Respaldo en línea y fuera.
Soporte a prueba de fallas.
Reorganización de tablas índices para alta disponibilidad.
Almacenamiento virtual de datos ilimitado.
Servicios profesionales.
Implementación de aplicaciones.
Servicios profesionales.
Progress 4gl tiene algunas fortalezas y algunas de ellas son el proteger sus datos y
proporcionar alta disponibilidad así como también soporta múltiples sistemas
operativos y redes.
Análisis conceptual de aplicaciones desarrolladas con Progress
AppBuilder
La herramienta OpenEdge AppBuilder es una herramienta rápida de
prototipos de aplicaciones / Desarrollo (RAP / RAD). El principal componente de
AppBuilder es un What‑You‑See‑Is‑What‑You‑Get (WYSIWYG) editor de diseño de
interfaz.
OpenEdge Aplicación Modelo de Desarrollo
AppBuilder es parte de la arquitectura del modelo de desarrollo de aplicaciones (ADM).
AppBuilder simplifica el esfuerzo de programación de aplicaciones a través de:
Apoyar el diseño de arrastrar y soltar elementos de la interfaz. Creación de la descripción de los objetos y el código de inicialización en su
nombre. Le ayudar a crear y gestionar el código de la integración.
La arquitectura ADM tiene cuatro componentes básicos:
Un conjunto jerárquico de clases de objetos desde la que desarrollar componentes reutilizables.
Una metodología definida para la comunicación entre objetos. Una manera de configurar las propiedades del objeto a partir de datos
públicos. "Súper procedures", bibliotecas enlazadas dinámicamente análogas, que
implementan las conductas objeto.
Conceptos y terminología
Archivos de Programas
Progress genera 3 tipos de archivos de programa dependiendo del
trabajo que se esté desarrollando:
Archivos de programa (.p) (program files):
Pueden contener ya sea el procedimiento principal o procedimientos
externos que son llamados desde el procedimiento principal. Estos archivos se
crean con el editor de procedimientos y se debe agregar al nombre la extensión .p.
Archivos de programa (.w) (program files):
Contienen elementos de la interface de usuario. Estos se generan
cuando se usa el App Builder para crear la ventana principal del programa.
Archivos include (.i) (Include files):
Son archivos que pueden ser incluidos en el procedimiento durante la
compilación.
Procedimientos externos VS Procedimientos internos
En la terminología de ABL, procedimiento externo es el término usual
para un módulo de subprograma independiente que existe como un conjunto de
archivos relacionado en el disco y puede ser desarrollado y compilado de forma
independiente. Un procedimiento externo no es un procedimiento en el sentido de
ser un subprograma ABL definido que comienza con la palabra reservada
PROCEDURE o FUNCTION, pero es exigible en la misma forma. Un procedimiento
externo nombre principal sirve como su identificador, y se puede utilizar en las
referencias; por ejemplo:
RUN example.w.
Los procedimientos externos suelen tener cierto número de
procedimientos internos y funciones definidas localmente para ellos. Debido a que
estos procedimientos y funciones internas implementan el repertorio de
comportamientos de procedimientos externos, a menudo se conocen como
métodos. Se definen como subprogramas normales ABL y comienzan con una de
las palabras reservadas PROCEDURE o FUCTION.
En la siguiente tabla se hace una comparación entre estos dos tipos de
procedimientos:
Tabla 2.1 – Comparación de Procedimiento interno y externo.
Objetos AppBuilder
App Builder proporciona para su uso una amplia gama de objetos
básicos ABL, varios Smart Objects ADM, e incluso tres objetos ActiveX (OCX).
En la siguiente tabla se muestran los objetos básicos ABL que están disponibles
en AppBuilder.
Papel Objeto Descripción
Org
an
izad
or
Window No es modal, puede tener una barra de menú y desplegables.
Dialog Box Técnicamente un tipo de marco con su propia ventana dedicada. Los
cuadros de diálogo son modales, no puede tener una barra de menú,
no se puede cambiar de tamaño, y debe ser emparentado por una
ventana. Por lo general, los usa para capturar la entrada del usuario
sobre un tema específico.
Frame Un objeto que delimita un área rectangular y define un grupo TAB-
recorrido. Los marcos pueden tener su propio borde y barra de título.
Puede utilizar marcos para organizar y visualizar otros objetos.
Rectangle A static object that visually delimits a rectangular area. Puede utilizar
un rectángulo para agrupar otros objetos para dar énfasis. Es
puramente un objeto visual.
Acce
so
a
los d
ato
s Query Un grupo de instrucciones relacionadas que cuentan OpenEdge para
encontrar un subconjunto de registros de una o más tablas de bases
de datos. Este es un objeto independiente, pero varios objetos tienen
una función de consulta incrustada en ellos.
Vis
ua
lizació
n d
e d
ato
s y
cap
tura
Data
Browser
Un objeto que muestra los resultados de una consulta de base de datos
en formato tabular fila / columna. Cada fila representa un registro, y
cada columna un campo.
Combo box Objeto que combina un relleno con una lista de selección. El relleno se
muestra el valor actual.
Data viewer Un objeto que muestra los resultados de una consulta de base de datos
de un registro a la vez, utilizando un fill-in por campo. También se llama
un widget DB-Fields.
Editor Un objeto de nivel de campo que permite la edición de grandes (por lo
general de varias líneas) campos de caracteres. Por defecto, las
funciones de apoyo a los editores como cortar, copiar, pegar.
Fill-in
(Editor box)
Un objetivo a nivel de campo que acepte la entrada de usuario, por lo
general una sola línea de texto. El sistema evalúa que el texto,
posiblemente realizar el procesamiento adicional tal como la
conversión de tipo y validación, y asigna el resultado a un campo de
base de datos o una variable.
Radio –
button set
Un grupo de botones que representan un conjunto de valores para una
variable, sólo uno de los cuales puede ser válido en un momento dado.
Selección de un botón deselecciona automáticamente la elección
anterior.
Selection
list (pick list)
Una lista desplegable de cadenas de caracteres. Las cadenas son los
posibles valores de un campo o variable subyacente.
Slider
Control
Una perilla virtual que el usuario mueve a lo largo de una pista. La pista
representa algún subrango de un entero; una lectura integrada
muestra el valor actual.
Toggle Box
(Check box)
Una pequeña caja cuadrada que representa un valor lógico. Puede
utilizar grupos de casillas de verificación para representar conjuntos de
propiedades.
Co
ntr
ol
acció
n Button A nivel de campo objeto de que un usuario normalmente selecciona
para invocar alguna acción. AppBuilder ofrece un botón genérico más
que otros predefinidos para fines especiales.
Otr
o
Text Object
(static text)
Texto independiente que no está vinculada a ningún otro objeto, a
pesar de que podría parecer.
Image
Object
(Static
image)
Un objeto de nivel campo estático utiliza para mostrar un mapa de bits
de un archivo gráfico. ABL es compatible con muchos formatos
diferentes gráficos en Windows.
Tabla 2.2 - Tipos de objetos básicos ABL.
Los Smart Objects son más complejos que los objetos enumerados
en la tabla 2.1. Son procedimientos externos que pueden contener cientos de
líneas de código ABL en sí mismos y sus super procedures.
Todos SmartObjects se implementan como procedimientos externos, sino
solamente a los procedimientos externos basados en el archivo smart.i califican
como SmartObjects.
En la siguiente tabla se muestran los SmartObject que están disponibles en la
versión actual de Progress.
Papel SmartObject Descripción
Org
an
iza
do
r
SmartWindow
(Swin)
Actúa como un contenedor e integrador para otros objetos,
incluidos otros SmartContainers como SmartFrames, etc.
SmartDialog
(SDialog)
Un objeto marco de propósito especial inteligente con el apoyo
de una ventana dedicada.
SmartFrame
(Sframe)
Le permite crear diseños inteligentes reutilizables no
adaptados a la ejecución como SmartDialogs.
SmartFolder
(SFolder)
Implementa la metáfora pestañas-archivo-carpeta para
gestionar pantallas de interfaz paginados.
Simple
SmartContainer
(SSC)
Proporciona toda la funcionalidad de la clase SmartContainer
sin la sobrecarga de una ventana visible. Útil para los módulos
que pueden funcionar sin vigilancia en el fondo.
Acc
es
o a
lo
s d
ato
s
DataView Un objeto que proporciona el enlace de datos entre un
ProDataSet y ADM componentes visuales.
SmartDataObject
(SDO)
Una interfaz de consulta a una base de datos. Este objeto,
disponible en formas tanto estáticas como dinámicas,
suministra el flujo de datos utilizado por otros objetos como el
SmartDataViewer o SmartDataBrowser. Un SDO no tiene
ninguna representación visible en tiempo de ejecución.
SmartBusinessObject
(SBO)
Un objeto organizador dedicado que integra hasta 20 SDO,
proporcionando un único punto de contacto para otros objetos.
Además, el SBO le permite actualizar desde múltiples SDO en
una sola transacción del lado del servidor.
SmartFilter
(SFilter)
Un objeto de registros filtrado dinámico, visible en tiempo de
ejecución. Ofrece al usuario la capacidad de enfocar la
consulta del asociado SmartDataObject tan fuerte como se
desea.
Vis
ua
liza
ció
n d
e d
ato
s y
ca
ptu
ra
SmartDataBrowser
(SDB)
Encapsula un widget de exploración para ver y posiblemente
actualizar datos. Muestra en un formato de fila / columna, y
pueden presentar los campos para varios registros
simultáneamente.
SmartDataViewer
(SDV)
Presenta un conjunto de campos que representan un solo
registro. Puede ordenar y organizar los campos visuales de
cualquier manera que se adapte a sus necesidades.
SmartDataField
(SDF)
Añade funcionalidad de propósito especial a un SDV en
función de cada campo. La funcionalidad especial puede ser
de cualquier sofisticación deseado.
SmartLOBField Permite a los usuarios añadir objetos grandes (LOB) Campos
que no utilizan la visualización predeterminada.
SmartSelect
(SSelect)
Representa una lista de selección por datos. Se podría utilizar
para actualizar un campo en una tabla basada en los valores
extraídos de una tabla relacionada.
Dato
s
co
mu
n
ica
ció
n
SmartB2BObject
(SBB)
Transforma Transformers bloques de mensajes corporales de
datos entre ABL y representaciones XML basado en un archivo
de protocolo (mapeo) que cree.
SmartSender
(SSndr) and
SmartReceiver
(SRcvr)
Transforma bloques de mensajes corporales de datos de
maneras que usted defina. El código que escriba puede ser
cualquier cosa de no-ops a las transformaciones más
sofisticados; estas son herramientas muy generales.
SmartRouter
(SRtr)
Determina qué SBB debe manejar algún mensaje recibido por
un SmartConsumer, y comienza a ese objeto.
SmartProducer
(SProdr) and
SmartConsumer
(SConsr)
Estos objetos son la interfaz SmartObject al sistema de
mensajería SonicMQ. El SProdr crea cuerpos de mensaje para
su uso por otros objetos, y los inserta en el sistema cuando se
completa el mensaje. El SConsr mira las piplelines entrantes y
pasa mensajes entrantes aguas arriba para su procesamiento.
Co
ntr
ol
de
la
ac
ció
n
SmartToolbar
(STB)
Un objeto de control de propósito general, que combina
opcionalmente un sistema de menú de bar con un objeto de
barra de herramientas.
SmartPanel
(SP)
Un grupo de botones dedicados. AppBuilder ofrece versiones
para la navegación, actualización y Commit.
Otr
o Simple
SmartObject
(SSO)
Un objeto inacabado, que sirve como base para nuevos tipos
SmartObject que es posible que desee definir.
Tabla 2.3 - Tipos de SmartObjects
Además de los objetos y SmartObjects ABL básicos, AppBuilder
también es compatible con el tipo de objeto ActiveX. ActiveX (OCX) se asemejan
a objetos SmartObjects en la implementación de la funcionalidad compleja, pero
se definen en la norma ActiveX de Microsoft en lugar de la ADM. Componentes
ActiveX están disponibles en muchas fuentes de terceros.
En la siguiente tabla se muestra el ActiveX (OCX) objetos AppBuilder que ofrece
para su uso.
Papel ActiveX
object
Descripción
Vis
ua
liza
ció
n
de
da
tos
y c
ap
tura
Combo box Objeto que combina un fill-in con una lista de selección oculto.
Una vez que el usuario hace la lista de selección visible
presionando el botón asociado, la elección de los elementos
de la lista establece el valor actual del relleno.
Spin control Dos botones opuestos y un campo de lectura opcional.
Operando uno de los botones cambia el valor del objeto ya
sea hacia arriba o hacia abajo
Otr
o Timer Genera un evento en algún intervalo regular que usted
especifique.
Tabla 2.4 - Tipos de objetos ActiveX (OCX)
Ejemplo de construcción en AppBuilder
En esta aplicación de Toy Phonebook, utiliza cuatro objetos ABL
básicos y cinco SmartObjects. En la figura 2.1 se muestra la aplicación tal como
aparece en tiempo de diseño, y en la figura 2.2 en tiempo de ejecución.
Figura 2.1 – Aplicación Toy Phonebook en tiempo de diseño.
Figura 2.2 - Aplicación Toy Phonebook en tiempo de ejecución.
En la figura 2.3 se muestra los SmartLinks que conectan los
SmartObjects en la aplicación Toy Phonebook. Conceptualmente, SmartLinks se
dedican, las vías de mensaje de dirección entre dos SmartObjects. El event -
Source objeto experimenta un evento, y los informes de ese evento
al event - Target objeto con el ABL de publicación / suscripción mecanismo.
Figura 2.3 – SmartLinks entre SmartObjects.
La Figura 2.3 muestra cuatro SmartLinks. El primero es un SmartLink
Navegación entre la SmartPanel Navegación y SmartDataObject. Cuando el
usuario elige uno de los botones de la matriz SmartPanel, SmartPanel envía un
mensaje de navegación a la SmartDataObject, pidiéndole que cambie la posición
de su puntero actual.
Cuando el SmartDataObject ha cambiado su puntero en respuesta a
la solicitud de la SmartPanel, envía un mensaje de datos al consumidor de los datos
de flujo que suministra: la SmartDataViewer. Cuando el usuario cambia los datos,
y confirma el cambio mediante el panel de actualización, el panel de actualización
informa de que la confirmación para el espectador y el espectador envía un
mensaje de actualización de nuevo a la SmartDataObject.
La figura 2.4 muestra cómo estos cuatro enlaces aparecen en el Editor de
SmartLinks.
Figura 2.4 – Enlaces de Toy Phonebook en SmartLinks Editor.
Interfaz AppBuilder
La interfaz AppBuilder tiene un número de componentes:
Ventana principal.
Paleta de objetos.
Ventanas del área de trabajo.
Código fuente, editor de sección.
Varios cuadros de diálogo de propiedades de los objetos, etc.
Ventana principal AppBuilder
Desde la ventana principal AppBuilder, que se muestra en la Figura
2.5, se puede acceder a todas las funcionalidades de soporte de AppBuilder. La
ventana principal aparece cada vez que inicie AppBuilder.
Figura 2.5 – Ventana principal de AppBuilder.
La ventana principal AppBuilder se divide en cuatro áreas:
Barra de menús
Barra de herramientas
Campos objeto actual
Campos barra de estado
Barra de menús:
La barra de menús proporciona acceso a casi toda la funcionalidad
AppBuilder, aparte de los objetos que lo componen.Tenga en cuenta que algunas
opciones de menú no están disponibles cuando se trabaja en modo de desarrollo
WebSpeed.
Barra de herramientas:
Da acceso a varios de los cuadros de diálogo AppBuilder importantes,
así como las otras herramientas OpenEdge instalados en su sistema.
Campos objeto actual:
Los campos de corriente objeto de visualización del identificador de
objeto y, a menudo, la información adicional, como una cadena de texto o la
etiqueta. Ambos campos son generalmente editable. La Figura 2.6 muestra los
campos de objetos actuales para un SmartWindow.
Figura 2.6 - Campos objeto actual.
Campos barra de estado:
Estos campos muestran de izquierda a derecha:
La información de estado acerca de la actividad AppBuilder actual.
La página de diseño en el objeto organizador inteligente actual. Si el
organizador de corriente / envase no es inteligente, este campo está en
blanco.
El nombre del tipo de objeto seleccionado en la paleta. Por ejemplo:
SmartDataBrowser.
El texto LOCK si el icono de objeto actual está cerrada (bloqueada)
durante varias ubicaciones. Es en blanco de otra manera.
Figura 2.7 - Campos barra de estado.
Paleta de Objetos
La paleta de objetos pone a disposición de todos los objetos de
componentes suministrados con AppBuilder. Sólo los principales organizadores
(ventanas, cuadros de diálogo, Smartframe) no están en la paleta.
En la siguiente tabla se muestra los objetos y la descripción de cada uno de ellos.
Icono Descripción
Puntero - Esta herramienta no crea ningún objeto; es parte de sí mismo
AppBuilder.Utilice esta herramienta al seleccionar, reordenar o cambiar el tamaño de
los objetos en el espacio de trabajo visual-diseño. Además, puede seleccionar esta
herramienta si desea cambiar de opinión después de seleccionar una herramienta
más, pero antes de colocar ese objeto.
Visor de datos básicos - (DB-Fields) le pide que conecte una base de datos, si es
necesario, y luego identificar primero una mesa y luego campos de la tabla. Crea una
consulta basada en la selección, y se suma al espacio de trabajo de un etiquetado de
relleno por campo, dispuestos en una sola columna.
Consulta - Solicita conectar una base de datos, si es necesario y, a continuación, se
inicia el Generador de consultas de cuadro de diálogo. Este widget es visible sólo en
tiempo de diseño.
Datos básicos del navegador - Solicita conectar una base de datos, si es necesario
y, a continuación, se inicia el Generador de consultas de cuadro de diálogo. Los
resultados de la consulta se muestran automáticamente por el widget.
Frame - Añade un marco para el espacio de trabajo. Utilice un bastidor para agrupar
visualmente otros objetos o, en general sólo en modo de caracteres, para servir como
una ventana (ventana) en una visualización de datos.
Rectángle - Añade un rectángulo estático para el espacio de trabajo. Los rectángulos
no han asociado la funcionalidad. Use rectángulos para visualmente grupo otros
objetos.
Image - Añade una estática, Imagen de mapa de bits en el área de
trabajo. AppBuilder soporta varios formatos de imagen diferentes en Windows. Este
objeto es, por supuesto, sin sentido en un entorno de carácter.
Set Radio - Añade un conjunto de tres botones de selección para el espacio de
trabajo, con las etiquetas genéricas. Puede cambiar el número de botones en el
conjunto después de la colocación. Radio-conjuntos representan ningún pequeño
conjunto de valores discretos, donde sólo uno
Toggle box - Añade una caja de palanca única (casilla de verificación) para el espacio
de trabajo, con una etiqueta genérica. Alternar cajas representa un
soloLÓGICO (booleano) Valor.
Slider control - Añade un widget de control deslizante para el espacio de trabajo, con
lectura opcional. Usted puede elegir para orientar este widget vertical u
horizontalmente.
Button - Añade un botón para el espacio de trabajo, con una etiqueta genérica. Usted
normalmente utilizar un botón para activar algún proceso en lugar de seleccionar una
condición estática. botones están representados como dispositivos (nonlatching)
Momentary-On: cuando se libera, vuelven al estado o inactivo
Lista de selección - Añade una lista de selección para el espacio de trabajo. Una
lista de selección presenta un conjunto desplazable de elementos que se muestran
como cadenas de caracteres.
Editor multilínea - Añade una multilínea widget de editor de texto para el espacio de
trabajo. Puede configurar el tamaño del búfer de edición, así como la disponibilidad
de características como el ajuste de línea.
Combo box - Añade a la área de trabajo de una lista desplegable o un cuadro
combinado con su elección de desplegable o visible elemento de la lista. Un cuadro
combinado verdadera permite que el usuario escriba un valor en el componente de
relleno o elegir entre los elementos que se muestran por el componente de lista.
Fill-in - Añade un editor de línea única para el espacio de trabajo. Aunque un relleno presenta sus datos en tiempo de ejecución como una cadena de caracteres, se puede especificar la conversión automática de tipos de tal manera que, por ejemplo, el valor es en realidad LÓGICO sólo con la elección del usuario que está entre unos dos literales de cadena se define como " Verdadero "y" Falso”.
El texto estático - Agrega una cadena de texto estático para el espacio de
trabajo.Usted controla la fuente, color, y tamaño.
Control ActiveX (OCX)- Abre una lista de controles ActiveX para su selección. Los
controles ActiveX pueden ser muy similares en capacidad de SmartObjects, pero siga
Component Object Model (COM) estándar de Microsoft, no el ADM.
Botones de Spin (ActiveX) - Añade un control de botón de girar ActiveX para el
espacio de trabajo. Botones de giro permiten establecer un INTEGER valor. Ellos son
funcionalmente similares a un dispositivo de rueda hardware.
Combo box (ActiveX) - Añade un cuadro combinado ActiveX para el espacio de
trabajo. Ver la descripción del cuadro combinado ABL para los detalles generales
acerca de este tipo de objeto.
Timer (ActiveX) - Añade un objeto de temporizador ActiveX para el espacio de
trabajo.Los temporizadores se utilizan como dispositivos de cuenta atrás que sin cesar
generan un evento en un intervalo a determinar. Un temporizador no tiene
representación en tiempo de ejecución o el valor de datos asociado.
SmartDataObject - Añade una interfaz de base de datos de ADM en el espacio de
trabajo. Un SmartDataObject maneja un flujo de datos hacia y desde el disco, el
filtrado de registros y responder a las solicitudes de otros mandos a ADM que residen
aguas arriba.
DataView - Añade un dato ADM vinculantes objeto al espacio de trabajo. Un DataView
proporciona el enlace de datos entre un ProDataSet y una interfaz de usuario basada
en ADM.
SmartObject - Añade algunos SmartObject de su elección para el espacio de trabajo.
SmartFolder - Añade un widget de pestañas ADM al espacio de trabajo. Un
SmartFolder proporciona un contexto bien definido dentro de la cual se puede dividir
su interfaz totales en unidades funcionales.
SmartPanel - Agrega uno de los conjuntos de botón ADM predefinidos al área de
trabajo. SmartPanels son barras de herramientas específicas, proporcionando el
control aguas arriba de otros SmartObjects.
SmartDataBrowser - Añade una pantalla de datos tabular ADM al espacio de
trabajo.SmartDataBrowsers proporcionan un multi-disco, interfaz de fila / columna
para el flujo de datos.
SmartDataViewer - Añade una pantalla de datos ADM al espacio de
trabajo.SmartDataViewers proporcionan un registro único interfaz para el flujo de
datos. Usted puede organizar su diseño para adaptarse a su diseño.
SmartDataField - Agrega capacidades especiales de su elección a un
SmartDataViewer en función de cada campo.
SmartLOBField - Añade un SmartLOBField para representar un campo LOB SDO en
una visualización no estándar.
SmartFilter - Agrega una capacidad de ADM inteligente de consulta por formulario al
espacio de trabajo.
SmartToolbar - Añade un menú ADM y barra de herramientas para el espacio de
trabajo. El valor predeterminado SmartToolbar ofrece las mismas funciones de
navegación y de actualización que son proporcionados por los SmartPanels
correspondientes.
SmartContainer - Le permite agregar un objeto contenedor de nivel externo, como
por ejemplo un SmartWindow, a otro recipiente. Esto crea una relación padre-hijo.
SmartBuisnessObject - Añade un ADM SmartContainer especial que organiza los
flujos de datos de varios SmartDataObjects.
SmartProducer - Añade un controlador de mensajes de ADM que crea mensajes
para ser transmitidos por un servicio de mensajes OpenEdge.
SmartConsumer - Añade un controlador de mensajes de ADM que recibe los
mensajes transmitidos por un servicio de mensajes OpenEdge.
SmartRouter - Añade un controlador de mensajes de ADM que encamina los
mensajes entrantes de un SmartConsumer a SmartB2BObjects apropian.
SmartB2BObject - añade un objeto de transformación adm que transforma la
información hacia y desde xml, basado en un protocolo compartido entre el emisor del
mensaje y destinatario.
SmartSender - Añade un objeto ADM personalizable que transforma la información
de acuerdo a sus normas, pasando el resultado a un SmartProducer.
SmartReceiver - Añade un objeto ADM personalizable que recibe información de un
SmartConsumer y luego lo transforma de acuerdo a sus reglas.
Tabla 2.5 – Objetos de la paleta de objetos
Áreas de trabajo: ventanas de diseño y editores de código fuente
Diseño de una aplicación utilizando AppBuilder implica la creación de
bloques de construcción y luego pegarlas junto con el código ABL apropiado. En
aplicaciones ABL que son orientados a eventos en lugar de procedimiento
impulsado, muchos de los bloques de construcción serán de interfaz de usuario
relacionada, e involucrar a disposición visual. Otros bloques de construcción tienen
un papel interno y de apoyo, y no requieren que usted pueda diseñar una
representación visible.
El espacio de trabajo para el tendido de los objetos visibles es una
ventana de diseño. SmartWindows son organizadores de nivel externa y los
miembros de la clase SmartContainer.
Figura 2.8 – Espacio de trabajo para un objeto visible.
El espacio de trabajo para los objetos no visibles es el código fuente
de la Sección Editor incorporado, junto a una ventana que muestra una vista de
árbol de los componentes editables. La figura 2.8 muestra una ventana de vista de
árbol.
Figura 2.9 - Elemento de espacio de trabajo para el objeto no visible.
Edición de código fuente con seguridad: el Editor de la Sección
El Editor de la Sección le permite editar secciones de códigos
individuales de archivos de procedimiento sin riesgo para la legibilidad después por
AppBuilder. Esto no es cierto para cualquier otro editor, incluyendo el editor en la
ventana de procedimiento.
Abrir el Editor de la Sección
Para abrir el Editor de la Sección, seleccione el objeto que desea
editar y realice una de las siguientes opciones:
Elija Ventana → Editor de la Sección Código.
Haga clic en el código de edición en la barra de herramientas.
Escriba CTRL + S en el teclado.
También puede hacer doble clic en el objeto si tiene ese elemento de preferencia
marcada en el Opciones →Preferencias cuadro de diálogo. La figura 2.9 muestra
los elementos de la interfaz de usuario visible al editar la sección disparadora. Los
elementos visibles varían de una sección a otra.
Figura 2.10 - Interfaz física Editor de la Sección
Elección de una sección para editar´
Hay dos maneras de elegir una sección de código particular para la
edición
o Seleccione una sección (Definiciones, disparadores, main block,
procedimientos o funciones) de la sección de combo box. El siguiente
ejemplo muestra la lista de la sección ampliada:
Figura 2.11- Interfaz física Editor de la Sección. Lista de selección.
o Haga clic en List. Aparecerá el cuadro de diálogo Lista de Secciones:
Figura 2.12 – Lista de secciones
Este cuadro de diálogo enumera todas las secciones y subsecciones
que puede editar, al nivel de los procedimientos internos y los factores
desencadenantes individuales. Para hacer una selección, resalte el nombre y haga
clic en Aceptar.
Usando el editor de la sección
El AppBuilder Sección Editor es una utilidad de edición que ofrece la
inserción de texto no modal, al estilo de Windows estándar de cortar y pegar, y
también es capaz de lo siguiente:
Texto de búsqueda y reemplazo.
Transformación de texto seleccionado (guión / Unindent, comentar / descomentar).
La inserción de emergencia por recoger de las listas.
La inserción de todo el archivo.
Deshacer de la acción más reciente, para la mayoría de las acciones.
La capacidad de eliminar las subsecciones enteras.
Búsqueda y Remplazo de texto:
Dentro del área de edición actual, puede buscar y reemplazar
cadenas de texto. Para buscar una cadena de texto, elija Búsqueda → Encuentre
(atajo: CTRL + F). La Búsqueda aparece el cuadro de diálogo:
Figura 2.13 – Búsqueda de texto.
Para reemplazar las instancias de la cadena de texto con una cadena
diferente, elija Búsqueda → Reemplace (atajo: CTRL + R). La Reemplazar aparece
el cuadro de diálogo:
Figura 2.14 – Ventana de Remplazar texto.
Transformar texto:
Un bloque de texto seleccionado puede ser una sangría, sin sangrar,
como comentario, o sin comentar eligiendo Editar → Selección de formato, y luego
elegir la operación deseada.
Inserción de texto de listas:
El proceso de creación de código implica entrar muchas palabras
reservadas, identificadores, los nombres de archivos y fichas similares. Las
posibilidades de error son numerosos. Para reducir el error y, en la mayoría de los
casos, excepto las pulsaciones de teclado, AppBuilder ayuda a insertar cadenas
de texto para los siguientes tipos de tokens:
Campos de base de datos
Nombres de eventos
Llamadas a procedimientos internos
Nombres del preprocesador
Consultas
Los nombres de objetos
Los nombres de archivo
Insertar archivos:
Puede insertar (fusionar) el contenido de un archivo de texto conjunto
en el buffer de edición en la posición actual del cursor. Esto es conveniente si usted
ha usado otro editor para escribir algo de código que ahora desea integrar en su
archivo AppBuilder.
Para insertar el contenido de un archivo de texto, elija Insertar →
Contenido del archivo. El contenido del archivo Elija Insertar aparece el cuadro de
diálogo:
Figura 2.15 – Ventana de Inserción de archivos
Guardar los cambios:
Desde el Editor de la Sección es una característica de AppBuilder
más que una utilidad independiente, no tiene Guardar opción propia. Para guardar
los cambios, utilice el Archivo → Guardar o Archivo → Guardar como elementos
de menú en la ventana principal AppBuilder. Esto le ahorrará todos los cambios
realizados en el objeto actual, no sólo los que usted hizo utilizando el Editor de la
Sección.
Cómo deshacer los cambios:
Para deshacer todos los cambios no guardados realizados en el área
de edición actual, seleccione Editar → Deshacer Todo. Esto restaura el archivo en
el estado en que estaba cuando entró en esta área de edición.
Para deshacer solamente su cambio no guardado más reciente, elija
Editar → Deshacer. Esta opción deshace su última edición. Si utiliza la sección
Editor de características tales como Insertar o Pegar, Deshacer deshace la acción
más reciente. Los sucesivos Undos cambiar entre rehacer y deshacer la edición
anterior.
Eliminación de secciones enteras:
Para borrar todo el código no AppBuilder en una subsección especial
(un disparador individual, procedimiento, etc.), seleccione Editar → Borrar Trigger
(procedimiento, etc.) El texto del menú varía según el elemento que se está
editando actualmente.
Precaución: No se puede deshacer la eliminación de toda una
subsección, tales como un disparador. Si utiliza el Editar → Borrar tipo inciso
función y, a continuación, cambiar de opinión, tendrá que volver a introducir todo
el código eliminado. No se puede recuperar mediante el uso de Deshacer o
Deshacer todo.
Inserción de símbolos de texto-secuencia de las listas
Nombres de los campos de base de datos:
Para introducir el nombre de un campo de base de datos en un área
de edición, seleccione Insertar → Base de datos Los campos del Editor de la
Sección de menú o elegir el Editor de la Sección menú emergente 's haciendo clic
derecho en el área de edición. El selector de campo aparece el cuadro de diálogo,
como se muestra en la Figura 2.16.
.
Figura 2.16 – Cuadro de dialogo Selector de campo
Este cuadro de diálogo le permite elegir cualquier campo de cualquier
base de datos conectada actualmente.
Nombres de eventos:
Para insertar nombres de eventos en un área de edición, seleccione
Insertar → Nombre del evento. La Elija Evento Aparecerá el cuadro de diálogo,
como se muestra en la Figura 2.17.
Figura 2.17 - Cuadro dialogo Elegir evento.
Este cuadro de diálogo muestra una lista de todos los eventos
reconocidos por ABL. Para elegir un evento inscrito, selecciónelo y haga clic en
OK:
Usa los filtros de eventos de botones de radio para ver diferentes tipos
de eventos.
Para especificar un evento de teclado, haga clic en Evento teclado.
Nombres del preprocedimiento:
Para insertar nombres de preprocesador en un área de edición,
seleccione Insertar → Preprocessor Nombre. Los nombres del preprocesador se
muestran bajo el preprocesador ficha en el Código Referencias ventana:
Figura 2.18 - Cuadro dialogo Elegir Procedimiento.
Consultas:
Puede utilizar los cuadros de diálogo de AppBuilder Query Builder
para generar una definición de la consulta en lugar de escribir en la consulta. Para
ello, seleccione Insertar → consulta. El Generador de consultas aparece el cuadro
de diálogo:
Figura 2.19 - Cuadro dialogo Query Builder.