Capítulo Il - repositorio.upsin.edu.mx

29
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.

Transcript of Capítulo Il - repositorio.upsin.edu.mx

Page 1: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 2: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 3: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 4: Capítulo Il - repositorio.upsin.edu.mx

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:

Page 5: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 6: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 7: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 8: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 9: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 10: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 11: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 12: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 13: Capítulo Il - repositorio.upsin.edu.mx

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

Page 14: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 15: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 16: Capítulo Il - repositorio.upsin.edu.mx

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”.

Page 17: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 18: Capítulo Il - repositorio.upsin.edu.mx

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

Page 19: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 20: Capítulo Il - repositorio.upsin.edu.mx

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

Page 21: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 22: Capítulo Il - repositorio.upsin.edu.mx

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:

Page 23: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 24: Capítulo Il - repositorio.upsin.edu.mx

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:

Page 25: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 26: Capítulo Il - repositorio.upsin.edu.mx

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.

Page 27: Capítulo Il - repositorio.upsin.edu.mx

.

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.

Page 28: Capítulo Il - repositorio.upsin.edu.mx

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:

Page 29: Capítulo Il - repositorio.upsin.edu.mx

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.