You are on page 1of 125

CAPACITACIN

AcuBench (Gua del Usuario)

Bogot D.C., Noviembre de 2003.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Capacitacin Tabla de Contenido

Tabla de Contenido
Tabla de Contenido.................................................................................. 2
Introduccin ............................................................................................. 4
Finalidad del Curso .............................................................................................................4
Objetivo del Curso ..............................................................................................................4
Confidencialidad .................................................................................................................4

Unidad 1: Ambiente grfico .................................................................... 5


Introduccin a ambiente grfico ..........................................................................................5
Introduccin a GUI ..............................................................................................................5
Diferencias entre pantalla y ventana ...................................................................................5
Controles ............................................................................................................................6
Eventos...............................................................................................................................7
Diferencias entre ambiente carcter y grfico .....................................................................7
Taller de repaso Unidad 1................................................................................................8

Unidad 2: Introduccin a AcuBench.................................................... 10


Conceptos del Workbench ................................................................................................10
1. Composicin de la Ventana Principal. ...................................................................10
2. Descripcin de la barra de men...........................................................................11
3. Descripcin detallada de la barra de men............................................................14
Taller de repaso 1. ............................................................................................................23
Administracin de un Proyecto, Creacin y Organizacin .................................................24

Opciones de configuracin ......................................................................................... 24


Administracin de un proyecto.................................................................................... 25
Creacin y Organizacin de un Proyecto .................................................................... 25

Taller de repaso 2. ............................................................................................................29


Generacin automatizada de cdigo.................................................................................30
Estrategia de desarrollo ....................................................................................................32

Consideraciones generales ........................................................................................ 32

Unidad 3: Desarrollando un Proyecto con AcuBench....................... 33


Objetivos...........................................................................................................................33
Crear un proyecto utilizando AcuBench ............................................................................33
Laboratorio 3.1..................................................................................................................35
Crear una GUI con AcuBench...........................................................................................36

La caja de Componentes Component Toolbox. ..................................................... 36


La ventana de propiedades Property Window........................................................ 38
Visin general de los controles grficos...................................................................... 39
Propiedades Especiales ............................................................................................. 40

Laboratorio 3.2..................................................................................................................44
Visin General de los Eventos ..........................................................................................45

Eventos de ventanas (Windows Events). ................................................................. 45


Eventos de Controles (Control Events). ................................................................... 46
Eventos de men (Men Events)............................................................................. 55

Laboratorio 3.3..................................................................................................................57
Laboratorio 3.4..................................................................................................................59
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 2 de 125

Capacitacin Tabla de Contenido


Laboratorio 3.5..................................................................................................................61
Controles grficos especiales ...........................................................................................62

Grid Control................................................................................................................ 62

Laboratorio 3.6.................................................................................................64
Propiedades Especiales del GRID ...................................................................65
Estilo Page Grid...............................................................................................80
Laboratorio 3.7.................................................................................................82
Laboratorio 3.8.................................................................................................83
Laboratorio 3.9.................................................................................................84
Laboratorio 3.10...............................................................................................85

Tree View Control....................................................................................................... 88

tem..................................................................................................................88
Relacin Padre e Hijo ......................................................................................89
Adicionando tem hijos.....................................................................................89
Laboratorio 3.11...............................................................................................92

Web Browser.............................................................................................................. 94

Mtodos...........................................................................................................94
Laboratorio 3.12...............................................................................................98
Herramientas y utilidades................................................................................................ 101
Laboratorio 3.13.............................................................................................104
Administracin de Transacciones en Archivos ................................................................ 105

Registro de Transacciones ........................................................................................105


Tipos de archivo........................................................................................................106
Verbos para administracin de transacciones............................................................106

Unidad 4: Conversin de Aplicaciones COBOL............................... 107


Anlisis de conversin .................................................................................................... 107
Funcionamiento del Asistente ......................................................................................... 108
Beneficios y Restricciones .............................................................................................. 113

Unidad 5: Introduccin a Internet desde COBOL............................. 114


Tecnologas Acucorp para Internet ................................................................................. 114

Acuthin......................................................................................................................114

Cmo funciona............................................................................................... 115

Acuserver..................................................................................................................116

Cmo funciona............................................................................................... 116

CGI ...........................................................................................................................117

Que es CGI?.................................................................................................. 117


Escribir un programa COBOL CGI ................................................................. 119
Colocar su pgina web en el servidor web..................................................... 123
Configurando el servidor web......................................................................... 123
Que es necesario?......................................................................................... 124
Laboratorio: COBOL y CGI ............................................................................................. 125
Cree una forma HTML ................................................................................... 125

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 3 de 125

Capacitacin Introduccin

Introduccin
Finalidad del Curso
Brindar al estudiante los conocimientos bsicos necesarios para el desarrollo
de proyectos en ambiente grfico, bajo la herramienta de desarrollo
AcuBench, adems de facilitar el uso del entorno de trabajo, optimizando la
creacin o conversin de aplicaciones.

Objetivo del Curso


Aprender el concepto de ambiente grfico
Utilizar las herramientas Acucorp
Aprender a convertir aplicaciones desarrolladas en RM-COBOL

Confidencialidad
El material es propiedad de JIMMY GUZMN SUREZ Se presenta como
material de ayuda y consulta al estudiante en el curso de capacitacin.
Este material se creo sin autorizacin de Acucorp y bajo la responsabilidad de
su autor sin que Acucorp tenga ninguna responzabilidad ni autoria en este
material.
Las reglas de confidencialidad aplicadas, afectan a todo el documento, su
reproduccin es prohibida por cualquier tipo de medio, fsico o magntico sin
autorizacin expresa escrita del autor
Copyright 2003 - Todos los derechos son reservados.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 4 de 125

Capacitacin Ambiente Grfico

Unidad 1: Ambiente grfico


Introduccin a ambiente grfico
Como parte fundamental para el desarrollo de aplicaciones basadas en
ambiente grfico, es la importancia en el conocimiento de los principios
bsicos de la construccin de software; esta unidad introduce al estudiante
hacia una familiarizacin de conceptos bsicos de los componentes de un
entorno grfico.

Introduccin a GUI
El termino GUI (Graphical User Interfaces), o Interfaz Grfica de Usuario, es
ampliamente aplicado a los ambientes basados en sistemas grficos, tales
como, Windows 95/98/NT/2000, LINUX, Macintosh, OS/2 IBM etc. Esto es,
una construccin de una serie de controles y componentes grficos que
permiten al usuario interactuar con stos para ejecutar eventos o acciones de
una aplicacin especifica.

Diferencias entre pantalla y ventana


Pantalla: es la parte visual fsica del rea de un monitor.
Ventana: es un rea visual rectangular que provee una vista virtual de una
pantalla
Las ventanas contienen controles grficos, barras de ttulos y barras de men,
en entornos GUI las ventanas son construcciones fundamentales usadas para
mostrar y aceptar comandos y datos del usuario. Bsicamente las ventanas
estn divididas en:
Ventana principal: Es generalmente la ventana primaria de la aplicacin la
cual esta compuesta por una barra de ttulo y una barra de men para acceder
a las funciones bsicas de la aplicacin. Esta ventana puede ser movible y
reajustable.
Ventana Tipo Modeless: Esta ventana le permite al usuario intercambiar
entre ventanas permitiendo interactuar entre ventanas, puede estar una
ventana ejecutando un proceso y acceder a otra ventana para realizar otro
proceso, esta ventana se puede minimizar, reajustar y mover.
Ventana Tipo Modal: Es una ventana a la que el usuario debe responder
antes de continuar con otra tarea, esta ventana no es ajustable y en algunos

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 5 de 125

Capacitacin Ambiente Grfico


casos no es minimizable pero s es movible. Un ejemplo tpico es las ventanas
de mensajes de error.

Controles
Los controles son una serie de objetos grficos que estn intrnsicamente
contenidos en una ventana con una funcin dedicada, los controles no son
movibles y no tienen algunas propiedades de las ventanas. Los controles
tienen unas propiedades bsicas, como son: Localizacin, Tamao, Ttulos,
Valores, Colores, Fuentes y Estilos. Adems de esto ciertos tipos de controles
cuentas con propiedades especiales dependiendo del tipo de control. Dentro
de los controles comnmente usados tenemos:
ACTIVE-X
BAR
BITMAP
CHECK-BOX
COMBO-BOX
ENTRY-FIELD
FRAME
GRID
LABEL
LIST-BOX
PUSH-BUTTON
RADIO-BUTTON
SCROLL-BAR
STATUS-BAR
TAB
TREE-VIEW
WEB-BROWSER
Los controles se aplican dependiendo de la aplicacin que deseemos
construir. Una parte importante en la construccin de software es la de definir
el tipo de ventana y los controles que tendr, creando un estndar nico para
la aplicacin, evitando excesos y disparidad de objetos, es decir, se debe
crear un ambiente claro y de fcil comprensin por parte del usuario, evitando
nomenclatura tcnica y siendo lo ms especifico y claro posible.
En el desarrollo del curso se adentrar en el concepto de cada uno de estos
controles, por ahora los mencionaremos para que el estudiante se vaya
familiarizando con los trminos.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 6 de 125

Capacitacin Ambiente Grfico

Eventos
En los sistemas grficos, los eventos comunican acciones dadas por el
usuario a travs de varios objetos grficos. Por ejemplo, si el usuario presiona
una tecla, el sistema puede generar algunos eventos para denotar el hecho,.
Los eventos son generados por el sistema y lo que hace el desarrollador es
interpretarlos y aplicarlos en la aplicacin.

Diferencias entre ambiente carcter y grfico


Cuando usted desarrolla aplicaciones para ambiente carcter, asume que
tiene un rea de pantalla de 24 o 25 lneas x 80 columnas, a diferencia, en un
ambiente grfico se utiliza el trmino resolucin de pantalla, el cual esta dado
en pxeles, es as como se habla de configuracin de 640 x 480, 800 x 600, o
1024 x 768, en AcuBench un carcter representa 0.8 pxeles de ancho x 1.5
de alto, ahora bien en la construccin de controles la dimensin se maneja en
pxeles y no en caracteres como lo haca con ambiente carcter.
Otra diferencia fundamental es la interaccin del usuario con el mouse, este
dispositivo es parte bsica en sistemas Windows y generalmente el uso del
mouse sobre los controles genera eventos que el sistema trasmite en cdigo y
dependiendo de la herramienta de desarrollo este lo clasifica para que el
desarrollador pueda asociar una accin a dicho evento.
El ambiente carcter se limita a la interaccin del usuario con el teclado y su
flexibilidad es muy limitada, es as como en ambiente carcter solamente
puedo acceder a una aplicacin mientras que en ambiente grfico por tener
arquitectura de 32 bits puedo acceder a mltiples aplicaciones, esto se llama
multitarea.

Nota: Como se ha dado cuenta el desarrollo de aplicaciones grficas, demanda ciertas reglas y
conceptos que a travs del curso iremos ampliando y profundizando. El curso esta enfocado haca el
dominio de la herramienta AcuBench, pero esto solo se lograr con el empeo y dedicacin que usted
ponga en el aprendizaje de la herramienta.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 7 de 125

Capacitacin Ambiente Grfico

Taller de repaso Unidad 1


El siguiente taller muestra una imagen de una ventana (figura 1.1), la cual contiene
algunos controles grficos, identifique los controles, escriba el nombre y una breve
descripcin en la lista de la siguiente pgina.

Figura 1.1.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 8 de 125

Capacitacin Ambiente Grfico

Figura

Nombre del Control

Descripcin del Control

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 9 de 125

Capacitacin Introduccin a AcuBench

Unidad 2: Introduccin a AcuBench

Conceptos del Workbench


Veremos la composicin de la ventana principal o espacio de trabajo (workbench) de AcuBench, as
como la descripcin de la barra de men.

1. Composicin de la Ventana Principal.


La ventana principal contiene todos los componentes para desarrollar las aplicaciones como parte de
un proyecto. Esta ventana se compone de:
Barra de men

Barra de
herramientas
Standard

Barra del editor

Barra
de
Alineamiento
de Controles

Ventana de
Propiedades

Barra
del
Debug

Espacio de
Trabajo

Ventana de
Desarrollo

Ventana de
Salida

Caja de herramientas
de Componentes

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 10 de 125

Capacitacin Introduccin a AcuBench

2. Descripcin de la barra de men


En la barra de men encontramos los siguientes mens:
File Menu
Edit Menu
View Menu
Project Menu
Build Menu
Debug Menu
Align Menu
Format Menu
Tools Menu
Window Menu
Help Menu

Dentro de cada men encontramos las siguientes opciones.


File Menu

Edit Menu

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 11 de 125

Capacitacin Introduccin a AcuBench


View Menu

Project Menu

Build Menu

Debug Menu

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 12 de 125

Capacitacin Introduccin a AcuBench


Alig Menu

Format Menu

Tools menu

Window Menu

Help Menu

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 13 de 125

Capacitacin Introduccin a AcuBench

3. Descripcin detallada de la barra de men


A continuacin describimos en detalle cada uno de los componentes de los
diferentes mens.
File Menu

El File Menu incluye comandos que desempean operaciones en archivos y espacios


de trabajo.
New
La opcin File/New carga una ventana de dialogo que le
permite crear un nuevo proyecto, programa, ventana, archivo,
o (FD/SL). En el dialogo New, seleccione la pestaa que
corresponde al tipo de objeto que usted desea crear y luego
complete el dialogo.
Open
Seleccione File/Open para abrir un archivo existente. Localice
el archivo deseado y haga clic en Open para abrir el archivo.
Close
Seleccione File/Close para cerrar el archivo activo.
Open Workspace
Seleccione File/Open Workspace para abrir un nuevo espacio
de trabajo. Si un workspace se encuentra abierto, AcuBench
cierra el actual workspace antes de abrir uno nuevo.
Save Workspace
Seleccione File/Save Workspace para guardar todos los
cambios hechos al workspace.
Close Workspace
Seleccione File/Close Workspace para cerrar el workspace
activo.
Save
Seleccione File/Save para guardar el archivo actual. El
nombre del archivo actual es mostrado a la derecha de la
opcin Save.
Save As
Seleccione File/Save As para guardar el archivo actual con
otro nombre de archivo o localizacin. Si usted no especifica
una extensin, la primera extensin listada en el campo "Save
as type" es asignada automticamente.
Save All
Seleccione File/Save All para guardar todos los cambios
hechos en los archivos activos.
Page Setup
Seleccione File/Page Setup para definir el diseo de su
pgina impresa.
Print Setup
Seleccione File/Print Setup para modificar o ver sus valores
de impresin.
Print Preview
Seleccione File/Print Preview para visualizar cmo quedar el
documento actual cuando se vaya a imprimir.
Print
Seleccione File/Print para imprimir su archivo activo. Ajuste
los valores en el cuadro de dialogo y presione en OK.
Recent Files
File/Recent Files es una lista de los ms recientes archivos
abiertos. Usted puede abrir un archivo en la lista
seleccionandolo.
Recent Workspaces File/Recent Workspaces contiene una lista de los ms
recientes workspaces abiertos.
Usted puede abrir un
workspace en la lista seleccionndolo.
Exit
Seleccione File/Exit para cerrar AcuBench. El estado de la
informacin es guardado, y todos los archivos son cerrados
antes de salir.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 14 de 125

Capacitacin Introduccin a AcuBench

Edit Menu

El men Edit incluye funciones de edicin familiares tales como: cortar, copiar, y pegar.
Undo
Reversa la accin previa en el Code Editor y Screen
Designer. El workbench soporta mltiples acciones deshacer,
para acciones o comandos efectuados antes de guardar los
cambios.
Redo
Reversa la ms reciente operacin Undo. El Code Editor y
el Screen Designer soportan mltiples acciones Redo, para
acciones o comandos efectuados antes de guardar los
cambios.
Cut
Remueve la seleccin desde el Code Editor o Screen
Designer colocndolo en el portapapeles. Este comando es
disponible nicamente si ha seleccionado cdigo o
componentes de la Screen.
Copy
Coloca una copia de la seleccin en el portapapeles. Este
comando es disponible nicamente si ha seleccionado cdigo
o componentes de la Screen.
Paste
Coloca una seleccin que ha sido cortada o copiada al
portapapeles en un documento activo o Screen. Cuando
usted selecciona este commando.
Delete
Remueve la seleccin desde el Code Editor o el Screen
Designer. Este comando es disponible nicamente si ha
seleccionado cdigo o componentes de la Screen.
Select All
Selecciona todos los elementos en el activo Code Editor o
Screen Designer.
Find
Le permite buscar mltiples ocurrencias de una cadena de
texto. El comando Find no es habilitado para el Screen
Designer. Cuando usted selecciona este comando aparece
un cuadro de dialogo con varias opciones de bsqueda.
Find Next
Avanza en la siguiente ocurrencia del tem seleccionado en el
documento activo. Este comando esta disponible nicamente
si usted ha seleccionado un texto.
Find in Files
Permite localizar cadenas de texto en los archivos
almacenados en su disco duro. Cuando usted selecciona este
comando aparece un cuadro de dialogo con varias opciones
de bsqueda.
Replace
Permite reemplazar tem en el texto con otros tem. Cuando
usted selecciona este comando aparece un cuadro de dialogo
con varias opciones de reemplazo.
Replace in Files
Permite reemplazar una cadena de texto por otra cadena
dentro de su proyecto o su disco duro. Cuando usted
selecciona este comando aparece un cuadro de dialogo con
varias opciones de reemplazo.
Go To
Permite especificar un destino para el cursor en el documento
activo. Cuando selecciona este tem, aparece un submen con
varias opciones.
Bookmark
El comando Bookmark permite insertar una marca en la lnea
seleccionada del Code Editor. Una vez las marcas son
colocadas, usted puede instantneamente desplazarse a la
siguiente o previa marca en su cdigo.
Advanced
El comando Advanced contiene un submen permitiendo
desempear una variedad de tareas.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 15 de 125

Capacitacin Introduccin a AcuBench


Create/Update CFD

View Menu

Crea un Control Flow Diagram (CFD) para el programa activo


si este no existe. Si un CFD ha sido creado por el programa
activo, este comando actualizar el existente CFD, reflejando
cualquier cambio recientemente hecho en el programa.

El men View controla la visualizacin de los componentes varios del workbench.


Toolbars
El comando Toolbars permite ocultar o mostrar las barras de
herramientas del workbench, incluyendo: Standard, Project,
Editor, Debug, Align toolbars y el Launch Bar. Cuando
selecciona este comando, un submen contiene una lista de
las anteriores barras de herramientas. Haciendo clic en el tem
del men visualiza u oculta la barra seleccionada, apareciendo
o desapareciendo una marca en el men. El comando
Toolbars permite personalizar la apariencia de la barra,
creando o eliminando componentes, esto lo puede hacer por la
opcin Customize del men.
Status Bar
Activada esta opcin, muestra una barra de estado y mensajes
en la parte inferior del workbench.
Workspace
El comando Workspace visualiza la ventana del espacio de
trabajo. El workspace contiene varias vistas de uno o ms
proyectos, incluyendo los proyectos bsicos, estructura de
programas, descripcin de archivos, y tipos de archivos. El
icono Workspace en el men aparece "presionado" cuando el
workspace es mostrado. Puede ocultar el workspace haciendo
clic con el botn derecho en el rea y seleccionar Hide.
Output Window
El comando Output window visualiza la ventana de salida, la
cual contiene todos lo mensajes generados cuando realiza un
Build, Debug, Search y funciones de control de versiones.
Informacin sobre aplicaciones no-workbench son tambin
mostradas en la ventana de salida. El icono Output window
en el men aparece "presionado" cuando ventana de salida es
mostrada. Puede ocultar la ventana de salida haciendo clic
con el botn derecho en el rea y seleccionar Hide.
Property window
El comando Property window visualiza la ventana de
propiedades, esta visualiza las propiedades y eventos
disponibles para cada ventana y control. El icono Property
window en el men aparece "presionado" cuando ventana de
propiedades es mostrada. Puede ocultar la ventana de
propiedades haciendo clic con el botn derecho en el rea y
seleccionar Hide.
Component Toolbox El comando Component Toolbox visualiza la ventana de
componentes, la cual contiene iconos para los controles
estndar y ActiveX, controles utilizados para disear la Screen.
Puede ocultar la ventana de propiedades haciendo clic con el
botn derecho en el rea y seleccionar Hide.
Debug window
El commando Debug Window permite visualizar varias
ventanas durante una sesin de depuracin. Estas ventanas
retornan informacin acerca de como su aplicacin se esta
depurando. Los nombres de estas ventanas aparecen en un
submen del comando Debug window.
Full Path Filename
Este comando permite la visualizacin del nombre y ruta
completa de los archivos en la barra de ttulo del editor de
cdigo.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 16 de 125

Capacitacin Introduccin a AcuBench


Ruler Bar
Line Number Pane
Bookmark Pane

Project
Menu

Este comando muestra una regleta en la parte superior del


editor de cdigo.
Este comando muestra el nmero de lnea en el editor de
cdigo.
Este comando muestra un panel para alojar las marcas de libro
(Bookmark) en el editor de cdigo.

El men Project contiene herramientas especficas para el mantenimiento de sus


proyectos. Puede adicionar o remover archivos desde su proyecto, crear carpetas
adicionales para su proyecto, ver o modificar la configuracin y propiedades de su
proyecto y fijar su modo de trabajo activo (Debug or Release).
Add/Remove Files
Para adicionar o remover archivos desde un proyecto,
seleccione Project/Add/Remove Files.
New Folder
Seleccione Project/New Folder para crear una nueva
carpeta para su proyecto.
Settings
Seleccione Project/Settings para revisar o modificar la
configuracin de su proyecto. Project/Settings permiten
especificar el compilador, runtime, entorno, y opciones de
libreras para el proyecto. Las opciones disponibles en la
configuracin del proyecto dependen de la pestaa
seleccionada. (ms adelante se profundizar en el tema).
Set Active Mode
Seleccione Project/Set Active Mode para seleccionar el
conjunto de valores (modo) que desea usar con el proyecto.
En el dialogo Set Active Mode, haga clic en el nombre del
modo deseado y luego presione OK.
Properties
Seleccione Project/Properties para ver y modificar
propiedades generales y libreras de su proyecto. En la
pestaa General, puede cambiar el nombre de su proyecto
ingresando un nuevo nombre. Los restantes tems en la
pestaa general son de lectura nicamente. Use la pestaa
Library para especificar nombres de los objetos incluidos en
la librera de el proyecto.
Create Alias
Seleccione Project/Create Alias para definir el alias que
contiene la informacin necesaria para un runtime de un
servidor que corre una aplicacin remota en una operacin
cliente delgado.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 17 de 125

Capacitacin Introduccin a AcuBench

Build Menu

El men Build incluye comandos para generar cdigo, construir el espacio de trabajo
(workspace), compilar un archivo, reparar un archivo o todos de el espacio de trabajo y
para ejecutar un programa.
Generate
Seleccione Build/Generate para generar cdigo del
programa activo. Por ejemplo, si una forma de ventana esta
activa, seleccionando Generate causa que el cdigo relativo
a la screen sea generado. Si la ventana de File Designer es
activa, los archivos ".fd" and ".sl" son generados para el diseo
de datos.
Compile
Seleccione Build/Compile para compilar el archivo activo.
Esta opcin es deshabilitada si el archivo activo no es un tipo
de archivo COBOL.
Build Workspace
Seleccione Build/Build Workspace para construir todo
dentro del proyecto en el espacio de trabajo.
Build
Workspace recompila todos los archivos que han sufrido
cambios desde la ltima construccin (build) y sus
dependencias. Si su espacio de trabajo contiene proyectos
locales y remotos, y desea construir estos proyectos, debe
usar el comando Build Workspace doble vez: una vez para
su proyecto local y otra vez despus de seleccionar el
comando Thin Client para sus proyectos remotos.
Rebuild Workspace Seleccione Build/Rebuild Workspace para forzar la
construccin de todo el proyecto en el espacio de trabajo.
Rebuild Workspace recompila nuevamente todos los
archivos y sus dependencias. Si su espacio de trabajo
contiene proyectos locales y remotos, y desea reconstruir
estos proyectos, debe usar el comando Rebuild Workspace
doble vez: una vez para su proyecto local y otra vez despus
de seleccionar el comando Thin Client para sus proyectos
remotos.
Reparse
Seleccione Build/Reparse para repasar el activo archivo de
origen, identificar e incluir todos los archivos referenciados
(COPY).
Reparse All
Seleccione Build/Reparse All para repasar todo el espacio
de trabajo, identificar e incluir todos los archivos referenciados
(COPY).
Execute
Seleccione Build/Execute para ejecutar o correr el
programa seleccionado.
Debug Runtime
Seleccione Build/Debug (Runtime) para iniciar la ejecucin
en modo de depuracin del programa activo.
Allow Parameters
Seleccione Build/Allow Parameters para especificar
parmetros antes de ejecutar el programa seleccionado.
Cuando esta opcin es seleccionada la ejecucin con el
dialogo de parmetros es visualizada
Use Thin Client
Seleccione Build/Use Thin Client para sealizar el espacio
de trabajo deseado para ser usado con la tecnologa cliente
delgado.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 18 de 125

Capacitacin Introduccin a AcuBench

Debug
Menu

El men Debug provee acceso a los comandos usados con el depurador (debugger).
Trace Option

Trace Option permite un conjunto especial de seguimiento


para tipos especficos de actividad de un programa, tal como
un flujo de ejecucin (mediante pargrafos) y archivos I/O. La
opcin de seguimiento genera mensajes en la cadena de
salida del depurador, cuantas veces una accin de un
especificado tipo ocurre.
Para habilitar o deshabilitar una opcin de seguimiento, clic en
la opcin deseada del submen. Las opciones del submen
incluyen:
Comando
Descripcin
Genera una lista de todas las
Trace File...
operaciones desempeadas por el
runtime en un archivo. Cuando
esta opcin es activada, un
dialogo es mostrado indicando el
nivel de seguimiento.

Go
Restart
Exit Debugger
Quit Debugger
Interrupt
Auto Step

Step Into
Step Over
Step Out Paragraph
Step Out Program
Skip to line
Run to Cursor

Record Script
Run Script

Trace Paragraphs

Genera una lista de todos los


pargrafos
y
secciones
registradas por el runtime.

Trace Flush.

Causa que se limpie el archivo de


error del disco despus de cada
escritura.

Ejecuta en modo de depuracin el programa seleccionado.


Restaura desde el final de la actual sesin de depuracin e
inicia una nueva sesin con el mismo programa.
Termina la sesin de depuracin actual, ejecutndola hasta el
final y luego cerrndola.
Termina la sesin de depuracin en el punto donde se
encuentre y cierra el depurador.
Detiene la ejecucin del programa, retornando el control al
depurador.
Ejecuta el comando repetidamente por pasos mientras el
programa finaliza. Puede cambiar la velocidad comenzando
desde 1 (lento, aproximadamente 3 segundos por paso)
hasta 9 (rpido, muchos pasos por segundo).
Ejecuta el seguimiento dentro de una sentencia o pargrafo.
Sale de la ejecucin interna de una sentencia o pargrafo.
Corre el programa mientras el actual pargrafo retorna al punto
desde el cual fue lanzado.
Corre un programa hasta que retorne a su programa origen.
Mueve la ubicacin actual del programa a la lnea que contiene
el cursor.
Pone un punto de interrupcin temporal en la lnea actual (o la
lnea ms cercana con un verbo) y contina la ejecucin del
programa.
Crea un registro que guarda todas las acciones del depurador
a un archivo que usted especifique.
Ejecuta un archivo script de depuracin.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 19 de 125

Capacitacin Introduccin a AcuBench


Breakpoints
Threads

Align Menu

Lanza el dilogo de Puntos de interrupcin en el que usted


puede poner, modificar, y quitar puntos de interrupcin.
Lanza el dilogo de Hilos en que usted puede escoger un solo
hilo para correr o escoger la opcin para correr todos los hilos.

Permite que usted afine la apariencia de sus controles despus que los ha colocado en
su ventana en el Diseador de Pantalla. Cundo escoge un grupo de controles para
estas rdenes, debe fijarse que el ltimo control escogido es el control dominante.
Cundo escoge una orden de la alineacin, todos los otros controles en su seleccin
del grupo se alinean de acuerdo al control dominante.
Align Control
Align Control le da varias opciones para posicionar sus
controles. Estas opciones aparecen en el submenu, descrito
en la tabla siguiente:
Comando
Center Horizontal
Center Vertical
Left

Descripcin
Centra
los
controles
seleccionados Horizontalmente.
Centra
los
controles
seleccionados Verticalmente.
Alinea los bordes a la izquierda
los controles seleccionados, de
acuerdo al control dominante

Right

Alinea los bordes a la derecha los


controles
seleccionados,
de
acuerdo al control dominante

Top

Alinea al borde superior


controles
seleccionados,
acuerdo al control dominante

los
de

Bottom

Space Evenly

Alinea los bordes en la parte


inferior
los
controles
seleccionados, de acuerdo al
control dominante
To Grid
Alinea el control (s) escogido al
punto ms cercano de la
cuadrcula en el Diseador de
Pantalla.
Space Evenly le da dos opciones para espaciar fuera sus
controles en el Diseador de Pantalla. Esta orden est
disponible slo si usted ha escogido por lo menos tres
controles. Las opciones aparecen en el submen, descrito en
la tabla siguiente:
Comando
Across

Down

Descripcin
Espacia
uniformemente
los
controles escogidos (por lo menos
tres) horizontalmente.
Espacia
uniformemente
los
controles escogidos (por lo menos
tres) verticalmente.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 20 de 125

Capacitacin Introduccin a AcuBench


Adjacent

Make Same Size

Tiene dos opciones para posicionar sus controles. La opcin


Horizontal posiciona dos controles escogidos para que la
frontera correcta de un control tengan la misma ubicacin
horizontal como la frontera izquierda del otro control. El
espacio vertical entre ellos puede existir. La opcin Vertical
posiciona los controles escogidos para que la frontera inferior
de un control tengan la misma ubicacin vertical como la
frontera primera del otro control. El espacio horizontal entre
ellos puede existir.
Tiene tres opciones para calibrar sus controles. Esta orden
est disponible slo si usted ha escogido por lo menos dos
controles. La Marca Mismas opciones del Tamao se
describen en la tabla siguiente:
Comando

Descripcin
Ajusta los controles escogidos al
ancho del control dominante.
Height
Ajusta los controles escogidos al
alto del control dominante.
Both
Ajusta los controles escogidos al
ancho
y
alto
del
control
dominante.
Cundo usted usa esta orden, el control escogido se ajusta
para que sea apenas lo suficientemente grande para
acomodar una etiqueta o un ttulo..
Permite cerrar y bloquear la posicin de un control en una
ventana. Un control cerrado no se puede arrastrar, pero se
puede cortar, centrar y calibrar. Cundo usa este comando y
escoge la posicin del control en la ventana se desbloquea,
entonces esa posicin de control en la pantalla se cierra. Si el
control escogido se cierra cuando usted usa esta orden, esa
posicin del control se desbloquea.
Permite que usted determine el orden en que el cursor navega
por los controles en la ventana. Cundo usa esta orden, una
ventana de dilogo de Orden de Etiquetas de Controles
aparece. Esta caja del dilogo contiene una lista de los
controles en su ventana junto con el nmero de orden
asignado. Usted puede cambiar la orden de la etiqueta
escogiendo un control y usando las flechas arriba y abajo.
Presenta una cuadricula que sirve como referencia para
alinear controles en la ventana de diseo.
Presenta unas guas en forma vectorial que sirven como
referencia para ubicar controles en la ventana de diseo.
Width

Size to Content

Lock Controls

Tab Order

View Grid
Toggle Guide

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 21 de 125

Capacitacin Introduccin a AcuBench

Format

El men Format permite cambiar ciertas propiedades de texto del editor de cdigo.
Capitalize
Coloca en mayscula la primera palabra del texto
Uppercase
Cambia todas las letras del texto de minscula a mayscula.
Lowercase
Cambia todas las letras del texto de mayscula a minscula.
Comment Block
Permite que usted escoja un bloque de texto en su cdigo
fuente y aplique smbolos de comentario a toda el rea
seleccionada.
Uncomment Block
Permite que usted remueva un bloque comentariado de texto
en su cdigo fuente.
Sequense Number
Permite crear o enumerar una seleccin de cdigo fuente. Las
opciones de enumeracin se muestran en un cuadro de
dialogo.
Indent to Next
Cambia la tabulacin de la posicin de la lnea a la siguiente.
Indent to Previous
Cambia la tabulacin de la posicin de la lnea a la anterior.
ANSI to Terminal Cambia la configuracin de color del fondo y frente de su
Format
cdigo fuente entre ANSI y formato de terminal.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 22 de 125

Capacitacin Introduccin a AcuBench

Taller de repaso 1.
Complete las siguientes frases:
Para abrir un archivo de extensin (.cbl) utilizo la opcin _________ del men
File.
La opcin Recent Workspaces me permite ver una lista de los ms recientes
_____________________ abiertos.
La opcin _________________ permite localizar cadenas de texto en mi disco
duro.
El comando Bookmark sirve para __________________________________
Puedo ejecutar la depuracin paso a paso de mi programa utilizando el
comando _______ window del men _______.
Puedo configurar los parmetros de mi proyecto utilizando _________ del
Project Menu
Indique si las siguientes afirmaciones son falsas o verdaderas
Puedo crear una nueva carpeta utilizando la opcin Add/Remove Files del
men Project: _______________
Para compilar un programa utilizo la opcin Generate del men Build:
______________
El comando Reparse me sirve para repasar el archivo activo:
______________
Para realizar un seguimiento a mi aplicacin paso a paso dentro de una
sentencia o pargrafo utilizo la opcin Step Into del menu Debug:
______________
Responda a las siguientes preguntas
Cul opcin utilizo para salir completamente de una depuracin?
________________________
Qu comando debo ejecutar para crear puntos de interrupcin en mi
depurador de cdigo?
________________________
Cul opcin utilizo para darle una mejor apariencia a los controles creados
en una ventana?
________________________

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 23 de 125

Capacitacin Introduccin a AcuBench

Administracin de un Proyecto, Creacin y Organizacin

Opciones de configuracin
Las Opciones de Configuracin son usadas para personalizar el entorno de
trabajo de AcuBench.

Figura 2.1

El cuadro de dilogo de la figura 2.1 muestra la organizacin de las opciones


en cinco categoras primarias:
Environment (Entorno)
Code Editor (Editor de Cdigo)
Screen Designer (Diseador de Pantalla)
Code Generator (Generador de Cdigo)
Data Designer (Diseador de Datos).
Estas categoras se muestran y se pueden escoger en el rbol de vista que son
localizadas en el lado izquierdo del cuadro de dilogo. La mayora de las

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 24 de 125

Capacitacin Introduccin a AcuBench


categoras contienen dos o ms sub-categoras que son visualizadas cuando
usted abre (clic) el nodo principal.
La descripcin general de cada una de las caractersticas se describen y
analizan en el transcurso de la capacitacin.

Administracin de un proyecto
El desarrollo de proyectos con AcuBench es organizado en espacios de trabajo
(workspaces), proyectos (project), y unidades de programa (program units).
Un espacio de trabajo en AcuBench (workspace), es un contenedor para uno o
ms proyectos. Fsicamente consiste en un archivo especifico
(nombre_proyecto.prj), el cual es creado cuando se origina un proyecto en un
espacio de trabajo. Este archivo contiene toda la informacin especifica del
proyecto, as como el contenido de archivos y la configuracin de valores
definidos para el proyecto.
Un proyecto en AcuBench (project), es una coleccin de todos los archivos
necesarios para construir, ejecutar y depurar un programa, incluye todos los
archivos de origen, archivos COPY, definiciones de archivos de ventanas,
archivos de recursos (bitmap, audio, etc), listados de archivos, y archivos
objeto.
Puede crear mltiples proyectos en el mismo espacio de trabajo. Cuando un
espacio de trabajo (workspace) es abierto, todos los proyectos miembros son
visualizados en la ventana workspace.
Cada proyecto contiene un conjunto de carpetas para organizar los archivos del
proyecto.
Cada cambio en la configuracin del proyecto es guardada en el archivo de
configuracin del proyecto.
Cuando un nuevo proyecto es creado, AcuBench crea un directorio local y un
conjunto de subdirectorios para el proyecto. Podemos adicionar archivos al
proyecto con la funcin Add/Remove Files. Los archivos pueden residir
directamente en el subdirectorio del proyecto o en el file system, incluyendo una
direccin de red. AcuBench mantiene vnculos lgicos a los archivos del
proyecto.

Creacin y Organizacin de un Proyecto


Para crear un proyecto utilizamos la opcin New del men File, esta opcin
activa un cuadro de dialogo, como el que se muestra a continuacin (figura 2.2):

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 25 de 125

Capacitacin Introduccin a AcuBench

Figura 2.2

Si seleccionamos el icono Standard Project, genera una estructura de


programa con una ventana grfica estndar, en caso contrario, solo genera la
estructura en el workspace. Este mismo cuadro de dialogo sirve para crear un
programa, una ventana grfica, un archivo o un archivo de datos, los cuales
quedarn automticamente incluidos en el proyecto activo. El proyecto lo puede
crear en un nuevo espacio de trabajo o en uno que usted ya haya creado.
La estructura genera, conforme al estndar de COBOL las secciones que
componen un programa desarrollado en COBOL ver figura 2.3.
El espacio de trabajo (workspace) esta compuesto por 3 pestaas, que
contienen la informacin general del proyecto, estas pestaas son:
Estructural View: contiene la vista de una estructura de un programa en
Acubench.
File View: Contiene la vista y contenido de las carpetas fsicas creadas por
el proyecto y las adicionadas por el Usuario
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 26 de 125

Capacitacin Introduccin a AcuBench


Data View: Contiene la vista de los archivos de datos (.FD) y (.SL).

Figura 2.3

Cuando creamos un proyecto, AcuBench crea una estructura fsica de


directorios y carpetas de almacenamiento de todos los archivos necesarios para
el desarrollo del proyecto.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 27 de 125

Capacitacin Introduccin a AcuBench


La tabla a continuacin muestra el esquema de conformacin de un proyecto:
Proyecto

Carpeta con el nombre del proyecto, la cual contiene los archivos (.pjt
estructura y configuracin del proyecto) (.psf estructura y configuracin del
programa)
Copylib
En esta carpeta se almacenarn los archivos (.cpy - .wrk .def etc) necesarios para el proyecto
FD
En esta carpeta quedarn almacenados los archivos de
datos (.FD) y (.SL) y los archivos (.dlt) que contienen la
definicin estructural de dichos archivos.
List
Contiene los listados (.lst) de los programas despus de
compilar. nicamente los genera si esta habilitada la opcin
por las propiedades del proyecto.
Object
En esta carpeta estarn todos los programas objeto
compilados (.obj - .acu).
Resource Almacena todos los archivos de recursos (imgenes, audio,
etc), necesarios para el proyecto (.bmp - .avi - .jpg)
Screen
Contiene los archivos de cdigo de la Screen Section (.scr)
Source
Los archivos de cdigo fuente (.cbl) estarn en esta carpeta

Podemos crear carpetas adicionales utilizando la opcin New Flder del


men Project.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 28 de 125

Capacitacin Introduccin a AcuBench

Taller de repaso 2.
Complete las siguientes frases:
La opcin _______ me permite personalizar la estructura de mis programas y
de mis directorios de trabajo.
Puedo personalizar las plantillas de generacin de cdigo, para ello utilizo la
opcin _____________ de Options\Code Editor.
Las cinco opciones primarias para configurar mi workbench son:
1._________________________
2._________________________
3._________________________
4._________________________
5._________________________
La opcin Options\Screen Designer\Default me permite _____________ los
atributos de los ____________ grficos.
El workspace esta conformado por 3 pestaas, estas son:
__________________
__________________
__________________
Indique si las siguientes afirmaciones son falsas o verdaderas
Puedo adicionar o eliminar un componente cuando creo un nuevo proyecto.
______________
Cuando genero un documento puedo especificar que seccin de mi programa
generar.
______________
Cuando creo un proyecto debo crear manualmente la estructura fsica en
donde estar ubicados mis archivos.
______________
No es posible adicionar o crear ms de un proyecto en mi espacio de trabajo
______________
Responda a las siguientes preguntas
Cul opcin utilizo para crear una carpeta personalizada en mi espacio de
trabajo? ________________________
Cul opcin me permite tener una vista de mis archivos de datos?
________________________

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 29 de 125

Capacitacin Introduccin a AcuBench

Generacin automatizada de cdigo


AcuBench incluye varias herramientas especiales que permiten desarrollar en
el programa los elementos en un ambiente interactivo y bajo un entorno
grfico. El producto del trabajo alcanzado con estas herramientas es guardado
en un archivo de la estructura del programa o un archivo de la disposicin de
datos.
Cundo usted inicia la accin de generacin (presiona el botn Generate),
AcuBench lee el contenido del archivo de la estructura del programa o el
archivo de la disposicin de datos para generar cdigo de lenguaje comn del
lenguaje de programacin COBOL. Estas facilidades en la generacin de
cdigo se disean para agilizar y simplificar el desarrollo y mantenimiento de
una aplicacin, adicionalmente los programas generados son ms seguros y
robustos.
El uso de estas facilidades es enteramente opcional. Si usted escoge usar
estas herramientas, debe estar preparado para cambiar la forma acerca de
cmo usted piensa que un programa se desarrolla y se genera. Por ejemplo,
considere cmo el Diseador de Pantalla (Screen Designer) se utiliza para
crear una ventana y generar cdigo.
En el Diseador de Pantalla (Screen Designer), las ventanas son creadas
arrastrando y pegando los controles grficos y otros elementos en un rea de
composicin. Las propiedades y los valores especiales se definen en cada
ventana del panel de propiedades del control Property Window. Cundo una
ventana se disea, AcuBench genera el cdigo en un COPY (.scr) y,
posiblemente, directamente en el archivo (".cbl" del programa COBOL). La
generacin del cdigo se realiza basado en la representacin de la ventana
creada y es mantenido en el archivo de la estructura del programa.
En AcuBench, adems de la generacin del cdigo de las ventanas, existe
soporte especial para:
Construir descripciones de archivo con la opcin File Designer.
Crear asociaciones de datos con el Data Set Designer.
Adicionar las secciones Working y Linkage con el Working Storage
Editor y Linkage Editor.
Crear eventos y procedimientos embebidos con el Editor de Eventos
Event Editor.
En general, la generacin de cdigo en AcuBench facilita el ,aprovechamiento
del cdigo generado y asociado al cdigo mediante COPYs que son incluidos
en las diferentes secciones de un programa. Estas declaraciones COPY son
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 30 de 125

Capacitacin Introduccin a AcuBench


automticamente insertadas en el programa entre unas marcas tags
especiales, o bien, puede ser configurado para que usted inserte
declaraciones dentro de estas marcas.
Dependiendo de las herramientas y opciones seleccionadas en el banco de
trabajo (workbench), AcuBench podra generar los siguientes archivos:

Nombre del archivo


Nombre_programa.scr
(Archivo Copy de la Screen)
Nombre_programa.mnu

Cdigo Incluido
Descripcin de las entradas de la Screen Section. Si es
necesario se incluye el llamado a Procedimientos de
Eventos y asociaciones.
Descripcin de la barra de men y llamados a la librera
W$MENU

(Archivo Copy del men)


Nombre_programa.evt

Si es una ventana principal (standard o initial):


Acu-screen_name-msg-close
Acu-screen_name-exit
(Archivo Copy de los eventos y
Acu-screen_name-event
procedimientos embebidos)
Cuando un procedimiento de evento es especificado para
una ventana:
Genera el procedimiento screen-screen_name-event-rtn y
el cdigo del procedimiento del evento
Cuando un procedimiento de evento es especificado para
un control:
Genera el procedimiento screen-screen_name-event y el
cdigo del procedimiento del control
Cuando un procedimiento de excepcin es especificado
para una ventana:
Genera el procedimiento screen-screen_nameexcept-rtn y el cdigo del procedimiento de excepcin.
.
.
.
Nombre_programa.prd
(Archivo Copy
Division)

de

Un programa de la rutina de inicializacin:


Acu-initial-routine
Procedure
Si una screen usa valores de excepcin o terminacin:
acu-screen_name-evaluate-func

Nombre_programa.wrk

Variables definidas para las propiedades de los controles.


Variables definidas en el editor de la Working Storage.
(Archivo Copy de la Working Cuando un conjunto de datos es definido, genera el tem
Storage Section)
del file-status.

Nombre_programa.lks

Variables definidas en el editor de la Linkage.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 31 de 125

Capacitacin Introduccin a AcuBench


(Archivo Copy de la Linkage
Section)
Nombre_programa.cbl

Atributos y comentarios desde el dialogo de propiedades


del programa.

(Todo el cdigo es generado


entre un conjunto de marcas)
Declaraciones de los COPY generados por los archivos.

Estrategia de desarrollo
AcuBench soporta una amplia variedad de metodologas para desarrollar y
mantener aplicaciones COBOL. La metodologa que emplee es determinada
por el conjunto de herramientas empleadas, las necesidades de su aplicacin
y su metodologa para el desarrollo de software. Si planea usar las
herramientas deI banco de trabajo (workbench) para generar el cdigo
automticamente, como el diseador de ventanas (Screen Designer) o el
diseador de archivos (File Designer), algunos elementos de sus programas,
contenido y estructura sern determinados por los mtodos usados por estas
herramientas.

Consideraciones generales
Sin tener en cuenta la metodologa que usted use, hay ciertos aspectos a
tener en cuenta para el correcto uso y aprovechamiento de AcuBench, en
cada proyecto que usted genere.
Verifique y ajuste, si lo considera, los valores para los prefijos utilizados en
el proyecto.
Si cambia el nombre por defecto de un subdirectorio de proyecto, puede
necesitar verificar y ajustar ciertos valore del proyecto.
Considere colocar sus archivos de proyecto directamente en el directorio
de proyectos.
Verifique todos los valores de configuracin de Compilacin, Entorno y
Runtime.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 32 de 125

Capacitacin Desarrollando un Proyecto

Unidad 3: Desarrollando un Proyecto con AcuBench


Hasta ahora hemos visto y aprendido el uso del entorno de trabajo ofrecido por
AcuBench, a partir de esta unidad comenzaremos a trabajar en el desarrollo de un
proyecto, utilizando nuestros conocimientos del lenguaje de programacin COBOL,
en conjunto a los conocimientos adquiridos de la herramienta de desarrollo
AcuBench.

Objetivos
Profundizar en el uso y conocimiento de la herramienta de desarrollo
AcuBench.
Aprender el uso y aplicacin de los controles grficos.
Aprender el uso de la programacin orientada a eventos.
Generar un proyecto desarrollado en AcuBench, utilizando la Generacin
automatizada de cdigo.

Crear un proyecto utilizando AcuBench


Tpicamente, un proyecto se compone de uno o ms programas (.cbl), la(s)
ventana(s) grfica(s) relacionada(s) (.scr), los COPYs, recursos, y otros
archivos. Cundo usted crea un proyecto, AcuBench crea la infraestructura
para el proyecto inclusive un conjunto de carpetas (guas de trabajo).
Opcionalmente, usted puede adicionar al proyecto un archivo o una ventana
originado de una plantilla y un archivo (".psf" de la estructura del programa).
Una vez que un proyecto es creado, su nombre puede cambiar, pero no puede
cambiar el directorio del proyecto, ni los nombres de cualquiera de los
subdirectorios. Pasos para crear un proyecto:
1. Si los archivos de su proyecto residen en un servidor remoto, seleccione el
comando Build/Use Thin Client. Este comando habilita el uso de los
comandos relacionados con Thin client en las opciones de configuracin
de su proyecto. Fjese que en la barra de ttulo de la ventana de su
aplicacin principal para proyectos remotos, incluye la frase "Thin Client
Enabled.".
2. Seleccione New desde el men File y haga clic en la pestaa Project .
3. Seleccione una plantilla de proyecto.
La plantilla estndar (Standard template) crea un proyecto y un
programa. El programa adems del psf, crea una ventana grfica
estndar.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 33 de 125

Capacitacin Desarrollando un Proyecto


La plantilla en blanco (Blank template), crea nicamente una
estructura de proyecto vaca.
4. Entre el nombre y localizacin del proyecto en el campo Location.
5. Seleccione una opcin de cualquiera de las dos para incluir el proyecto en
el actual espacio de trabajo (workspace) o crear el proyecto en un Nuevo
espacio de trabajo.
6. Si desea cambiar el nombre de cualquiera de los directorios estndar del
proyecto, haga clic en el botn More Info y realice los cambios
deseados en el dialogo Project Information.
7. Clic en el botn OK para crear el proyecto.
8. Aparece en el espacio de trabajo la estructura del programa primario (.cbl)
y los componentes del mismo.
Para adicionar archivos y/o recursos a su proyecto, haga clic en el botn
Add/Remove Files del men Project.
Nota: No puede abrir, cerrar y guardar proyectos individuales. Cada proyecto es miembro de
un espacio de trabajo, y es ste espacio de trabajo el que puede ser abierto, cerrado o
guardado.
Demostracin en clase: A continuacin se explicar como trabajar con cada una de las
pestaas del espacio de trabajo (Workspace).

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 34 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.1
Hasta ahora...

Ha conocido la conformacin y configuracin de su banco de trabajo


(workbench) y la forma de crear un proyecto.

Objetivos

Usar los conocimientos adquiridos hasta ahora para crear un


proyecto en AcuBench.
Identificar las diferentes partes que componen un proyecto.

Tareas generales

Realice una verificacin de la configuracin de su entorno y


realice los siguientes cambios en los prefijos por defecto, luego
guarde esos cambios.

Utilizando AcuBench cree un


proyecto estndar llamado
CAPACITACIN.
El proyecto debe ser ubicado en el drive C: de su disco duro.
Identifique cada uno de los componentes de su proyecto.
En el espacio de trabajo, cambie el nombre del programa
Programa x Lab-01.
Cree una estructura de datos por el Data View de su espacio de
trabajo con la siguiente informacin:
Tabla
Nombre archivo
Organizacin
Acceso
File Status

Clientes
Clientes.dat
Indexada
Dinmico
Status-01

Cree ahora una definicin para el archivo de datos, con la


siguiente informacin:
Nombre Campo
LLave
Picture
CD-CLIENTE
PK
9(5)
ID-CLIENTE
AK-U
9(12)
DE-CLIENTE
AK-D
X(80)
DI-CLIENTE
X(80)
TL-CLIENTE
9(15)
SX-CLIENTE
AK-D
X
Genere el Archivo de datos.
Cree y asocie la estructura de datos en el espacio de trabajo.
Genere la estructura general de su programa.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 35 de 125

Capacitacin Desarrollando un Proyecto

Crear una GUI con AcuBench


La seccin Screen Designer es la ventana primaria para disear una
aplicacin de pantallas grficas o basadas en carcter y es la base para todo
el diseo de pantallas. Esta unidad describe los componentes para el diseo
de una ventana utilizando el Screen Designer, la ventana de propiedades
Property window, la herramienta de componentes Component Toolbox, y
otras funciones del espacio de trabajo workbench que esta directamente
relacionadas con el diseador de ventanas Screen Designer.
Por defecto, una ventana contiene una barra de ttulo estndar; botones para
Minimizar, Maximizar y Cerrar; y un borde ajustable. La barra de ttulo contiene
el nombre del proyecto, el nombre del programa, y el nombre del archivo de la
screen.
El Screen Designer permite crear ventanas en entorno grfico y carcter. La
aplicacin puede contener ventanas graficas y de carcter, puesto que la
funcin de generacin automtica de cdigo, crea el cdigo para las etiquetas
de los dos tipos de ventanas diferencindolas en la Screen Section.
Una screen form es una cuadricula WYSIWYG (What You See Is What You
Get - lo que t ves es lo que t obtienes), en la cual se desarrolla una ventana
de aplicacin grfica o de carcter y que hace parte de su aplicacin de
interfaz de usuario. Similar a los controles, una screen form tiene
propiedades y eventos que se pueden aplicar de acuerdo a las necesidades
de diseo. Las propiedades especificadas para la screen form llegarn a ser
las propiedades de la ventana en su programa COBOL.

La caja de Componentes Component Toolbox.


El Component Toolbox es el rea del workbench que contiene iconos para
los controles que usted coloca en la screen form, cuando crea las ventanas
grficas. La caja de herramientas se divide en dos secciones. La primera
seccin contiene controles estndar, y usted puede verlos haciendo clic en el
botn Standard. Algunos controles estndar son soportados en ambos
entornos, grafico y carcter. Los iconos que no son soportados para sistemas
de ambiente carcter no sern habilitados en el toolbox cuando trabaje en
formas de ventanas de ambiente carcter. La otra seccin contiene controles
ActiveX, visualizndolos haciendo clic en el bot Actives. Los controles
ActiveX estarn disponibles nicamente para entornos de ambiente grfico.

Los controles estndar - Standard Control.

Los controles estndar y elementos grficos que aparecen en el Component


Toolbox son descritos en la siguiente tabla:
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 36 de 125

Capacitacin Desarrollando un Proyecto

Icono

Elemento
Selector

Label

Push Button

Entry Field
Check Box

Radio Button

Scroll Bar

Combo Box

Bitmap
Bar
Frame

List Box

Menu Designer

Toolbar Designer

Tab

Descripcin
Limpia la seleccin de un control en el Component
Toolbox y permite seleccionar, mover, y cambiar el
tamao de los controles en una ventana.
Permite ingresar una etiqueta de texto (como un
encabezado o ttulo) y no puede ser modificado por le
usuario.
Dibuja un rectngulo acompaado con una etiqueta de
texto para que cuando el usuario haga clic efectu una
accin (Ej. Botn Aceptar o Cancelar).
Dibuja un campo rectangular en el cual el usuario puede
ingresar texto o datos.
Crea una caja acompaada de una etiqueta de texto, en
la cual el usuario puede hacer clic para seleccionar o
deseleccionar una opcin. Normalmente un Check box
se usa para una opcin combinada que pueda ser
activada o desactivada.
Crea un botn circular acompaado de una etiqueta de
texto, este control es excluyente, es decir, solo permite
seleccionar uno en un grupo de controles Radio Button.
Dibuja un rectngulo que contiene una caja de
desplazamiento y unas flechas de desplazamiento en
cada punta. El usuario tpicamente usa una barra de
desplazamiento para navegar a travs de la informacin
de una lista, sin embargo una barra de desplazamiento
puede servir como un dispositivo de entrada.
Crea un control de una caja combinada de edicin y lista.
El usuario puede seleccionar un tem de la lista o
ingresar texto en la caja de edicin.
Especifica un rea para visualizar una imagen grfica en
formato ("*.bmp", "*.dib", "*.jpg", "*.jpe", "*.jpeg").
Permite dibujar una lnea vertical u horizontal.
Dibuja una caja usada para agrupar un conjunto de
controles. Puede colocar controles dentro de los frames
para separarlos visualmente de otros controles.
Crea un rectngulo conteniendo una lista de tem los
cuales el usuario puede seleccionar. Si hay varios tem
en la lista, el usuario puede navegar usando una barra
de desplazamiento vertical u horizontal
Crea una barra de men para una ventana. Los mens
pueden estar compuestos de ttulos de men, tem de
men y barras de separacin. Cuando hace doble clic en
el icono Menu Designer en la ventana, el cuadro de
dialogo del men es visualizado. Este dialogo permite
adicionar, borrar, mover o renombrar un tem.
Crea una coleccin de controles organizados en una
barra de herramientas. El toolbar aparece debajo del
Menu Bar (si ha sido creado), o en el borde superior de
la ventana si el Menu Bar no existe.
Crea un control el cual combina una caja con una
etiqueta que simula el aspecto de un archivo de
carpetas. El usuario puede hacer clic en cualquier

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 37 de 125

Capacitacin Desarrollando un Proyecto

Grid

Tree View

Browser

Status Bar

pestaa para traerla al frente.


Crea una tabla Bi-dimensional de archivos de datos.
Cada elemento de esta tabla, es llamado una celda ,
puede contener texto, imagen o ambas.
Crea una lista de datos jerrquicos, similar a la vista que
usted tiene cuando ejecuta el Explorador de Windows.
Esta lista es endentada para mostrar la relacin en los
datos.
Permite al usuario tener una vista de la ventana principal
de Internet Explorer en una ventana creada por el
desarrollador. Permite una gran funcionalidad para
visualizar pginas web con contenido HTML, Scrip,
controles ActiveX y contenidos Java applet. Este control
tambin alberga y soporta documentos OLE,
hipervnculos y objetos Windows, como archivos y
carpetas.
Crea una barra de estado al final de su ventana.

Los controles ActiveX

AcuBench provee soporte para la inclusin de controles ActiveX de programas


que corren bajo Microsoft Windows.
Los controles ActiveX que sean incluidos en su programa deben ser instalados
y licenciados de acuerdo con los requerimientos del vendedor en su sistema
de desarrollo y en cada sistema que sea instalado su programa.
Si desea obtener ms informacin al respecto remtase al manual en lnea de
AcuBench en su apartado sobre controles ActiveX.

La ventana de propiedades Property Window.


La ventana de propiedades es su interfase para controlar la apariencia y
comportamiento de la forma o controles seleccionados de su ventana.
Puede personalizar o cambiar la fuente de la ventana de propiedades
presionando el botn derecho del mouse en la ventana y luego seleccionado la
opcin Font.
Este comando muestra el cuadro de dialogo de fuentes, desde el cual puede
seleccionar una fuente diferente. Tambin puede visualizar u ocultar la ventana
de propiedades seleccionado el comando View/Property Window o
presionando el botn derecho del mouse y seleccionando la opcin Hide. De
igual forma puede mover la ventana desde su posicin por defecto (lado
derecho del workbench) o cambindola a una posicin flotante seleccionando el
botn derecho del mouse en la ventana y luego presionar el comando Allow
Docking.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 38 de 125

Capacitacin Desarrollando un Proyecto

Visin general de los controles grficos


ACUCOBOL-GT permite crea, mostrar y procesar controles grficos. Los
controles grficos son tambin llamados objetos grficos o widgets.
Los controles grficos tienen varios componentes importantes:
Cada control es de un tipo fundamental, como un push button o check box
(este es tambin llamado un control de clase).
Cada control tiene un handle o manejador que distingue o es asociado a un
control nico.
Cada control tiene un conjunto de propiedades comunes, definidas para el
control mismo.
Las propiedades comunes que aplican a virtualmente todo los controles
incluyen:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 39 de 125

Capacitacin Desarrollando un Proyecto


1. location: Cada control tiene una localizacin en la ventana. La localizacin
esta dada en coordenadas de filas y columnas, especificadas a partir de la
esquina superior izquierda del control en la ventana. Para un entorno nogrfico se utilizan las propiedades CLINE y CCOL para ubicar la posicin de
un control.
2. size: Los controles tiene informacin de tamao. El tamao de la
informacin es dado en ancho y alto. El significado exacto del ancho y alto
depende del tipo de control. Algunos tipos de control tienen un tamao
predefinido (en una o dos dimensiones). Las coordenadas en ambiente
carcter CSIZE y CLINES son usadas para especificar el tamao de un
control alterno en un ambiente no-grfico.
3. titles Algunos controles pueden tener ttulos. Usualmente aparece como una
etiqueta de texto pegada al control. Un ejemplo de ello, es el texto incluido
en un push button o el texto dentro de un check box. Algunos controles,
como un entry field, no usan ttulos.
4. value Un control tambin tiene un valor. El valor de un control El valor de un
control es la porcin modificable por usuario de ese control. Para un entry
field, este es un texto ingresado dentro de la caja. Para check box, el valor
es, s la caja es activada o no. Algunos controles, como un push button, no
tienen valores. El rango exacto de valores permitidos esta dado por el tipo
de control.
5. color Los controles tiene color. Para el primer plano (foreground) y el plano
de fondo (background) aplican los colores. El contenido exacto de la
informacin del color depende del tipo de control. Algunos controles o host
systems pueden limitar la opcin del color.
6. font Algunos controles tienen una fuente que es usada cuando el texto es
visualizado en conjunto con el control.
7. styles Controles tienen propiedades de estilos. Tpicamente afectan la
presentacin visual del control. Por ejemplo, un push button puede tener el
estilo DEFAULT, causando que el push button contenga un borde grueso el
cual indica que es un botn por defecto.
Existen algunas propiedades comunes que determinan cuando un control es
mostrado (VISIBLE), cuando un control puede interactuar con el usuario
(ENABLED), o cuando un control tiene una tecla clave la cual el usuario puede
activar con el teclado. Por ejemplo (Ctrl + S).

Propiedades Especiales
Algunos estilos aplican para todos los controles. Sin embargo, cada control
tiene propiedades especiales, las cuales se vern a lo largo del curso, por ahora
las mencionamos para que el estudiante se familiarice con los trminos.
Tipo de Control
Label
Entry field

Propiedad especial
LABEL-OFFSET (numrico)
MAX-TEXT (numrico)

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 40 de 125

Capacitacin Desarrollando un Proyecto

Push Button

Check Box

Radio Button

List Box

Combo Box

Frame

Bar

MAX-LINES (numrico)
CURSOR (numrico)
CURSOR-COL (numrico)
CURSOR-ROW (numrico)
ACTION (numrico)
MIN-VAL (numrico)
MAX-VAL (numrico)
SELECTION-TEXT (alfanumrico)
AUTO-DECIMAL (numrico)
BITMAP-NUMBER (numrico)
BITMAP-HANDLE (handle)
TERMINATION-VALUE (numrico)
EXCEPTION-VALUE (numrico)
BITMAP-NUMBER (numrico)
BITMAP-HANDLE (handle)
TERMINATION-VALUE (numrico)
EXCEPTION-VALUE (numrico)
BITMAP-NUMBER (numrico)
BITMAP-HANDLE (handle)
TERMINATION-VALUE (numrico)
EXCEPTION-VALUE (numrico)
GROUP (numrico)
GROUP-VALUE (numrico)
ITEM-TO-ADD (alfanumrico)
RESET-LIST (numrico)
MASS-UPDATE (numrico)
ITEM-TO-DELETE (numrico)
INSERTION-INDEX (numrico)
SEARCH-TEXT (alfanumrico)
DATA-COLUMNS (numrico)
DISPLAY-COLUMNS (numrico)
ALIGNMENT (alfanumrico)
SEPARATION (separacin)
DIVIDERS (numrico)
SELECTION-INDEX (numrico)
THUMB-POSITION (numrico)
QUERY-INDEX (numrico)
ITEM-VALUE (alfanumrico)
TERMINATION-VALUE (numrico)
EXCEPTION-VALUE (numrico)
MAX-TEXT (numrico)
ITEM-TO-ADD (alfanumrico)
MASS-UPDATE (numrico)
RESET-LIST (numrico)
ITEM-TO-DELETE (numrico)
INSERTION-INDEX (numrico)
TERMINATION-VALUE (numrico)
EXCEPTION-VALUE (numrico)
HIGH-COLOR (numrico)
LOW-COLOR (numrico)
FILL-COLOR (numrico)
FILL-PERCENT (numrico)
FILL-COLOR2 (numrico)
TITLE-POSITION (numrico)
WIDTH (numrico) (Windows nicamente)
COLORS (numrico) (Windows nicamente)
SHADING (numrico) (Windows nicamente)
POSITION-SHIFT (numrico) (Windows nicamente)
TRAILING-SHIFT (numrico) (Windows nicamente)
LEADING-SHIFT (numrico) (Windows nicamente)

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 41 de 125

Capacitacin Desarrollando un Proyecto


Scroll Bar

Tab

Bitmap

Grid

MIN-VAL (numrico)
MAX-VAL (numrico)
PAGE-SIZE (numrico)
TAB-TO-ADD (alfanumrico)
TAB-TO-DELETE (numrico)
RESET-TABS (numrico)
BITMAP-HANDLE (numrico)
BITMAP-WIDTH
BITMAP-NUMBER
BITMAP-HANDLE (numrico)
BITMAP-NUMBER (numrico)
BITMAP-START (numrico)
BITMAP-END (numrico)
BITMAP-TIMER (numrico)
ACTION (numrico)
ALIGNMENT (alfanumrico)
BITMAP (numrico)
BITMAP-NUMBER (numrico)
BITMAP-TRAILING (numrico)
BITMAP-WIDTH (numrico)
CELL-COLOR (numrico)
CELL-DATA (alfanumrico)
CELL-FONT (numrico)
COLUMN-COLOR (numrico)
COLUMN-DIVIDERS (numrico)
COLUMN-FONT (numrico)
CURSOR-COLOR (numrico)
CURSOR-FRAME-WIDTH (numrico)
CURSOR-X (numrico)
CURSOR-Y (numrico)
DATA-COLUMNS (numrico)
DATA-TYPES (alfanumrico)
DISPLAY-COLUMNS (numrico)
DIVIDER-COLOR (numrico)
DRAG-COLOR (numrico)
END-COLOR (numrico)
FILE-POS (numrico)
HEADING-COLOR (numrico)
HEADING-DIVIDER-COLOR (numrico)
HEADING-FONT (numrico)
HIDDEN-DATA (alfanumrico)
HSCROLL-POS (numrico)
INSERT-ROWS (numrico)
INSERTION-INDEX (numrico)
LAST-ROW (numrico)
MASS-UPDATE (numrico)
NUM-COL-HEADINGS
NUM-ROWS (numrico)
RECORD-DATA (alfanumrico)
RECORD-TO-ADD (alfanumrico)
RECORD-TO-DELETE (numrico)
REGION-COLOR (numrico)
RESET-GRID (numrico)
ROW-COLOR (numrico)
ROW-COLOR-PATTERN (numrico)
ROW-DIVIDERS (numrico)
ROW-FONT (numrico)
SEARCH-OPTIONS (alfanumrico)
SEARCH-TEXT
SEPARATION (numrico)

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 42 de 125

Capacitacin Desarrollando un Proyecto

Tree View

Status Bar

START-X (numrico)
START-Y (numrico)
VIRTUAL-WIDTH (numrico)
VPADDING (numrico)
VSCROLL-POS (numrico)
X (numrico)
Y (numrico)
BITMAP-HANDLE (numrico)
BITMAP-NUMBER (numeric)
BITMAP-WIDTH (numrico)
ENSURE-VISIBLE (numrico)
EXPAND (numrico)
HAS-CHILDREN (numrico)
HIDDEN-DATA (alphanumrico)
ITEM (numrico)
ITEM-TEXT (alphanumrico)
ITEM-TO-ADD (alphanumrico)
ITEM-TO-DELETE (numrico)
ITEM-TO-EMPTY (numrico)
NEXT-ITEM (numrico)
PARENT (numrico)
PLACEMENT (numrico)
RESET-LIST (numrico)
PANEL-WIDTHS (numeric)
PANEL-STYLE (numeric)
PANEL-TEXT (alphanumeric)
PANEL-INDEX (numeric)

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 43 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.2
Hasta ahora...

Reconoce e identifica la caja de componentes y su contenido,


entendiendo el concepto de controles grficos .

Objetivos

Pegar algunos controles grficos.


Identificar los controles creados en la ventana grfica.
Asociar validaciones y comportamientos a los controles
Asociar algunos controles al archivo de datos CLIENTES.

Tareas generales

Cree una carpeta bajo C:\CAPACITACION, llamada Datos.


Por la opcin Project\Settings, aada una nueva variable de
entorno en la pestaa Environment, llamada FILE_PREFIX, con
el valor .\Datos.
Asgnele los siguientes valores a la ventana
SIZE = 50
LINES = 30
Type = Standard
Title = Clientes
Cree un Label y en ttulo escriba Cdigo.
Cree un Entry Field.
Asocie el contenido del archivo de datos al Entry Field, creado y
asigne las propiedades correspondientes.
Cree un Push button llamado Salir
Asocie el estilo Cancel Button.
Genere y ejecute la aplicacin, verificando las validaciones y el
comportamiento de los botones.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 44 de 125

Capacitacin Desarrollando un Proyecto

Visin General de los Eventos


Este capitulo describe los eventos que pueden ser generados cuando utiliza
una ventana grfica y controles en un entorno de eventos-conducidos.
Los Eventos son clasificados en comandos de eventos, notificacin de eventos
y mensajes. Comnmente hablando los eventos corresponden a acciones
dadas por el usuario que el programa necesita para ejecutarse (por ejemplo,
cerrar una ventana o presionar un botn). Los Comandos de evento inician
con el Prefijo "CMD". Notificacin de evento con "NTF", y mensajes con
"MSG".
Cuando un comando o una notificacin de un evento ocurre, el runtime del
sistema asigna un valor al tem EVENT STATUS y en ese momento termina el
actual ACCEPT con un valor de excepcin de "96".
Ntese que la terminacin ocurre cuando la declaracin particular ACCEPT,
no permita normalmente excepciones. El programa examina el tem EVENT
STATUS para determinar que ha sucedido.
La frase EVENT STATUS es definida de la siguiente forma:
01

EVENT-STATUS.
03 EVENT-TYPE
03 EVENT-WINDOW-HANDLE
03 EVENT-CONTROL-HANDLE
03 EVENT-CONTROL-ID
03 EVENT-DATA-1
03 EVENT-DATA-2
03 EVENT-ACTION

PIC X(4) COMP-X.


USAGE HANDLE OF WINDOW.
USAGE HANDLE.
PIC XX COMP-X.
USAGE SIGNED-SHORT.
USAGE SIGNED-LONG.
PIC X COMP-X.

Existen eventos para las ventanas Windows Events, para los controles
Control Event, y para los mens Men Events.

Eventos de ventanas (Windows Events).


Los valores EVENT-CONTROL-HANDLE y EVENT-CONTROL-ID sern
siempre cero (NULL) cuando un evento de ventana ocurre. Los valores
retornados son almacenados como enteros con signo (signed) y pueden
retornar valores negativos.

CMD-CLOSE

Valor 1

Este evento indica que el usuario ha seleccionado la opcin cerrar desde el men del
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 45 de 125

Capacitacin Desarrollando un Proyecto


sistema de la ventana activa. La aplicacin podra responder ocultando o
destruyendo la ventana. El item EVENT-WINDOW-HANDLE contiene el manejador
(handle) de la ventana que el usuario desea cerrar. Los valores EVENT-DATA-1 y
EVENT-DATA-2 no son usados. Las ventanas flotantes (floating) siempre retornan la
excepcin CMD-CLOSE.

CMD-ACTIVATE

Valor 6

Este evento ocurre cuando una ventana es activada por el usuario, pero unicamente
si la ventana previa pertenece al mismo programa. (p.e., el usuario intercambia
ventanas dentro del programa, y no transfiere el control desde otro programa). La
respuesta normal es un ACCEPT en la nueva ventana activa, construyendo en la
ventana activa del programa un punto de partida. Si utiliza cualquiera de las opciones
LINK o BIND TO THREAD cuando crea una ventana, el runtime puede
automticamente manejar este evento. EVENT-DATA-1 y EVENT-DATA-2 no son
usados.

NTF-RESIZED

Valor 4114

Este evento ocurre cuando una ventana reajustable no tiene la opcin AUTORESIZE. La aplicacin tpicamente reconstruye la ventana en respuesta al evento.
EVENT-DATA-1 contiene el nuevo alto y EVENT-DATA-2 contiene el nuevo ancho,
ambos son medidos en centsimas de celdas (p.e. un ancho de 80 columnas en la
ventana es expresado como "8000"). Use el verbo INQUIRE para obtener las nuevas
dimensiones.

MSG-CLOSE

Valor 16415

Este evento ocurre cuando el usuario hace clic en Cerrar del dialogo del men del
sistema de Windows, o teclea en el host system la secuencia de teclas para cerrar
una aplicacin (Alt-F4 para Windows).

Eventos de Controles (Control Events).


Los siguientes eventos son asociados con los controles:
CMD-CLICKED

Valor 4

Este evento ocurre para los siguientes controles: push button, check box, y radio
button, aunque NOTIFY no sea especificado. Especificando NOTIFY crea un evento
de terminacin para check boxes y radio button. CMD-CLICKED es un evento de
terminacin para push button. Los valores EVENT-DATA-1 y EVENT-DATA-2 no son
usados.

CMD-DBLCLICK

Valor 5

Indica que el usuario ha hecho doble clic sobre un tem en un list-box o combo-box
(retorna este evento), siempre y cuando este control no tenga un TERMINATIONVALUE o EXCEPTION-VALUE asociado. Esto ocurre si la aplicacin tiene NOTIFYDBLCLICK. EVENT-DATA-1 es el ndice del tem seleccionado en la lista
(comenzando en "1"). EVENT-DATA-2 no se usa.

CMD-GOTO

Valor 3

Indica que el usuario activa el control que genera el evento. Esto sucede cuando el
usuario hace clic en un control inactivo con el mouse o teclea un conjunto de teclas
asignado. La aplicacin desempea un ACCEPT normal en respuesta al control.
(Generalmente no es una buena tcnica de programacin controlar el evento CMDGOTO, porque esta impidiendo que el control se desempee normalmente). Los
valores EVENT-DATA-1 y EVENT-DATA-2 no son usados.

CMD-HELP

Valor 8

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 46 de 125

Capacitacin Desarrollando un Proyecto


Este evento ocurre cuando la ayuda es requerida desde el control descrito en
EVENT-CONTROL-HANDLE. El ID del control de ayuda es almacenado en EVENTDATA-2 (este valor es cero si el control no tiene un help ID). Puesto que este evento
es manejado por el Runtime, no es un evento de terminacin en su programa. Sin
embargo, puede detectar este evento en el procedimiento de control de eventos.
Tambin puede manejar este evento dentro del procedimiento de eventos y prevenir
el manejo automtico por el runtime, configurando el elemento EVENT-ACTIONCONTINUE del tem de datos EVENT-STATUS.

CMD-TABCHANGED

Valor 7

Este evento ocurre cuando el usuario selecciona una nueva pestaa desde un control
TAB. El valor de la pestaa seleccionada es almacenado en EVENT-DATA-1.
Distinto a algunos eventos, realiza cualquier validacin especificada en el ACCEPT, y
en los campos actuales cuando un AFTER PROCEDURE es ejecutado antes de un
EXCEPTION PROCEDURE. Este evento se asegura que el usuario no pueda usar el
control TAB para salir de una forma cuando contiene datos invalidos. EVENT-DATA2 no es usado.

MSG-AX-EVENT

Valor 16436

Este evento ocurre cuando un control ActiveX ha lanzado un evento. EVENT-DATA2 contiene el tipo de evento del control ActiveX. Dos pares de rutinas de librerias
C$GETEVENTDATA/C$SETEVENTDATA
y
C$GETEVENTPARAM/C$SETEVENTPARAM son usadas para obtener y fijar el
parametro de evento.

MSG-BEGIN-DRAG

Valor 16406

Este es generado cuando un usuario comienza el avance en un control grid mientras


presiona el botn izquierdo del mouse. Es generado nicamente para celdas sin
encabezado e inmediatamente antes del primer evento correspondiente a MSGGOTO-CELL-DRAG. EVENT-DATA-1 contiene el nmero de la columna de la celda
donde el usuario comienza el avance del mouse, y EVENT-DATA-2 contiene la
nmero de la fila de la celda. Las propiedades X y Y son fijadas mientras dure el
evento. Las propiedades START-X y START-Y son tambin fijados por estos valores
("X" y "Y," son retenidos despus que el evento ha finalizado).

MSG-BEGIN-ENTRY

Valor 16392

Este evento ocurre cuando el usuario inicia una modificacin de una celda en un
control grid. EVENT-DATA-1 contiene el nmero de la columna de la celda, y
EVENT-DATA-2 contiene el nmero del registro. Por conveniencia, las propiedades X
y Y son fijadas por el cursor de la celda durante la duracin del evento. Esto le
permite obtener fcilmente una imagen antes de efectuar un INQUIRE en un CELLDATA.
Puede validar el ingreso de datos en una celda fijando el valor EVENT-ACTION a
EVENT-ACTION-FAIL.

MSG-BITMAP-CLICKED

Valor 16400

Este evento ocurre cuando el usuario hace clic en el botn izquierdo en el contenido
de un bitmap en un control grid. EVENT-DATA-1 contiene el nmero de la columna
de la celda, y EVENT-DATA-2 contiene el nmero del registro de la celda. Por
conveniencia, las propiedades X y Y son fijadas por el cursor de la celda durante la
duracin del evento.
Puede validar la accin en una celda fijando el valor EVENT-ACTION a EVENTACTION-FAIL.

MSG-BITMAP-DBLCLICK

Valor 16401

Este evento ocurre cuando el usuario hace doble clic en un bitmap contenido en un
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 47 de 125

Capacitacin Desarrollando un Proyecto


control grid. EVENT-DATA-1 contiene el nmero de la columna de la celda, y
EVENT-DATA-2 contiene el nmero del registro de la celda. Por conveniencia, las
propiedades X y Y son fijadas por el cursor de la celda durante la duracin del
evento.
Puede validar la accin en una celda fijando el valor EVENT-ACTION a EVENTACTION-FAIL.

MSG-BEGIN-HEADING-DRAG

Valor 16408

Este es generado cuando un usuario comienza el avance en un control grid mientras


presiona el botn izquierdo del mouse. nicamente para celdas de encabezado e
inmediatamente antes del primer evento correspondiente a MSG-HEADINGDRAGGED. EVENT-DATA-1 contiene el nmero de la columna de la celda donde el
usuario comienza el avance del mouse, y EVENT-DATA-2 contiene la nmero de la
fila de la celda. Las propiedades X y Y son fijadas mientras dure el evento. Las
propiedades START-X y START-Y son tambin fijados por estos valores ("X" y "Y,"
son retenidos despus que el evento ha finalizado).

MSG-CANCEL-ENTRY

Valor 16394

Este evento ocurre cuando el usuario sale del modo de edicin de una celda en un
control grid, presionando la tecla Esc. El contenido de la celda es restaurado al
contenido antes de ingresar a la celda. EVENT-DATA-1 contiene el nmero de la
columna de la celda, y EVENT-DATA-2 contiene el nmero del registro de la celda.

MSG-COL-WIDTH-CHANGED

Valor 16410

Ocurre cuando el usuario cambia el ancho de una columna en un control grid. Para
que esto ocurra, el grid debe tener el estilo ADJUSTABLE-COLUMNS y debe tener
nicamente una fila por registro. EVENT-DATA-1 contiene el nmero de la columna
desde donde se inicia el cambio. EVENT-DATA-2 contiene el nuevo ancho (en
caracteres).

MSG-END-DRAG

Valor 16407

Este evento indica que el usuario ha soltado el botn del mouse despus de avanzar
durante una operacin normal (no encabezado) en un control grid. EVENT-DATA-1
contiene el nmero de la columna de la celda donde el usuario finaliz el avance del
mouse. EVENT-DATA-2 contiene el nmero de la fila de la celda.

MSG-END-HEADING-DRAG

Valor 16409

Este evento indica que el usuario ha soltado el botn del mouse despus de avanzar
durante una operacin normal en un encabezado de un control grid.
EVENT-DATA-1 contiene el nmero de la columna de encabezado de la celda donde
el usuario finaliz el avance del mouse. EVENT-DATA-2 contiene el nmero de la fila
de encabezado de la celda.

MSG-FINISH-ENTRY

Valor 16393

Este evento ocurre cuando el usuario finaliza la edicin de una celda en un control
grid. Puede utilizarlo para validar el contenido y formateo de cualquier celda de datos.
EVENT-DATA-1 contiene el nmero de la columna de la celda, y EVENT-DATA-2
contiene el nmero del registro. Por conveniencia, las propiedades X y Y son fijadas
por el cursor en la celda, durante la duracin del evento. Esto permite recuperar el
dato completo, utilizando el verbo INQUIRE en un CELL-DATA. Para modificar el
dato realice la obtencin del dato con el verbo INQUIRE en un CELL-DATA, luego
modifique la informacin, y finalmente utilice el verbo MODIFY CELL-DATA para
cargar el dato modificado.
Puede validar el dato ingresado por el usuario y forzar a que el cursor quede fijo en la
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 48 de 125

Capacitacin Desarrollando un Proyecto


celda donde se encuentra el dato invalido, para ello utilice la siguiente instruccin
EVENT-ACTION to EVENT-ACTION-FAIL.

MSG-GOTO-CELL

Valor 16395

Este evento es generado cuando el usuario mueve el cursor, utilizando el teclado, a


una nueva celda en control grid. EVENT-DATA-1 contiene el nmero de la columna
de la celda donde se inicio el movimiento, y EVENT-DATA-2 contiene el numero del
registro de la celda. Puede deteminar cual celda el usuario esta moviendo utilizando
el verbo INQUIRE junto con CURSOR-X y CURSOR-Y.

MSG-GOTO-CELL-DRAG

Valor 16404

Este es generado cuando el usuario mueve el mouse en un nuevo control grid


mientras presiona el botn izquierdo del mouse. Ocurre nicamente si el usuario
hace clic en una celda que no sea encabezado.

MSG-GOTO-CELL-MOUSE

Valor 16396

Este evento es generado cuando el usuario mueve el cursor en una celda de un


control grid utilizando el mouse. Este evento es similar a MSG-GOTO-CELL, que
genera un mensaje cuando el cursor es movido por el teclado.
Una razn para querer controlar el movimiento que realiza el usuario en el grid, es
prevenir el ingreso a una determinada celda ya sea utilizando el teclado o el mouse,
o, ubicar el cursor en una celda especifica.

MSG-GRID-RBUTTON-DOWN

Valor 16426

Este evento ocurre en el control grid cuando el usuario oprime el botn derecho del
mouse. EVENT-DATA-1 es fijado con el nmero de la columna de la celda
seleccionada, EVENT-DATA-2 es fijado con el nmero de la fila. Si el clic derecho es
realizado fuera de una celda, estos valores sern cero.

MSG-GRID-RBUTTON-UP

Valor 16427

Este evento ocurre cuando el usuario libera o suelta el botn derecho del mouse. El
evento se comporta de la misma forma que el evento MSG-GRID-RBUTTON-DOWN
descrito anteriormente. Una vez este evento finaliza el proceso, un men pop-up
asociado con el grid es visualizado.
Una forma en la cual usted puede usar este evento, es seleccionando un apropiado
men pop-up dependiendo de la celda seleccionada.
Por ejemplo, usted deseara poder asignar diferentes ventanas pop-up para el
encabezado del cuerpo de un grid . Usted puede examinar la celda seleccionada y
asociar el apropiado men pop-up para el control.

MSG-HEADING-CLICKED

Valor 16402

Este evento ocurre cuando el usuario hace clic con el botn izquierdo en una fila o
columna de encabezado.
EVENT-DATA-1 contiene el nmero de la columna y EVENT-DATA-2 contiene el
nmero de registro de la celda.

MSG-HEADING-DBLCLICK

Valor 16403

Este evento ocurre cuando el usuario hace doble-clic con el botn izquierdo en una
fila o columna de encabezado.
EVENT-DATA-1 contiene el nmero de la columna y EVENT-DATA-2 contiene el
nmero de registro de la celda.

MSG-HEADING-DRAGGED

Valor 16405

Este evento ocurre cuando el usuario mueve el mouse dentro de una celda de
encabezado mientras presiona el botn izquierdo del mouse. Este evento es
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 49 de 125

Capacitacin Desarrollando un Proyecto


generado nicamente cuando el usuario hace clic primero en una celda de
encabezado.
Si el usuario hace clic en un encabezado, y luego arrastra el mouse sobre una celda
de no-encabezado, MSG-HEADING-DRAGGED es generado y el cercano
encabezado de celda es usado.
EVENT-DATA-1 contiene el nmero de la columna y EVENT-DATA-2 contiene el
nmero de la celda.

MSG-PAGED-FIRST

Valor 16423

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "First Page" (se genera presionando el botn Previous Record, en
conjunto con la tecla Shift o Mayscula). El runtime responde a este evento
posicionando el puntero del registro al inicio del origen de datos. Asumiendo que el
archivo de origen es un archivo indexado, una declaracin START fija el puntero del
registro a fin de que un READ NEXT pueda recuperar el primer registro en el archivo.
Si usted fija EVENT-ACTION to EVENT-ACTION-NORMAL (este es el valor por
defecto), ocurre lo siguiente despus que finaliza el evento.
1. El control es descargado de datos, excepto para cualquier columna de
encabezado; y
2. El control genera un evento de valor de pgina MSG-PAGED-NEXT para llenar la
primera pgina de datos.
Si usted opt por llenar la primera pgina de si mismo en respuesta a este
acontecimiento, fije EVENT-ACTION a EVENT-ACTION-COMPLETE para informarle
al grid que no es necesario generar el evento MSG-PAGED-NEXT para llenar la
primera pgina. Si no puede comenzar al inicio de la pgina (porque el archivo se
encuentra vaco), fije EVENT-ACTION a EVENT-ACTION-FAIL.

MSG-PAGED-LAST

Valor 16424

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "Last Page" (se genera presionando el botn Next Record, en
conjunto con la tecla Shift o Mayscula). Este trabaja de la misma manera que el
evento MSG-PAGED-FIRST descrito anteriormente. Usted posiciona el origen de
datos para que un evento MSG-PAGED-PREV recupere el ltimo registro, y el grid
administre el resto. Vea MSG-PAGED-FIRST y MSG-PAGED-PREV.

MSG-PAGED-NEXT

Valor 16419

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "Next Record". La respuesta esperada desde el runtime es el de
suministrar el siguiente registro despus del fin de los datos actuales del grid.
Para hacer esto adicione un registro nuevo al final del grid (usando RECORD-TOADD). Si el dato es de un archivo indexado, el valor de EVENT-DATA-2 es el nmero
de READ NEXTs necesarios para obtener los registros apropiados. Este valor es
controlado por la propiedad FILE-POS.
Si no puede obtener el prximo registro (porque usted ha alcanzado el fin del
archivo), responda fijando EVENT-ACTION a EVENT-ACTION-FAIL. Cuando haga
esto no recibir ms eventos MSG-PAGED-NEXT.

MSG-PAGED-NEXTPAGE

Valor 16421

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "Next Page". Si usted no define una accin especfica cuando este
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 50 de 125

Capacitacin Desarrollando un Proyecto


evento ocurra, El grid implementa la lgica por si mismo generando un valor de
pgina del evento MSG-PAGED-NEXT.
Esto es hecho con el MASS-UPDATE internamente fijando un valor diferente a cero.
Si usted desea suministrar la lgica agregando cdigo para manejar este evento, fije
EVENT-ACTION a EVENT-ACTION-COMPLETE. Este estado-accin informa al grid
que no es posible generar el evento MSG-PAGED-NEXT porque "Next Page" ha sido
realizado.

MSG-PAGED-PREV

Valor 16420

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "Previous Record". La respuesta esperada del runtime ser
suministrar el registro antes del primer registro de los datos actuales del grid.
Para hacer esto adicione un registro nuevo al final del grid (usando RECORD-TOADD para adicionar el registro e INSERTION-INDEX para posicionar el registro antes
de la primera fila de datos y asegurese que el registro no es insertado antes de
cualquier columna de encabezado en el grid). Si el dato es de un archivo indexado, el
valor de EVENT-DATA-2 es el nmero de declaraciones READ PREVIOUS,
necesarios para obtener los registros apropiados.
Este valor es controlado por la propiedad FILE-POS. Si no puede suministrar el
registro (porque usted ha alcanzado el inicio del archivo), responda fijando EVENTACTION a EVENT-ACTION-FAIL. Cuando usted haga esto no recibira ms eventos
MSG-PAGED-PREV.

MSG-PAGED-PREVPAGE

Valor 16422

Este evento ocurre para los grid con estilo PAGED. Indica que el usuario ha hecho
clic en el botn "Previous Page". Este trabaja de la misma manera al evento MSGPAGED-NEXTPAGE descrito anteriormente.
Aunque este evento puede ser ignorado, usted podra suministrar una accin
especfica en respuesta a este evento. Vea MSG-PAGED-NEXTPAGE para detalles.

MSG-SB-NEXT

Valor 16385

Este evento ocurre cuando el usuario hace clic en el botn bajo/derecho en un


control scroll bar. Cuando el mensaje de evento es enviado al control, el programa
puede responder fijando el control en una nueva posicin.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

MSG-SB-NEXTPAGE

Valor 16387

Este evento ocurre cuando el usuario hace clic en la regin baja/derecha en un


control scroll bar. Cuando el mensaje de evento es enviado al control, el programa
puede responder fijando el control en una nueva posicin.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

MSG-SB-PREV

Valor 16386

Este evento ocurre cuando el usuario hace clic en el botn superior/izquierdo en un


control scroll bar. Cuando el mensaje de evento es enviado al control, el programa
puede responder fijando el control en una nueva posicin.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

MSG-SB-PREVPAGE

Valor 16388

Este evento ocurre cuando el usuario hace clic en la regin superior/izquierda en un

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 51 de 125

Capacitacin Desarrollando un Proyecto


control scroll bar. Cuando el mensaje de evento es enviado al control, el programa
puede responder fijando el control en una nueva posicin.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

MSG-SB-THUMB

Valor 16389

Este evento ocurre cuando el usuario reposiciona el dispositivo deslizante de un


control scroll bar. Cuando el mensaje de evento es enviado al control, el programa
puede responder fijando el control en una nueva posicin.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

MSG-SB-THUMBTRACK

Valor 16390

Este evento ocurre cuando el usuario mueve el dispositivo deslizante del control
scroll bar que tiene el estilo TRACK-THUMB. Cuando el mensaje de evento es
enviado al control, el programa en respuesta no reestablece la posicin del control.
EVENT-DATA-2 contiene la nueva posicin. EVENT-DATA-1 no es usado.
Este mensaje es el nico que no cambia la posicin de deslizamiento.

MSG-SPIN-DOWN

Valor 16417

Este evento ocurre cuando el usuario hace clic en la flecha inferior de un control
Entry Field con el estilo SPINNER.
El programa responde a MSG-SPIN-DOWN decrementando el valor del campo de
entrada por un valor especfico, no necesariamente 1.
Si el campo de entrada tiene un estilo AUTO-SPIN, usted puede fijar EVENTACTION a EVENT-ACTION-FAIL para prevenir que el control decremente el valor por
si mismo.

MSG-SPIN-UP

Valor 16416

Este evento ocurre cuando el usuario hace clic en la flecha superior de un control
Entry Field con el estilo SPINNER. El programa responde a este evento
incrementando el valor del campo de entrada. No es limitado para incrementar el
valor de uno en uno. Puede incrementar el valor del campo tomando el valor actual
del campo y modificndolo por el valor deseado.
Si el campo de entrada tiene un estilo AUTO-SPIN, usted puede fijar EVENTACTION a EVENT-ACTION-FAIL para prevenir que el control incremente el valor por
si mismo.

MSG-TV-DBLCLICK

Valor 16428

Este evento ocurre cuando el usuario hace doble-clic en un tem de un control TreeView control que no tiene dependientes. Los tem que tienen dependientes se
expanden o contraen cuando es hecho un doble-clic. El ID de el tem es almacenado
en EVENT-DATA-2.
Puede fijar EVENT-ACTION a EVENT-ACTION-IGNORE para inhibir el manejo
interno del control ente un evento de doble-clic. Esto se utiliza si usted desea
transferir el control a una nueva ventana en respuesta al doble-clic.
Si usted crea el cdigo para mostrar una nueva ventana pero el evento no es
ignorado, el manejo interno del control desactiva su nueva ventana.

MSG-TV-EXPANDED

Valor 16414

Este evento ocurre cuando un tem en un control Tree View es expandido o


contrado. El ID del predecesor es almacenado en EVENT-DATA-2. Uno de los
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 52 de 125

Capacitacin Desarrollando un Proyecto


siguientes dos valores bolanos es almacenado en EVENT-DATA-1:
TVFLAG EXPAND
TVFLAG COLLAPSE

MSG-TV-EXPANDING

tem expandido mostrando el dependiente.


tem contrado ocultando el dependiente.

Valor 16413

Este evento ocurre cuando un tem en un control Tree View esta a punto de ser
expandido o contrado.
EVENT-DATA-1 y EVENT-DATA-2 son fijados de la misma forma que el evento
MSG-TV-EXPANDED. Puede prevenir que el control se expanda o contraiga fijando
EVENT-ACTION a EVENT-ACTION-FAIL.
Nota: El runtime puede enviar un conjunto de estos eventos en respuesta, cuando el
usuario presiona las teclas + o *. La diferencia es que estos mensajes son enviados
independientemente de s el tem en particular es expandido o no. Mientras que un
evento del mouse causa un mensaje de EXPAND si el tem no es expandido. Este
hecho puede causar problemas en los programas COBOL, y los programadores
deben estar conscientes de ello.
Las teclas + y * generan un mensaje EXPANDED con EVENT-DATA-1 fijado a
TVFLAG-EXPAND, mientras que la tecla genera un mensaje EXPANDED con
EVENT-DATA-1 fijado a TVFLAG-COLLAPSE.

MSG-TV-SELCHANGE

Valor 16412

Este evento ocurre cuando la seleccin ha sido cambiada en un control Tree View. El
ID del nuevo tem es almacenada en EVENT-DATA-2. EVENT-DATA-1 contiene la
causa del cambio.
De acuerdo a los siguientes valores (encontrados en "acugui.def"):
TVFLAG MOUSE
Nuevo tem seleccionado con el mouse.
TVFLAG KEYBOARD Nuevo tem seleccionado con el teclado.
TVFLAG PROGRAM Cambio de programa por el tem seleccionado

MSG-TV-SELCHANGING

Valor 16411

Este evento ocurre cuando la seleccin en un control Tree View esta a punto de
cambiar. EVENT-DATA-1 contiene la razn para el cambio (Vea MSG-TVSELCHANGE), y EVENT-DATA-2 contiene el ID del tem a punto de seleccionar.
Puede prevenir la seleccin, fijando EVENT-ACTION a EVENT-ACTION-FAIL.

MSG-VALIDATE

Valor 16391

Este evento ocurre inmediatamente despus que el runtime desempea una


validacin intrnsica de un campo de entrada de datos (por ejemplo, la frase
REQUIRED).
Especficamente, un evento MSG-VALIDATE es generado en
cualquier momento que un control activo termine y la terminacin no sea el resultado
de:
1. Un evento, excepcin para CMD-GOTO, o CMD-TABCHANGED
2. Un mensaje, excepto "status 95"
3. Una excepcin, excepto para aquellos que tambin causen movimiento entre
campos en una Screen Section.
Cuando las condiciones mencionadas sean reunidas, es un buen punto para
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 53 de 125

Capacitacin Desarrollando un Proyecto


desempear otra validacin de datos de control.
Si el elemento EVENT-ACTION es fijado a EVENT-ACTION-CONTINUE (valor 2), el
control permanece activo hasta que el usuario corrija el error. Fjese que MSGVALIDATE no es generado para controles con el estilo SELF-ACT, ni tampoco es
enviado cuando el runtime no desempea normalmente una validacin (por ejemplo,
en respuesta a una tecla de funcin). Este mensaje es generado para cualquier
control que sea activado, aunque no tenga un valor. A causa de la naturaleza
dinmica de las ventanas grficas, un usuario puede salir en una ventana sin que
todos los campos sean validados, por lo tanto, la validacin se realiza despus de
completada una entrada de datos.

MSG-WB-BEFORE-NAVIGATE

Valor 16429

Ocurre cuando el control WEB-BROWSER esta a punto de ingresar a un nuevo


URL. La propiedad de NAVIGATE-URL es fijada al nuevo URL. Si usted fija EVENTACTION a EVENT-ACTION-FAIL, la navegacin podra cancelarse.

MSG-WB-DOWNLOAD-BEGIN

Valor 16431

Ocurre cuando una operacin de navegacin es iniciada, en resumen, despus del


evento BeforeNavigate.

MSG-WB-DOWNLOAD-COMPLETE

Valor 16432

Ocurre cuando una operacin de navegacin es completada.

MSG-WB-NAVIGATE-COMPLETE

Valor 16430

Ocurre despus que el browser a navegado en un nuevo URL. El URL final es


almacenado en la propiedad VALUE

MSG-WB-PROGRESS-CHANGE

Valor 16433

Ocurre cuando el progreso de una descarga es actualizado. La propiedad


PROGRESS es fijada al actual valor de progreso. La propiedad MAX-PROGRESS es
fijada al valor mximo del progreso.

MSG-WB-STATUS-TEXT-CHANGE

Valor 16434

Ocurre cuando el texto de la barra de estado cambia. La propiedad STATUS-TEXT


es fijada al nuevo estado del texto.

MSG-WB-TITLE-CHANGE

Valor 16435

Ocurre cuando el ttulo de un documento en control WEB-BROWSER llega a ser


disponible o cambia. La propiedad TITLE es fijada con el nuevo ttulo.

NTF-CHANGED

Valor 4100

Indica que el valor de un campo de entrada puede haber sido cambiado por el
usuario. Este evento ocurre nicamente para campos de entrada que tengan el estilo
NOTIFY-CHANGE.
EVENT-DATA-1 es la posicin actual del cursor en el campo de entrada
(comenzando en 1). EVENT-DATA-2 no es usado.

NTF-PL-FIRST

Valor 4105

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento en la parte superior de la lista. La
respuesta normal es adicionar los primeros n registros a la lista, donde "n" es el
nmero de lneas que el list box puede mostrar. EVENT-DATA-1 y EVENT-DATA-2
no son usados.

NTF-PL-LAST

Valor 4106

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento en la parte inferior de la lista. La
respuesta normal es adicionar los ltimos n registros a la lista, donde "n" es el
nmero de lneas que el list box puede mostrar. EVENT-DATA-1 y EVENT-DATA-2
no son usados.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 54 de 125

Capacitacin Desarrollando un Proyecto


NTF-PL-NEXT

Valor 4101

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento de un registro en direccin
descendente en un list box. La respuesta normal para este mensaje es adicionar el
siguiente registro al final de la lista. EVENT-DATA-1 y EVENT-DATA-2 no son
usados.

NTF-PL-NEXTPAGE

Valor 4103

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento de una pgina en direccin
descendente en un list box. La respuesta normal es adicionar los ltimos n
registros a la lista, donde "n" es el nmero de lneas que el list box puede mostrar.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

NTF-PL-PREV

Valor 4102

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento de un registro en direccin
ascendente en un list box. La respuesta normal para este mensaje es adicionar el
anterior registro al comienzo de la lista. EVENT-DATA-1 y EVENT-DATA-2 no son
usados.

NTF-PL-PREVPAGE

Valor 4104

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario realiz un desplazamiento de una pgina en direccin
ascendente en un list box. La respuesta normal es adicionar los anteriores n
registros a la lista, donde "n" es el nmero de lneas que el list box puede mostrar.
EVENT-DATA-1 y EVENT-DATA-2 no son usados.

NTF-PL-SEARCH

Valor 4107

Este evento es generado nicamente para controles list boxes con el estilo PAGED.
Indica que el usuario hace un desplazamiento en la pgina que contiene el texto
ingresado por el usuario. La repuesta normal es localizar el ms cercano registro
concordante y luego adicionar una pgina de registros al list box, comenzando con el
registro encontrado. EVENT-DATA-1 contiene el tamao del texto buscado. EVENTDATA-2 no es usado. Para determinar el texto de bsqueda ingresado, use el verbo
INQUIRE en la propiedad SEARCH-TEXT del list box.

NTF-SELCHANGE

Valor 4099

Indica que el usuario ha seleccionado un nuevo tem en un control list-box o en una


lista de un combo-box. Esto nicamente ocurre si la aplicacin lo solicita va estilo
NOTIFY-SELCHANGE. EVENT-DATA-1 es el ndice del tem seleccionado en la lista
(comenzando en 1). EVENT-DATA-2 no es usado.

Eventos de men (Men Events)


Los siguientes eventos son asociados con los mens tipo pop-up que son
asociados a un control. Puede detectar un pop-up men seleccionndolo
directamente en un procedimiento de control de eventos. Los siguientes
mensajes son generados cuando el usuario selecciona un tem de un men
pop-up:
MSG-INIT-MENU

Valor 16398

Este evento ocurre previamente a la visualizacin de un control de men pop-up.


EVENT-DATA-2 contiene el manejador (handle) del control del men. Los
procedimientos de control de eventos pueden usar este evento para actualizar
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 55 de 125

Capacitacin Desarrollando un Proyecto


cualquier estado de informacin en el men. Tal como habilitar/deshabilitar tems o
fijar/remover marcas de chequeo. Si el procedimiento de evento fija EVENT-ACTION
a EVENT-ACTION-FAIL, o fija el control del men a NULL, entonces el men no es
mostrado. En este caso, cualquier construccin de una definicin de men propio del
sistema operativo sera visualizado (p.e. La ventana de men de Windows
Copiar/Cortar/Pegar/Deshacer asociadas con campos de texto).

MSG-MENU-INPUT

Valor 16397

Este evento ocurre cuando el usuario tiene activado un control menu pop-up y
seleccionado un tem en el men. Para ventanas, la informacin desde este evento
de mensaje es enviada a un procedimiento de evento cuando el usuario realiza lo
siguiente:
1. Selecciona un tem desde la ventana de la barra de men pop-up.
2. Selecciona un tem desde una ventana de men pop-up.
3. Selecciona un tem desde un men pop-up men compuesto por un control
contenido en la ventana, y el procedimiento de control de evento no detiene el
procesamiento adicional de la seleccin del men.
4. Selecciona la opcin "Cerrar" desde la ventana inicial del sistema de men (o
hace clic en el botn "Cerrar"), y usted tiene fijado la opcin de configuracin
QUIT-MODE a un valor positivo. Esta opcin de configuracin causa que el
runtime trate de cerrar la operacin como si fuera un tem en la barra de men
inicial de la ventana.
EVENT-DATA-2 contiene el ID del tem del men. Fijando EVENT-ACTION a
EVENT-ACTION-CONTINUE previene procesamientos posteriors de la seleccin del
men. De otra forma, la seleccin del men es tratado como una seleccin normal
desde una barra de men (p.e., termina el ACCEPT con un valor de excepcin igual
al ID del tem del men).

MSG-END-MENU

Valor 16399

Este evento ocurre cuando el men pop-up de cualquier control o ventana ha sido
removido de la pantalla. EVENT-DATA-2 contiene el handle del men de control (o
ventana).

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 56 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.3
Hasta ahora...

En el laboratorio, anterior ha creado un proyecto y adicionado unos


controles grficos, generando una aplicacin automatizada.

Objetivos

Pegar algunos controles grficos.


Identificar los controles creados en la ventana grfica.
Asociar validaciones y comportamientos a los controles
Asociar algunos controles al archivo de datos CLIENTES.

Tareas generales

Adicione los siguientes campos en su FD


Nombre Campo
TP-CLIENTE
FILLER

LLave

Picture
X(3)
X(512)

En el FD, cambie el valor del campo SX-CLIENTE, a numrico de


1 PIC 9.
Genere nuevamente el archivo de datos
Borre los archivos fsicos CLIENTE.DAT y CLIENTE.VIX
Por la opcin Project\Settings, en la pestaa Compiler, active la
opcin para generar archivos .XFD, en el directorio Datos.
Cree los siguientes controles de acuerdo al siguiente modelo de
ventana.

El Combo-Box crguelo con los siguientes valores


CC, NIT, TI, CE, PP.
Asocie las variables de su archivo de datos a los controles creados
y asgnele las validaciones y atributos correspondientes.
Por la opcin Code Insight cambie el cdigo asignado a Write, por
el siguiente cdigo:
WRITE |record-name
INVALID DISPLAY MESSAGE BOX "Error al grabar"
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 57 de 125

Capacitacin Desarrollando un Proyecto


NOT INVALID DISPLAY MESSAGE BOX "Registro grabado"
PERFORM INICIO
MOVE 1 TO ACCEPT-CONTROL CONTROL-VALUE
DISPLAY <<nombre_ventana>>
END-WRITE
En el Event Paragraph, cree un ttulo de pargrafo llamado
GRABAR, y en la lnea siguiente inserte el Code Template
correspondiente a Write y cambie el valor de |record-name,
por el del registro a grabar.
Inserte el siguiente cdigo en el Event Paragraph, despus o
antes del pargrafo GRABAR .
*----Pargrafo antes de mostrar la ventana
INICIO.
INITIALIZE RG-CLIENTES
MOVE 1 TO SX-CLIENTE.
En la ventana principal asocie la opcin Before Routine al
pargrafo INICIO.
En la ventana grfica asocie el botn Grabar con el pargrafo
GRABAR.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 58 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.4
Hasta ahora...

En el laboratorio anterior ha adicionado unos controles grficos,


asociado stos a su archivo de datos.

Objetivos

Adicionar una Barra de Men.


Escribir el cdigo necesario para realizar la modificacin y
eliminacin de un registro.
Asociar los pargrafos creados a las opciones del men.
Verificar el tratamiento de los archivos utilizando el comando Alfred
de AcuBench.

Tareas generales

Escriba los pargrafos correspondientes a una rutina de


modificacin y eliminacin de un registro en su archivo de datos.
Adicione un men con el siguiente contenido:

Cree dos botones en la parte inferior de la ventana con los


siguientes valores: Modificar Eliminar .
Asigne los pargrafos correspondientes a cada botn.
Adicione los siguientes campos en su FD
Nombre Campo
CH-CLIENTE
EF-CLIENTE
CR-CLIENTE
TC-CLIENTE

Picture
9
9
9
9

Cree 4 check-box que correspondan a cada uno de los valores


descritos anteriormente y que corresponderan a la forma de pago.
Nombre Check-Box
Cheque

Variable
CH-CLIENTE

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 59 de 125

Capacitacin Desarrollando un Proyecto


Efectivo
Tarjeta de Crdito
Crdito

EF-CLIENTE
TC-CLIENTE
CR-CLIENTE

El diseo de la ventana podra quedar de la siguiente forma.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 60 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.5
Hasta ahora...

En el laboratorio anterior ha adicionado un men y varios check-box,


asociando a pargrafos los mens y a variables de su archivo de
datos.

Objetivos

Crear un control Toolbar, un control Status-Bar y un List-Box


Asociar bitmap a los botones creados y ubicarlos dentro del
Toolbar, adicionando otros push-button.
Crear el cdigo necesario para realizar una lectura del archivo.
Asociar el cdigo a los controles grficos creados.

Tareas generales

Cree un control Toolbar en su ventana principal.


Cree un control Status Bar en su ventana principal.
Los botones creados en los laboratorios anteriores, ubquelos
dentro del Toolbar y asgneles los bitmap correspondientes,
realizando los ajustes necesarios.
Cree 4 botones dentro del Toolbar correspondientes a lecturas de
su archivo de datos.
Escriba los pargrafos correspondientes a una rutina de inicio y fin
de lectura en el archivo de datos (START) y una lectura secuencial
del archivo de datos (READ NEXT y PREVIOUS).
Asigne los pargrafos correspondientes a los botones creados en
este laboratorio.
Adicione los siguientes campos en su FD
Nombre Campo
Picture
CL-SUCURSAL
X(20)
Cree un list-box y asocie la variable CL-SUCURSAL de su archivo
de datos.
Cree el cdigo y pargrafos necesarios para asociar al Status Bar,
en cada campo de entrada, utilice (BEFORE PROCEDURE).
El diseo de la ventana podra quedar de la siguiente forma:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 61 de 125

Capacitacin Desarrollando un Proyecto

Controles grficos especiales


Este captulo esta especialmente dedicado a analizar algunos controles especiales
con que cuenta AcuBench, entre ellos, el GRID, TREE VIEW y WEB BROWSER.

Grid Control
El control GRID control es una tabla bi-dimensional de campo de datos. Cada
elemento en esta tabla es llamado celda, puede contener texto, bitmap o
ambos.
Los GRIDs son controles relativamente complejos con muchas propiedades que
usted puede usar para personalizar su comportamiento y apariencia.
Nota de Portabilidad: De forma general un control GRID es soportado nicamente en entornos
Windows. El intento de crear un control GRID en otros sistemas puede fallar, causando que el
manejo del control sea retornado con un valor NULL.

Los GRIDs son organizados en filas, columnas y registros. En un GRID, una


fila es una agrupacin de celdas que aparecen en una lnea de un control. Un
registro es una o ms filas que son tratadas como una unidad lgica. Una
columna identifica una celda particular en un registro.
Por defecto, un registro ocupa una fila en un GRID, pero usted puede organizar
de tal forma que un registro sea almacenado por filas en el GRID. Cuando es
hecho esto, un registro ocupa ms de una fila en el GRID.
La capacidad de almacenamiento de un GRID es limitada por el tamao de
memoria disponible. El GRID usa una tcnica reducida de almacenamiento en
el que a los registros sin datos no se les asigna memoria. Un GRID no puede
tener ms de 100 columnas.
Existen otros limitantes (2 gigaregistros
(2,147,483,647 registros) y 2 GB de texto por registro). Una celda sencilla
puede contener no ms de 32766 bytes de texto.
El GRID opera en dos modos: modo de navegacin y modo de entrada.
Mientras este en modo de navegacin, la teclas de flecha mueven el cursor en
torno del GRID. Este es el modo por defecto. El GRID alterna al modo de
entrada cuando el usuario inicia una modificacin de un dato. En este modo, las
teclas de flecha son usadas para editar los datos activos de la celda. Cuando el
usuario concluye la edicin de una celda, el GRID retorna al modo de
navegacin.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 62 de 125

Capacitacin Desarrollando un Proyecto


El conjunto implcito de teclas asignadas para el GRID, depende del host
system. Sobre Windows, el siguiente conjunto de teclas son asignadas para el
modo de navegacin:
Tecla

Accin
Mueve el cursor en la misma columna en el Anterior/Siguiente
Flechas Arriba/Abajo
registro .
Flechas Izquierda/Derecha Mueve el cursor en la columna Anterior/Siguiente del registro
Mueve el cursor a la derecha, volviendo al primer registro cuando
Tab (con USE-TAB)
esta ubicado en la ltima celda de la fila
Mueve el cursor a la izquierda, volviendo al primer registro cuando
Retroceso (con USE-TAB)
esta ubicado en la ltima celda de la fila
Inicio
Mueve el cursor a la primera columna en el registro
Ctrl-Inicio
Mueve a la primera columna en el primer registro
Fin
Mueve a la ltima columna en el registro
Ctl-Fin
Mueve a la primera columna en el ltimo registro
Av. Pg./Re Pg.
Mueve el cursor una pgina hacia arriba o hacia abajo
Alterna el modo de entrada en una celda; destacando el contenido
Intro
para edicin
Mayscula-Intro
Mueve el cursor a la primera columna de el siguiente registro
Alterna el modo de entrada para la celda activa; sobrescribiendo el
Cualquier carcter editable
contenido con el carcter.

GRIDs pueden tener filas y/o columnas de encabezado. Usando el estilo ROWHEADINGS establece una fila de encabezado y el estilo COLUMN-HEADINGS
establece una columna de encabezado. Los encabezados son celdas normales
con algunos atributos especiales.
1. Los Encabezados sern siempre visibles, independiente de como el usuario
navegue en el GRID.
2. El cursor no es movable en una celda de encabezado.
3. Las propiedades especiales HEADING-COLOR, HEADING-FONT y
HEADING-DIVIDER-COLOR aplican nicamente a celdas de encabezado,
as como el estilo TILED-HEADINGS.
4. Los eventos MSG-HEADING-CLICKED, MSG-HEADING-DBLCLICK, y
MSG-HEADING-DRAGGED aplican nicamente a celdas de encabezado.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 63 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.6
Hasta ahora...

En el laboratorio anterior a adicionado tres nuevos controles, ToolBar,


StatusBar y List Box, adems de escribir el cdigo necesario para
realizar lecturas secuenciales y principales en un archivo de datos y
asociarlos a controles push-button con imgenes.

Objetivos

Crear tres controles TAB, GRID y un BITMAP.


Organizar la informacin clasificndola en 2 pestaas en el TAB
Asociar una imagen al BITMAP

Tareas generales

Cree un control TAB en su ventana principal.


Inserte una pestaa adicional.
Seleccione la informacin bsica del Cliente y pguela en la
primera pestaa.
Seleccione el resto de informacin del Cliente y pguela en la
segunda pestaa.
Cambie los ttulos de las pestaas Datos Bsicos, Datos
Especficos.
Organice la ventana de tal manera que pueda dejar un espacio en
blanco al final de la ventana, en donde ira un control GRID.
Cree un control GRID.
Cree el cdigo y pargrafos necesarios para asociar al Status Bar,
en cada campo de entrada, utilice (BEFORE PROCEDURE).
El diseo de la ventana podra quedar de la siguiente forma:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 64 de 125

Capacitacin Desarrollando un Proyecto

Propiedades Especiales del GRID


El control GRID, cuenta con propiedades especiales, las cuales nos sirven
para personalizar las acciones (eventos) de este tipo de control, a
continuacin presentamos la descripcin de las propiedades en mencin:
Propiedad ACTION (create, modify)
Tipo Alfanumrico
Usado nicamente con el estilo PAGED, esta propiedad causa que el grid invoque un modo
de paginacin en una de varias formas. Esto simplifica las tareas de llenado del grid con los
datos iniciales. Despus de creado el grid, se puede asignar uno de los siguientes valores a
ACTION para cargar la pgina inicial de datos que el usuario puede ver. Los valores son:
ACTION-FIRST-PAGE (valor 10) Genera el evento MSG-PAGED-FIRST. Rellenando el grid
con la primera pgina de datos desde su archivo origen.
ACTION-LAST-PAGE (valor 11) Genera el evento MSG-PAGED-LAST Rellenando el grid
con la ltima pgina de datos desde su archivo origen.
ACTION-CURRENT-PAGE (valor 12) limpia el grid de cualquier dato excepto para columnas
de encabezado y genera el evento MSG-PAGED-NEXTPAGE. Si posiciona un archivo de
datos usando la declaracin START antes de desempear esta accin, el grid puede ser
llenado iniciando con el registro seleccionado por el START.
ACTION-HIDE-DRAG Remueve el DRAG-COLOR. Vea la descripcin de DRAG-COLOR
ms adelante.
Propiedad ALIGNMENT (create, modify)
Tipo Alfanumrico
Describe la alineacin de cada columna en el grid. Cada vez que usted fije esta propiedad,
usted describe la alineacin para la prxima columna en el grid, iniciando con la primera.
Fijando esta propiedad a espacios limpia las alineaciones previamente especificadas. Los
valores validos son los siguientes (mayscula o minscula):
"L"
"R"
"C"
"U"

Justificacin a la izquierda
Justificacin a la derecha
Centrada
Sin alineacin

Los datos no alineados unaligned son mostrados en la celda tal cual. De otra manera, el
interlineado y los espacios son removidos del dato. El valor por defecto para una columna es
"unaligned.".
El siguiente ejemplo fija varias alineaciones para un conjunto de 3 columnas:
ALIGNMENT = ( "L", "R", "C" )
Propiedad BITMAP (create, modify)
Tipo Numrico
Coloca una imagen bitmap en una celda identificada por las propiedades X y Y. Este debe
ser fijado para el handle del bitmap cargado en memoria (usando la opcin WBITMAP-LOAD
de W$BITMAP). Si este valor es cero, entonces cualquier bitmap existente es removido.
Puede colocar bitmap y texto en una misma celda. El bitmap es concatenado con el texto
(con una pequea separacin), y el conjunto es alineado de acuerdo a lo especificado en la
propiedad ALIGNMENT. Cuando el usuario ingresa texto en la celda, el bitmap es oculto, en
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 65 de 125

Capacitacin Desarrollando un Proyecto


tanto finaliza la entrada de texto. El mismo bitmap puede ser colocado en ms de una celda.
Propiedad BITMAP-NUMBER (create, modify)
Tipo Numrico
Identifica una imagen en particular cuando utiliza una cadena de imgenes de un archivo. La
primera imagen en la cadena es la nmero 1, la segunda es la nmero "2" y as
sucesivamente. Las imgenes en una tira de bitmap deben ser de ancho uniforme, como
hayan sido especificadas en BITMAP-WIDTH. La celda afectada es identificada por las
propiedades X y Y. El valor por defecto es "1".
Propiedad BITMAP-TRAILING (create, modify)
Tipo Numrico
Cuando el valor es "1", esta propiedad indica que el bitmap ira seguido del texto en la celda.
Cuando de fija en cero el valor (por defecto), el bitmap preceder el texto. Otros valores
tienen efectos indefinidos. La celda afectada es identificada por las propiedades X y Y.
Propiedad BITMAP-WIDTH (create, modify)
Tipo Numrico
Identifica el ancho, en pxeles, del bitmap identificado por la propiedad BITMAP. Si el ancho
no es fijado, entonces el bitmap completo es usado. selo en conjuncin con BITMAPNUMBER para seleccionar el ancho de una imagen en una tira de bitmap. La celda afectada
es identificada por las propiedades X y Y.
Propiedad CELL-COLOR (create, modify)
Tipo Numrico
Fija el color para la celda identificada por las propiedades X y Y. El valor del color
especificado usa los valores de la frase COLOR, tanto para los colores de primer plano como
de fondo.
Propiedad CELL-DATA (create, modify, inquire)
Tipo Alfanumrico
Utilizando create y modify, reemplaza el dato de la celda identificada por las propiedades X y
Y con el valor especificado. Cuando utilizo la propiedad inquire, retorna el dato del texto de la
celda.
Propiedad CELL-FONT (create, modify)
Tipo Numrico
Fija una fuente para la celda identificada por las propiedades X y Y. Debe ser un valor valido
de fuente.
Propiedad COLUMN-COLOR (create, modify)
Tipo Numrico
Fija el valor del color para una columna entera identificada por la propiedad X. La frase
COLOR, especifica el valor del color usado para el fondo y el primer plano. Ejemplo:
MODIFY GRID-1, X = 3, COLUMN-COLOR = 514
Propiedad COLUMN-DIVIDERS (create, modify)
Tipo Numrico
Fija el ancho, en pxeles, de la divisin de la columna. Cada vez que fije esta propiedad,
describe el ancho del siguiente separador de la columna, iniciando desde la primer columna.
Fijando esta propiedad a "-1" limpia los valores previos especificados.

Propiedad COLUMN-FONT (create, modify)


Tipo Numrico
Fija la fuente a ser usada por una columna identificada por la propiedad X. Debe ser un valor
valido de fuente.
Propiedad

CURSOR-COLOR (create, modify, inquire)

Tipo Numrico

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 66 de 125

Capacitacin Desarrollando un Proyecto


Fija el color para la celda donde este ubicado el cursor. El valor del color es especificado por
la frase COLOR para el primer plano y el fondo. Fjese que el cursor es normalmente oculto
cuando el grid pierde el foco. Esto causa que la celda que contenga el cursor vuelva a su
color normal. El color por defecto del cursor es "0".
Propiedad CURSOR-FRAME-WIDTH (create, modify, inquire)
Tipo Numrico
Determina cmo el cursor puede ser visualizado en el grid. Cuando es fijado a un valor
positivo, el cursor visualiza un marco con muchos pxeles gruesos alrededor de la celda del
cursor. El marco se extiende parcialmente en la celda, y parcialmente fuera de ella. Cuando
esta propiedad se fija a un valor negativo, una serie de lneas punteadas son colocadas
dentro de la celda. Cuando este valor es cero, no se visualiza ningn marco dentro de la
celda. El valor por defecto es "3".
Propiedad CURSOR-X (create, modify, inquire)
Tipo Numrico
Identifica la columna donde el cursor se encuentra ubicado. Utilizando las propiedades create
y modify, mueven el cursor. Utilizando inquire retorna la localizacin del cursor. Observe que
usted puede MODIFICAR esta propiedad durante un evento MSG-VALIDATE para dirigir,
donde el cursor debe ir despus de que el usuario ha finalizado el ingreso a una celda. Sin
embargo, esto solo se hace si no fuerza al usuario a permanecer en el modo de entrada en la
celda actual. Si usted mueve el cursor en respuesta a otros eventos mientras el usuario este
en modo de entrada, el resultado puede ser confuso.
Propiedad CURSOR-Y (create, modify, inquire)
Tipo Numrico
Identifica el registro donde el cursor se encuentra ubicado. Utilizando las propiedades create
y modify, mueven el cursor. Utilizando inquire retorna la localizacin del cursor. Ver
CURSOR-X para ms informacin.
Propiedad DATA-COLUMNS (create, modify)
Tipo Numrico
Esta propiedad describe donde cada columna comienza en registros aadidos al grid (Ver
RECORD-TO-ADD). Las columnas son definidas por la posicin de caracteres
correspondiente a la definicin del dato, con el primer carcter iniciando en la posicin 1.
Por ejemplo, el siguiente tem de datos:
01

LIST-DATA.
03 NAME
03 PHONE-NUMBER
03 STATE

PIC X(20).
PIC X(15).
PIC X(2).

Normalmente es visualizada en tres columnas, la primera iniciando en la posicin 1


(NAME), la segunda en la posicin "21" (PHONE-NUMBER), y la tercera en la posicin "36"
(STATE). Cada vez que fija DATA-COLUMNS a un valor positivo, una nueva columna es
creada en ese punto de posicin. Fijando DATA-COLUMNS a cero limpia todas las
definiciones de las columnas existentes. Observe que hay siempre una columna en la
posicin "1", as que la posicin fijada en "1" no es requerida. Un ejemplo de DATACOLUMNS fijado a los valores correspondientes del grupo de tem de datos podra ser:
DATA-COLUMNS = (21, 36)
Puede tambin especificar DATA-COLUMNS usando la construccin RECORD-POSITION.
Propiedad DATA-TYPES
Tipo Alfanumrico
Describe varias caractersticas de entrada de datos de cada columna. Cada vez que usted
fija esta propiedad, describe el tipo de dato para la siguiente columna en el grid, iniciando con
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 67 de 125

Capacitacin Desarrollando un Proyecto


el primero. Fijando esta propiedad a espacios limpia el anteriormente especificado tem de
datos.
Una especificacin de tipo de datos contiene 2 componentes. El primero es un carcter
simple que describe el conjunto de caracteres validos que el usuario puede ingresar en esta
columna. El conjunto de posibles valores es:
Carcter
Descripcin
X
Alfanumrico
U
Alfanumrico - Mayscula
L

Alfanumrico - Minscula

9
Z

Numrico
Nmeros editados

I
P
D

Enteros
Enteros Positivos
Fecha

Caracteres permitidos
Todos los caracteres
Todos los caracteres automticamente
convertidos a mayscula.
Todos los caracteres automticamente
convertidos a minscula.
Dgitos, punto decimal, signo, espacio
Dgitos, signos, punto, coma, smbolo de moneda
local, "$", "*", "/", "%", espacios
Dgitos, signos, espacios
Dgitos, espacios
Dgitos, /, guin

Puede especificar el carcter de tipo de datos sin importar si es dado en maysculas o


minsculas, despus de digitar el carcter, debe ingresar el mximo nmero de caracteres
que pueden ser ingresados en esta columna. Este valor es especificado en parntesis. Dos
valores tienen especial significado: "0" indica que el mximo nmero de caracteres es fijado
al tamao de la columna, y -1 indica no hay lmite diferente al impuesto por el grid (p.e.,
32766 caracteres). Cuando una celda contiene ms texto del que se puede mostrar, la celda
se desplaza horizontalmente de una forma similar a un entry field.
Puede omitir cualquier parte de la especificacin. Si la parte del tipo de datos es omitida, se
asigna "X" (todos los caracteres permitidos). Si el tamao es omitido, se asigna "0"
(corresponde al tamao de la columna).
Por ejemplo, para especificar que una columna permita 30 caracteres en mayscula,
especifique "U(30)". Para crear una columna que permita nicamente dgitos con el ancho de
la columna, use "P(0)", o solo "P".
Nota: El tipo de dato carcter nicamente limita cual carcter el usuario puede ingresar en la
columna. El grid internamente no valida o formatea el dato ingresado. Para realizar esta
validacin usted debe responder al evento MSG-FINISH-ENTRY.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 68 de 125

Capacitacin Desarrollando un Proyecto

Propiedad DISPLAY-COLUMNS(create, modify)


Tipo Numrico
Esta propiedad describe el nmero de columnas y su localizacin en el grid. La primera
columna siempre es visualizada en la posicin "1". Las columnas adicionales se muestran en
la localizacin fijada por DISPLAY-COLUMNS. Las columnas son medidas con la fuente
estndar. Cada vez que es fijada DISPLAY-COLUMNS a un valor positivo, una nueva
visualizacin de la columna es definido. Fijando DISPLAY-COLUMNS a "0" limpia todas las
columnas (excepto la columna 1). Usualmente, usted fija DISPLAY-COLUMNS en una lista,
de la siguiente forma:
DISPLAY-COLUMNS = (1, 21, 35)
Este ejemplo fija tres columnas, una iniciando en la columna "1", la siguiente iniciando en la
columna "21" y la ltima iniciando en la columna "35". La ltima columna se extiende hasta el
final del grid (ver VIRTUAL-WIDTH).
En un grid sin una barra horizontal especificada (ver HSCROLL), un registro puede ocupar
mltiples filas en el grid. Para hacer esto, restaure la numeracin de las columnas en "1"
despus de fijar la primera fila de columnas. Por ejemplo, la siguiente sentencia describe un
grid con registros distribuidos en 2 filas, con tres columnas en la primera fila y dos columnas
en la segunda:
DISPLAY-COLUMNS = (1, 21, 35, 1, 21)
En una ventana, un registro en un grid podra verse de la siguiente manera:
Columna 1
Columna 4

Columna 2
Columna 5

Columna 3

Nota: Puede tambin usar columnas para ocultar datos. La columna se sita ms all del
lado derecho del grid, donde no es visible. Puede usar este comportamiento para almacenar
informacin en el grid que su programa necesite asociar con un registro, pero que usted no
desea mostrar al usuario. Un potencial uso de esta tcnica es almacenar el valor de la llave
primaria en la columna oculta, as podr recuperar el registro completo fcilmente cuando el
usuario lo seleccione del grid.
Propiedad DIVIDER-COLOR(create, modify, inquire)
Tipo Numrico
Fija el color de las divisiones del grid. Configurando este valor al nmero del color deseado
(p.e. "1" para negro, "9" para gris oscuro). Cuando esta propiedad es fijada a cero (por
defecto), el color especifico del divisor del sistema es usado. Este color depende del color del
fondo del grid.
Propiedad DRAG-COLOR (create, modify, inquire)
Tipo Numrico
Configura el color de resaltado aplicado al rea rectangular definida cuando el usuario
selecciona con el mouse en el grid. El valor DRAG-COLOR mayor a cero define un color a
ser aplicado usando el valor de la frase COLOR.
DRAG-COLOR es usado para el mismo propsito como REGION-COLOR (vea la descripcin
de la propiedad REGION-COLOR). Use DRAG-COLOR en lugar de REGION-COLOR
cuando desee permitir que los usuarios resalten un bloque de celdas presionando y
arrastrando el mouse (REGION-COLOR tiene mala ejecucin en aplicaciones que corren con
ACUCOBOL-GT Thin Client).

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 69 de 125

Capacitacin Desarrollando un Proyecto


DRAG-COLOR es aplicado cuando el usuario inicia una operacin de clic y arrastre.
DRAG-COLOR es removido cuando una de las siguientes acciones ocurre:
El cursor es movido a una nueva celda despus que un evento MSG-END-DRAG
es generado.
Se hace clic en un encabezado
Un evento MSG-BEGIN-ENTRY es generado
La propiedad ACTION es asignada a ACTION-HIDE-DRAG (nivel 78 en
"acugui.def")
DRAG-COLOR se oculta cuando el grid no tiene foco.
Propiedad END-COLOR (create, modify, inquire)
Tipo Numrico
Controla el color del grid en el rea de fondo del grid. En algunos casos, un rea en blanco es
visible. Si esta propiedad se fija en cero (por defecto), el rea es rellenada con el color
configurado para el host de la maquina.
Propiedad ENTRY-REASON (create, modify, inquire)
Tipo Alfanumrico
Esta propiedad registra las acciones que el usuario causa en el grid alternando con el modo
de entrada. Esto es determinado inmediatamente antes de generar el evento MSG-BEGINENTRY, y es retenido hasta que sea generado el evento MSG-BEGIN-ENTRY o mientras el
grid es destruido.
La codificacin es un sencillo carcter PIC X como sigue:
x"00" Un valor X"00" (binario 0, ASCII nulo) indica que el usuario hace doble-clic en la
celda.
x"0D" Un valor X"0D" (binario 13, ASCII Retorno de carro) indica que el usuario presiona
la tecla <Enter o Intro>
Otro Cualquier otro valor es la tecla que el usuario ha presionado. Por ejemplo, si el
usuario inicia tecleando John, entonces la letra J es retornada por ENTRYREASON.
ENTRY-REASON puede ser unicamente obtenido (inquire). Puede obtener el ENTRYREASON durante un evento MSG-BEGIN-ENTRY para determinar lo que caus que la
entrada actual comenzara. Observe que puede luego prohibir la entrada moviendo EVENTACTION-FAIL a EVENT-ACTION y retornar desde el procedimiento de evento.
Propiedad FILE-POS (create, modify, inquire)
Tipo Numrico
Esta propiedad es usada nicamente con el control grid que tenga el estilo PAGED. El valor
de FILE-POS es el nmero de registros del grid que corresponden a la posicin actual del
registro en el correspondiente archivo de datos. Es usado para simplificar la paginacin lgica
en su programa. FILE-POS calcula el nmero de lecturas de registros necesarios requeridos
para ser cargado en el grid. El grid usa este valor cuando se generan los eventos MSGPAGED-NEXT o MSG-PAGED-PREV.
El valor de FILE-POS sera el ltimo registro visible del grid o el primer registro visible que no
es un encabezado. Para ilustracin, suponga que tiene un grid de 4 lneas sin encabezado.
Cuando se avanza en el archivo, FILE-POS, generalmente "4", corresponde al ltimo registro
adicionado al grid. Si el usuario hace clic en el botn "Next Record", el evento MSG-PAGEDNEXT indica que nicamente un READ NEXT es necesario para recuperar el registo
apropiado. Sin embargo, si el usuario hace clic en el botn "Previous Record", entonces el
evento MSG-PAGED-PREV indica que cuatro declaraciones READ PREVIOUS son

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 70 de 125

Capacitacin Desarrollando un Proyecto


necesarias para obtener el registro deseado. En este caso, FILE-POS cambiar a "1",
indicando que nicamente un READ PREVIOUS es necesario para obtener el registro
previo mientras cuatro declaraciones READ NEXT son necesarias para obtener el
"siguiente" registro.
Adems, FILE-POS tiene tres especiales valores definidos a nivel 78 en el archivo
"acugui.def". Estos valores son listados a continuacin:
PAGED-AT-START (valor 2147418113) Cuando se asigna este valor a FILE-POS, el grid no
generar eventos MSG-PAGED-PREV y MSG-PAGED-PREVPAGE.
PAGED-AT-END (valor 2147418114) Cuando se asigna este valor a FILE-POS, el grid no
generar eventos MSG-PAGED-NEXT y MSG-PAGED-NEXTPAGE.
PAGED-EMPTY (valor 2147418115) Cuando se asigna este valor a FILE-POS, el grid no
generar eventos MSG-PAGED-NEXT, MSG-PAGED-NEXTPAGE, MSG-PAGEPREV y MSG-PAGED-PREVPAGE. Puesto que es posible que otros usuarios
agreguen registros al archivo (como una re-lectura), el valor generar eventos
MSG-PAGED-FIRST y MSG-PAGED-LAST.
El grid automaticamente administra el FILE-POS, usando las siguientes reglas:
1. Cuando un registro es adicionado en un grid en la posicin superior sin encabezado,
FILE-POS es asignado a esa posicin.
2. Cuando un registro es adicionado en un grid en la posicin inferior, FILE-POS es
asignado a esa posicin.
3. Si usted fija EVENT-ACTION-FAIL en respuesta a un evento MSG-PAGED-NEXT, FILEPOS es fijado a PAGED-AT-END.
4. Si usted fija EVENT-ACTION-FAIL en respuesta a un evento MSG-PAGED-PREV, FILEPOS es fijado a PAGED-AT-START.
5. Si usted fija EVENT-ACTION-FAIL en respuesta a un evento MSG-PAGED-FIRST o
MSG-PAGED-LAST, FILE-POS es fijado a PAGED-EMPTY.
6. Si un evento MSG-PAGED-FIRST fija EVENT-ACTION (por defecto), FILE-POS es fijado
a PAGED-AT-START.
7. Si un evento MSG MSG-PAGED-LAST fija EVENT-ACTION, FILE-POS es fijado a
PAGED-AT-END.
8. Si usted desocupa el grid, FILE-POS es fijado a PAGED-EMPTY. Adicionando registros
al grid cambiarn este valor.
La administracin automtica proporcionada aqu manejar correctamente los grid cuyos
datos provengan de un archivo de datos indexado, s usted mueve el puntero de los registros
del archivo nicamente en respuesta a los eventos del grid (y nicamente segn los
requisitos de estos eventos).
En casos donde usted mueva el puntero del registro independiente de un requeriemiento del
grid, necesitar hacer lo siguiente:
1.

Modificar FILE-POS para reflejar la posicin actual del registro. Puede usar nmeros
de FILE-POS fuera del rango de registros disponibles en el grid. Por ejemplo, Si
posiciona el puntero del registro uno ants al primero en el grid, asignando "0" a FILEPOS. Fije FILE-POS a "1" para apuntar al primer registro en el grid, "0" para apuntar el
registro antes que, "-1" para apuntar 2 registros antes y as sucesivamente. Puede usar
nmeros mayores al ltimo registro del grid indicando una posicin ms alla del grid.

2.

Reposicionar el puntero al archivo actual haciendo correspondencia al valor FILEPOS. Puede hacer esto leyendo de nuevo el registro apropiado del archivo de datos.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 71 de 125

Capacitacin Desarrollando un Proyecto


Observe que una declaracin START no puede ser lo bastante buena. START posiciona
el puntero del archivo para que la siguiente declaracin READ NEXT o READ PREVIOUS
retorne el registro seleccionado. Esto podra no retornar el registro requerido de acuerdo
a la lectura.
3.

Ignorar el posicionamiento de la informacin transferida en el evento MSG-PAGEDNEXT y MSG-PAGED-PREV y el posicionamiento de la informacin suministrada por el
control grid, proveyendo su propia lgica de ubicacin, en este caso, FILE-POS puede
ser incorrecto; pero FILE-POS es irrelevante en este punto porque usted no lo esta
usando. Si usted ignora el valor de FILE-POS, debe decidir si utiliza o n la caracterstica
at-end o at-start de FILE-POS. Si no desea usar esta caracterstica, entonces no fije
EVENT-ACTION-FAIL en los eventos MSG-PAGED-NEXT y MSG-PAGED-PREV.

Cualquiera de las tcnicas mencionadas pueden ejecutarse. Sin embargo, observe que,
FILE-POS podra ser dificil de calcular con la primera tcnica, porque es con frecuencia dificil
de calcular cuantos registros hay en un archivo con indices.
Propiedad HEADING-COLOR (create, modify, inquire)
Tipo Numrico
Fija el color para las celdas de encabezado (columnas y filas). El valor del color especificado
usa la frse COLOR, para el primer plano y el fondo.
Propiedad HEADING-DIVIDER-COLOR (create, modify, inquire) Tipo Numrico
Fija el color usado para las lneas divisorias de una columna o una fila en un encabezado.
Cuando esta propiedad es fijada en cero (por defecto), las divisiones en el encabezado son
dibujadas usando el mismo color asignado al resto del grid.
Propiedad HEADING-FONT (create, modify, inquire)
Tipo Numrico
Fija la fuente a ser usada por las filas y columnas de encabezado. Debe ser fijado a un valor
valido de fuente. Observe que HEADING-FONT tiene precedencia sobre ROW-FONT y
COLUMN-FONT, pero no sobre CELL-FONT.
Propiedad HIDDEN-DATA (create, modify, inquire)
Tipo Alfanumrico
Permite al programa almacenar datos que no seran mostrados en una celda. Una celda
puede contener datos visualizados (ver CELL-DATA) y datos ocultos. Los datos ocultos estn
limitados a 255 bytes por celda. Puede ocultar datos de cualquier formato, incluidos
caracteres no imprimibles.
Propiedad HSCROLL-POS (inquire)
Tipo Numrico
Retorna el nmero de la columna ms a la izquierda de la columna activa y visible. Cuando
se usan filas de encabezado, HSCROLL-POS retorna el nmero de la columna que
aparecer en la columna 1 del grid donde no hay encabezado.
Propiedad INSERT-ROWS (create, modify)
Tipo Numrico
Cuando se fija a un valor positivo, esta propiedad inserta una cantidad de registros en blanco.
Estos son adicionados inmediatamente antes del registro identificado por INSERTIONINDEX. (Ver INSERTION-INDEX).
Propiedad INSERTION-INDEX (create, modify, inquire)
Tipo Numrico
Fijando esta propiedad a un valor positivo afecta la localizacin de los registros adicionados
va RECORD-TO-ADD. Cuando es fijado a cero (por defecto), los registros son adicionados
al final del grid. Cuando INSERTION-INDEX es positivo, los registros son adicionados
inmediatamente antes del correspondiente tem. Por ejemplo, fijando este a "1" causa que el
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 72 de 125

Capacitacin Desarrollando un Proyecto


registro sea insertado como el primer registro de la lista. Cuando finaliza de adicionar el
siguiente registro, INSERTION-INDEX automaticamente inicializa el valor a cero.
Nota: En declaraciones que permitan multiples propiedades, las propiedades sern fijadas
en el orden especfico. En consecuencia, usted puede fijar ambos INSERTION-INDEX y
RECORD-TO-ADD en la misma declaracin, suministrando primero INSERTION-INDEX.
Por ejemplo, la siguiente declaracin adicionar un nuevo registro en la parte superior del
grid:
MODIFY GRID-1,
INSERTION-INDEX = 1,
RECORD-TO-ADD = GRID-DATA-1
Cuando inserta un registro, las siguientes propiedades son tambin afectadas: ROWCOLOR, ROW-FONT, CELL-COLOR, CELL-FONT. Si estas son especificadas para un
registro anterior al punto de insercin, entonces ser movidos "bajo" un registro. Por ejemplo,
si usted tiene especificados ROW-COLOR para "5" registros, y usted inserta 3 registros,
entonces el ROW-COLOR ser movido al registro "6". Esto causa que la fila y la celda tomen
estas caracteristicas.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 73 de 125

Capacitacin Desarrollando un Proyecto

Propiedad LAST-ROW (inquire)


Tipo Numrico
Cuando utiliza inquire, retorna el nmero del registro de la ltima celda con datos en el grid.
Filas de encabezado son ignoradas para determinar si un registro se encuentra vaco. Si el
registro contiene registros vacos, LAST-ROW retorna cero.
Propiedad MASS-UPDATE (create, modify, inquire)
Tipo Numrico
Cuando fija un valor diferente a cero, esta propiedad oculta (no para todos) las
actualizaciones a la ventana por el control. Esto le permite rpidamente realizar mltiples
cambios al grid, con una apariencia ms lisa en la ventana. Cuando se fija a cero (por
defecto), los cambios hechos al grid son reflejados en la ventana. Observe que la accin de
fijar esta propiedad a cero causa que el grid sea repaginado.
Propiedad NUM-COL-HEADINGS(create, modify, inquire)
Tipo Numrico
Esta propiedad determina el nmero de las filas que se tratarn como encabezados de
columna. Cuando es fijado a cero, las columnas en el grid no tendrn encabezados. Cuando
se fije a un valor positivo, este valor corresponder al nmero de filas que tendrn
encabezados de columna. Por ejemplo, si usted fija el valor de esta propiedad a "2", los
primeros dos registros en el grid sern encabezados. Los encabezados son siempre visibles
y podrn tener color diferente al cuerpo del grid.
Esta propiedad reemplaza el estilo COLUMN-HEADINGS. Si usted especifica COLUMNHEADINGS, entonces NUM-COL-HEADINGS con un valor de "0" es tratado como si fuera
"1". El estilo COLUMN-HEADINGS no tiene efecto cuando NUM-COL-HEADINGS tiene un
valor mayor a cero.
Propiedad NUM-ROWS (create, modify, inquire)
Tipo Numrico
Determina el nmero total de registros en el grid. Cuando esta propiedad es fijada a un valor
positivo, el grid tiene en cuenta exactamente los registros asignados a NUM-ROWS. Cuando
es fijado a cero (por defecto), el grid se extiende al ltimo registro que contiene los datos
definidos. Cuando es fijado a "-1", el grid se extiende a la siguiente lnea despus del ltimo
registro definido. Esto provee un registro en blanco al final del grid en el cual el usuario puede
adicionar un nuevo registro. En el caso de "0" y "-1", el grid aumentar en la medida que
nuevos registros sean ingresados.
Propiedad RECORD-DATA (create, modify, inquire)
Tipo Alfanumrico
Reemplaza inmediatamente un registro completo de texto en el grid. Debe fijar
anticipadamente DATA-COLUMNS para denotar en donde cada columna de datos inicia.
Debe tambin fijar la propiedad "Y" para indicar cual fila desea sobrescribir. Si especifica una
fila que es mayor al registro actual del final del grid, el efecto es el mismo a adicionar un
nuevo registro en este punto. De lo contrario, las filas con registros existentes sern
sobrescritas con el nuevo registro.
Cuando utiliza inquire, RECORD-DATA retorna el contenido de datos en la fila identificada
por la propiedad "Y". Los datos son formateados de acuerdo a DATA-COLUMNS. Si la fila no
existe, RECORD-DATA, retornar espacios.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 74 de 125

Capacitacin Desarrollando un Proyecto

Propiedad RECORD-TO-ADD (create, modify)


Tipo Alfanumrico
Adiciona un registro de texto completo en el grid. Debe fijar anticipadamente DATACOLUMNS para denotar en donde cada columna de datos inicia. El registro es usualmente
agregado al final del grid, sin embargo, puede cambiar la posicin de insercin usando
INSERTION-INDEX. Observe que el nuevo registro es adicionado al grid (sin sobrescribir los
datos). Vea CELL-DATA para una forma de adicionas celdas individuales a un grid.
Propiedad RECORD-TO-DELETE (create, modify)
Tipo Numrico
Elimina un registro completo del grid. El valor de esta propiedad es el nmero de posicin del
registro eliminado. Borrar un registro afecta no slo datos, sino tambin ROW-COLOR, ROWFONT, CELL-COLOR y CELL-FONT. Si cualquiera de stos es especificado para registros
que siguen al registro borrado, estos se movern "arriba" un registro. Causando que las
propiedades se conserven. As, por ejemplo, si el registro "5" tiene una propiedad ROWCOLOR especificada, y usted borra el registro "3", entonces la propiedad ROW-COLOR
aplicar al registro 4".
Propiedad REGION-COLOR (create, modify, inquire)
Tipo Numrico
Fija el color para una regin definida para las filas START-Y y Y y las columnas START-X y X
(inclusive). Cuando fija REGION-COLOR, cualquier regin de color previa es removida y una
nueva regin es fijada.
REGION-COLOR, es usada comnmente para destacar un rea que el usuario ha
seleccionado previamente con el mouse. Para hacer esto, debe fijar REGION-COLOR al
color deseado en respuesta al evento MSG-GOTO-CELL-DRAG. Observe que cuando este
evento es generado, START-X, X, START-Y y Y contienen los valores definidos y
generalmente no es necesario configurarlos.
Propiedad RESET-GRID (create, modify, inquire)
Tipo Numrico
Cuando es configurado a un valor diferente a cero, desocupa los datos del grid. Adems,
cualquier propiedad ROW-FONT, ROW-COLOR, CELL-FONT y CELL-COLOR son
inicializados. El cursor es posicionado en la parte superior izquierda del grid y la barra de
desplazamiento es reducida. RESET-GRID es accionado una vez. Observe que se eliminan
los encabezados del grid, as como el cuerpo del grid. Adems de que el texto y las imagines
asociados sern eliminados.
Propiedad ROW-COLOR (create, modify)
Tipo Numrico
Fija el color para un registro completo identificado por la propiedad Y. El valor del color
especificado se usa de acuerdo a la frase COLOR para el fondo y primer plano
Propiedad ROW-COLOR-PATTERN (create, modify)
Tipo Numrico
Establece un patrn repetitivo aplicado a las filas en el grid. La primer vez que configura esta
propiedad, el color especificado es aplicado a la primera fila del grid. El segundo valor es
aplicado a la segunda fila y as sucesivamente. El patrn establecido se repite a lo largo de
las filas visibles en el grid. Observe que el patrn del color es fijado a las filas visibles en el
grid, independiente de la posicin actual de la barra vertical de desplazamiento.
Desplazndose a travs del grid no cambia los aspectos visibles del patrn de color.
Este ejemplo configura dos patrones de color donde la primera fila tendr un fondo blanco
(512) y la segunda tendr un fondo Amarillo (480). En ambos casos el color del primer plano
no se especifica (cero por defecto):
ROW-COLOR-PATTERN = ( 512, 480 )
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 75 de 125

Capacitacin Desarrollando un Proyecto

Propiedad ROW-DIVIDERS (create, modify)


Tipo Numrico
Esta propiedad establece el ancho en pxeles (in pxeles) de los divisores de las filas. Cada
vez que configura esta propiedad a un valor no negativo, fija el ancho de la divisin para una
fila de un registro. El primer valor aplicar a la primera fila, el segundo a la segunda y as
sucesivamente. El patrn establecido para el primer registro se repite a lo largo del grid. Para
limpiar el grid con los valores establecidos asigne el valor de "-1". El valor por defecto es de
un pxel de ancho.
Propiedad ROW-FONT (create, modify)
Tipo Numrico
Fija el valor de la fuente para el registro identificado por la propiedad Y. Se debe fijar con un
valor de fuente valida. Observe que ROW-FONT se refiere a la fuente usada por un registro
completo, no solo una fila.
Propiedad SEARCH-OPTIONS (create, modify)
Tipo Alfanumrico
Esta propiedad controla cmo las bsquedas son realizadas en el grid.
Nota: Las opciones de bsqueda en el grid no se visualizan a travs de una interfase de
usuario. Usted debe construir una interfase para que el usuario pueda realizar una
bsqueda. Una interfase comn es una ventana de dialogo pop-up, donde el usuario pueda
fijar el texto de bsqueda y la opcin deseada. Otra interfase tpica es un control entry-field
en la misma ventana del grid, con un botn Buscar al lado del entry-field.
La propiedad SEARCH-OPTIONS debe ser asignada con base en una estructura similar a la
siguiente:
01 GRID-SEARCH-OPTIONS.
03 GRID-SEARCH-DIRECTION
PIC 9.
88 GRID-SEARCH-FORWARDS
VALUE ZERO,
FALSE 1.
03 GRID-SEARCH-WRAP-FLAG
PIC 9.
88 GRID-SEARCH-WRAP
VALUE ZERO,
FALSE 1.
03 GRID-SEARCH-CASE-FLAG
PIC 9.
88 GRID-SEARCH-IGNORE-CASE
VALUE ZERO,
FALSE 1.
03 GRID-SEARCH-MATCH-FLAG
PIC 9.
88 GRID-SEARCH-MATCH-ANY
VALUE ZERO.
88 GRID-SEARCH-MATCH-LEADING VALUE 1.
88 GRID-SEARCH-MATCH-ALL
VALUE 2.
03 GRID-SEARCH-LOCATION-FLAG
PIC 9.
88 GRID-SEARCH-VISIBLE
VALUE ZERO.
88 GRID-SEARCH-HIDDEN
VALUE 1.
88 GRID-SEARCH-ALL-DATA
VALUE 2.
03 GRID-SEARCH-SKIP-FLAG
PIC 9.
88 GRID-SEARCH-SKIP-CURRENT
VALUE ZERO,
FALSE 1.
03 GRID-SEARCH-CURSOR-FLAG
PIC 9.
88 GRID-SEARCH-MOVES-CURSOR
VALUE ZERO,
FALSE 1.
03 GRID-SEARCH-COLUMN
PIC 9(5).
88 GRID-SEARCH-ALL-COLUMNS
VALUE ZERO.
Una copia de esta estructura puede ser encontrada en la librera "acugui.def". Esta contiene
la configuracin de los valores por defecto para todos los parmetros de bsqueda en el grid.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 76 de 125

Capacitacin Desarrollando un Proyecto

Para configurar las propiedades de SEARCH-OPTIONS, especifique el nombre de la


estructura de datos descrita en los campos de entrada del grid o por la declaracin "modify".
El ejemplo a continuacin usa la declaracin "modify" para asignar la propiedad:
MODIFY GRID-1, SEARCH-OPTIONS = GRID-SEARCH-OPTIONS
Para configurar nuevos valores de bsqueda para un grid, comience utilizando la declaracin
"inquire" para encontrar los valores actuales (esto puede ser modificado previamente). Luego,
fije el valor deseado para escoger los parmetros de bsqueda con la declaracin "set", y
finalmente, "modify" el grid para aplicar los nuevo valores.
El siguiente ejemplo muestra como cambiar los valores para dos de los parmetros de
bsqueda y aplicar la nueva opcin de bsqueda del grid.
INQUIRE grid-1, SEARCH-OPTIONS
IN GRID-SEARCH-OPTIONS
SET (opcin-1) TO TRUE
SET (opcin-2) TO TRUE
MODIFY grid-1,
SEARCH-OPTIONS = GRID-SEARCH-OPTIONS
Los parmetros de SEARCH-OPTIONS tienen las siguientes particularidades:
GRID-SEARCH-FORWARDS
Cuando es verdadero, la bsqueda comienza de izquierda a derecha y de arriba
hacia abajo en el grid. Este es el comportamiento por defecto. Cuando es falso, la
bsqueda se ejecuta de derecha a izquierda y de abajo hacia arriba.
GRID-SEARCH-WRAP
Cuando es verdadero (por defecto), una bsqueda "wraps around" cuando acierta en
la parte superior o inferior del grid. Esto causa que la bsqueda proceda del fin
opuesto del grid. Cuando es falso, la bsqueda se detiene al encontrar la parte
superior o inferior del grid.
GRID-SEARCH-IGNORE-CASE
Cuando es verdadero (por defecto), la bsqueda ignora las diferencias de mayscula
y minscula entre letras para determinar si dos cadenas son iguales.
GRID-SEARCH-MATCH-ANY
Cuando es verdadero (por defecto), buscar una cadena de datos similar al
contenido de una celda de datos. Por ejemplo, una bsqueda para "bcd" se
encontrar en la cadena "abcde".
GRID-SEARCH-MATCH-LEADING
Cuando es verdadero, la concordancia de la bsqueda de una cadena de texto se
realizar al inicio del texto de una celda de datos. Por ejemplo, una bsqueda de
"bcd" se encontrar en la cadena de texto "bcde", pero no en la cadena "abcde".
GRID-SEARCH-MATCH-ALL
Cuando es verdadero, la concordancia de la bsqueda de la cadena de texto se har
nicamente si el texto de la cadena es igual al encontrado en la celda de datos. Por
ejemplo, "bcd" corresponder a "bcd", pero no a "abcde" o "bcde".
GRID-SEARCH-VISIBLE
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 77 de 125

Capacitacin Desarrollando un Proyecto


Cuando es verdadero (por defecto), la bsqueda se realizar nicamente contra las
celdas visibles en el grid.
GRID-SEARCH-HIDDEN
Cuando es verdadero, la bsqueda se realizar nicamente contra las celdas ocultas
en el grid.
GRID-SEARCH-ALL-DATA
Cuando es verdadero, la bsqueda se realizar contra las celdas visibles y ocultas en
el grid.
GRID-SEARCH-SKIP-CURRENT
Cuando es verdadero (por defecto), la celda donde se inicia la bsqueda no es tenida
en cuenta.
GRID-SEARCH-MOVES-CURSOR
Cuando es verdadero (por defecto), El cursor del grid se mover a la celda
encontrada despus de realizarse la bsqueda. El grid podr realizar un
desplazamiento para ubicar la celda visible. Si la bsqueda falla el cursor no se
mover, cuando esta propiedad es falsa el cursor no se mover as el resultado de la
bsqueda haya sido exitoso.
GRID-SEARCH-COLUMN
Cuando GRID-SEARCH-ALL-COLUMNS es verdadero, la bsqueda se realiza a
travs de cada columna en el grid. Por otra parte, si usted fija GRID-SEARCHCOLUMN a un valor diferente a cero, la bsqueda se har en la columna
especificada y las otras no sern tenidas en cuenta. Observe que una bsqueda en
un encabezado de fila o columna no son comnmente realizadas. Sin embargo,
puede realizar una bsqueda en una fila de encabezado configurando GRIDSEARCH-COLUMN a "1" (asumiendo que tiene una fila de encabezado). No podr
realizar bsquedas en una columna de encabezado.
Si necesita limitar su bsqueda a 2 o ms columnas, pero no a todas, entonces
necesitar programar la bsqueda interna limitada, configurando GRID-SEARCHALL-COLUMNS y GRID-SEARCH-SKIP-CURRENT a verdadero y GRID-SEARCHMOVES-CURSOR a falso. Luego realizar la bsqueda en un bucle, terminando el
bucle cuando GRID-SEARCH-COLUMN sea igual a una de las columnas deseadas o
cuando la bsqueda falle. La bsqueda falla cuando no encuentra una concordancia
o cuando retorna la primera celda que corresponde al criterio de bsqueda (en este
caso, los datos pueden aparecer en celdas fuera de las columnas no deseadas).
Despus de realizar una bsqueda exitosa, coloque el cursor en la celda usando las
propiedades CURSOR-X y CURSOR-Y.
El siguiente ejemplo desactiva "wrapping" y activa una bsqueda hacia adelante en
un particular grid. Muestra cmo se cambian algunos valores, mientras otros son
dejados igual al valor por defecto:
COPY "acugui.def".
INQUIRE GRID-1, SEARCH-OPTIONS
IN GRID-SEARCH-OPTIONS
SET GRID-SEARCH-WRAP TO FALSE
SET GRID-SEARCH-FORWARDS TO TRUE
MODIFY GRID-1,
SEARCH-OPTIONS = GRID-SEARCH-OPTIONS

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 78 de 125

Capacitacin Desarrollando un Proyecto


Nota: Los valores por defecto sern los mismos si usted mueve ZEROS a la estructura de
datos GRID-SEARCH-OPTIONS. (create, modify, inquire)
Propiedad SEARCH-TEXT (create, modify)
Tipo Alfanumrico
Cuando usted asigna esta propiedad, el grid inicia una bsqueda usando las actuales
opciones de bsqueda. El programa busca el valor asignado a esta propiedad. La bsqueda
comienza en la celda identificada por las propiedades X y Y. Si la bsqueda es exitosa,
entonces X y Y sern actualizadas para reflejar la celda encontrada. El valor del regreso de
esta propiedad es la posicin de la bsqueda:
GRDSRCH-NOT-FOUND
GRDSRCH-FOUND
GRDSRCH-WRAPPED

Valor 0
Valor 1
Valor 2

No se encuentran datos concordantes


Bsqueda exitosa
Bsqueda exitosa pero hubo un wrap

Si X y Y identifican una celda fuera del rango de celdas, entonces el comienzo de la celda es
determinado como si la bsqueda es "wrapped" desde la posicin lgica (X,Y). Por ejemplo,
si el punto de partida es una celda ms all de la celda al extremo derecho, una bsqueda
comenzar en la primera celda de la siguiente fila. Puede usar esto para forzar una bsqueda
del grid completo iniciando delante de la fila "0", o una bsqueda hacia atrs desde la ltima
fila al final del grid.
El siguiente cdigo de ejemplo realiza una bsqueda en un grid con la palabra "ciencia",
iniciando en la celda donde el cursor se encuentra ubicado:
INQUIRE GRID-1, CURSOR-X IN CUR-COL,
CURSOR-Y IN CUR-ROW
MODIFY GRID-1 (CUR-ROW, CUR-COL)
SEARCH-TEXT = "ciencia" GIVING RESULT-1
IF RESULT-1 > GRDSRCH-NOT-FOUND
DISPLAY MESSAGE BOX "Bsqueda exitosa".
Nota: Las opciones de bsqueda en el grid no se visualizan a travs de una interfase de
usuario. Usted debe construir una interfase para que el usuario pueda realizar una
bsqueda. Una interfase comn es una ventana de dialogo pop-up, donde el usuario pueda
fijar el texto de bsqueda y la opcin deseada. Otra interfase tpica es un control entry-field
en la misma ventana del grid, con un botn Buscar al lado del entry-field.
Propiedad SEPARATION (create, modify)
Tipo Numrico
Describe el monto del espacio en blanco preservado al final de cada columna. Este espacio
aparece entre el final del dato y el inicio de la siguiente columna. Este espacio es expresado
como dcimas del ancho estndar de la fuente. Por ejemplo, un valor de "5" indica la mitad
del ancho de un carcter.
Cada vez que usted configura esta propiedad, fija el monto de separacin para la siguiente
columna en el grid, iniciando con el primero. Configurando esta propiedad a "-1" limpia el
monto de separacin previamente especificado. El valor por defecto 5", usado para una
separacin no definida es dado por la variable de configuracin COLUMN-SEPARATION.
Propiedad START-X (create, modify)
Tipo Numrico
La propiedad START-X es usada en conjuncin con las propiedades START-Y, X, y Y para
definir una regin rectangular en el grid. Esta regin es usada cuando configura REGIONCOLOR. START-X contiene el nmero de columna. La regin pintada REGION-COLOR
comienza con START-X y se extiende hasta X.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 79 de 125

Capacitacin Desarrollando un Proyecto


Propiedad VIRTUAL-WIDTH (create, modify, inquire)
Tipo Numrico
Fija el ancho completo lgico del grid. Esto es usado nicamente con grids que tienen una
barra de desplazamiento horizontal. Este valor es expresado en caracteres (medido usando
el ancho de la fuente estndar). Si no es especificado, el grid se extiende a 10 caracteres
ms all del ltimo DISPLAY-COLUMN especificado (haciendo la columna 10 caracteres ms
de ancho).
Propiedad VPADDING (create, modify, inquire)
Tipo Numrico
Configura el monto del espacio vertical en blanco de cada fila. Este valor es el porcentaje del
ancho de la fuente asignada al grid con un espacio extra adicional (p.e., separacin entre las
celdas de datos y las celdas de divisin de las filas). El valor por defecto es "50". Observe
que esto produce una apariencia similar a una serie de campos de entrada.
Propiedad X (create, modify, inquire)
Tipo Numrico
La propiedad X contiene el nmero de columna. Esto es usado en muchas propiedades para
conocer el valor de la columna. Por ejemplo, la propiedad COLUMN-COLOR fija el color para
la columna identificada por la propiedad X. El nmero de la columna comienza en "1".
Recuerde que las propiedades se configuran en el orden especfico en una declaracin.
Propiedad Y (create, modify, inquire)
Tipo Numrico
La propiedad Y es similar a la propiedad X, excepto que esta toma el nmero del registro en
lugar del nmero de la columna.

Estilo Page Grid


Cuando usa el estilo PAGED en un grid, el grid nicamente contiene la
cantidad de registros que se pueden ver por pantalla. Esto es llamado una
pgina (page) de datos. La barra de desplazamiento vertical encontrada en un
grid normal es reemplazada por cuatro botones. Estos botones responden a
los siguientes requerimientos: obtener el siguiente registro, anterior registro,
siguiente pgina o la pgina previa. Cuando el usuario hace clic en uno de
estos botones, el grid enva un mensaje al programa solicitando el apropiado
dato de acuerdo a cul botn fue presionado. Este dato normalmente viene
desde un archivo indexado. La lgica esperada del programa ser realizar una
o ms declaraciones READ NEXT o READ PREVIOUS para recuperar el dato.
El estilo Paged es conceptualmente similar al estilo page de un control list
boxes. La programacin es similar con paged list boxes, sin embargo, existen
algunas diferencias en la programacin de paged grids. Estas diferencias
hacen que la programacin sea ms sencilla en un grid con el estilo PAGED.
Las diferencias importantes son:
La estructura de programacin es simplificada porque los procedimientos
de evento, en lugar de responder a varios valores de excepcin, son
codificados en paginacin lgica.
Menor cdigo es requerido, porque no hay la necesidad de escribir mayor
cdigo para las acciones Next Page y Previous Page. Puede optar por
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 80 de 125

Capacitacin Desarrollando un Proyecto


escribir cdigo adicional si quiere definir las acciones diferentes a la
respuesta normalmente esperada de las operaciones Next Page y Previous
Page.
El cdigo en respuesta a las operaciones First Page y Last Page es simple.
Adicionalmente, comunica ms requerimientos a travs de los eventos MSGPAGED-NEXT, MSG-PAGED-PREV, MSG-PAGED-NEXTPAGE, MSGPAGED-PREVPAGE, MSG-PAGED-FIRST y MSG-PAGED-LAST.
El estilo PAGED nunca toma ms datos a los que pueda mostrar el grid.
Cuando adiciona un registro al final de una pgina completa, el control borra el
registro ubicado en la parte superior y que no corresponde a un encabezado.
Esto causa que el contenido del grid se desplace hacia arriba. Cuando
adiciona un registro en cualquier otra posicin, el ultimo registro en el grid es
eliminado. Esto causa que todos los registros despus del primero existente
sean desplazados hacia abajo.
Nota: La celda actual no se cambia cuando el grid es paginado. En otras palabras, si el
cursor del grid esta en la fila 2, columna 3, permanecer en la fila 2, columna 3 despus que el
usuario hace clic en el botn "next record". Esto mover efectivamente el cursor a un nuevo
registro, aunque su localizacin fsica no haya cambiado.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 81 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.7
Hasta ahora...

Ha utilizado la mayora de controles grficos y asociado a pargrafos


dentro del event paragraph.

Objetivos

Configurar algunas propiedades del GRID.


Escribir el cdigo necesario para cargar el GRID, a partir de un
archivo de datos.
Asociar el cdigo a la ventana principal del proyecto.

Tareas generales

Configure las propiedades del GRID, asociando una tabla de datos


en la propiedad Column Settings.
Escriba el cdigo necesario para cargar el GRID, utilice las
propiedades MASS-UPDATE, RESET-GRID y MODIFY.
Genere y compile el proyecto.
Verifique el programa, utilizando el debug de AcuBench.
El diseo final de la ventana con el GRID cargado podra quedar de
la siguiente forma:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 82 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.8
Hasta ahora...

Conoce en su mayora los controles grficos y sus propiedades,


asignado pargrafos a los repectivos controles.

Objetivos

Asignar eventos al GRID.


Escribir el cdigo necesario para asociar a los eventos.
Identificar el comportamiento de los eventos asociados al GRID.

Tareas generales

Aplique el estilo necesario para que crear ttulos de encabezado.


Escriba el cdigo necesario para asociar a los eventos MSGGOTO-CELL,
MSG-GOTO-CELL-DRAG,
MSG-HEADINGDRAGED.
Genere y compile el proyecto.
Verifique el programa, utilizando el debug de AcuBench.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 83 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.9
Hasta ahora...

Conoce en su mayora la aplicacin de los controles grficos, sus


propiedades e introduce a la asociacin de eventos.

Objetivos

Asociar eventos de modo de entrada al GRID.


Escribir el cdigo necesario para asociar a los eventos.
Identificar el comportamiento de los eventos asociados al GRID.

Tareas generales

Escriba el cdigo necesario para que el usuario pueda realizar una


modificacin en una celda y posteriormente ese cambio se vea
reflejado en el archivo de datos.
Genere y compile el proyecto.
Verifique el programa, utilizando el debug de AcuBench.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 84 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.10
Hasta ahora...

Aplica los diferentes eventos a un control grid.

Objetivos

Aprender la lgica de desarrollo para un grid con estilo PAGED.


Entender el cdigo entregado con este laboratorio.
Asociar los pargrafos y dems necesarios al GRID.

Tareas generales

Cambie la propiedad al GRID para aplicar el estilo PAGED.


Elimine las propiedades que no tengan relacin con el estilo
PAGED.
Cree o Asocie las propiedades necesarias para tener una
funcionalidad exitosa en el grid.
Escriba el cdigo que le ha sido entregado en la hoja impresa, en
su Event Paragraph.
Corrija las lneas que deban ser corregidas, segn el nombre
asignado a los controles.
Asocie las rutinas de pargrafo a su proyecto dependiendo del
evento generado.
Compile y ejecute el programa.
Verifique el programa, utilizando el debug de AcuBench.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 85 de 125

Capacitacin Desarrollando un Proyecto


*---INICIA-CLIENTES.
MOVE LOW-VALUES
TO
CD-CLIENTE.
START CLIENTES
KEY
>= CD-CLIENTE
INVALID KEY EXIT PARAGRAPH
END-START.
MODIFY GD-CLIENTES,
ACTION ACTION-FIRST-PAGE.
*---EVENTOS-PAGED.
EVALUATE EVENT-TYPE
WHEN MSG-PAGED-FIRST
PERFORM EVENTO-PRI-PAG
WHEN MSG-PAGED-LAST
PERFORM EVENTO-ULT-PAG
WHEN MSG-PAGED-NEXT
PERFORM EVENTO-SIG-PAG
WHEN MSG-PAGED-PREV
PERFORM EVENTO-PRE-PAG
END-EVALUATE.
*---EVENTO-SIG-PAG.
PERFORM
EVENT-DATA-2 TIMES
READ CLIENTES
NEXT RECORD
AT END MOVE EVENT-ACTION-FAIL TO EVENT-ACTION
EXIT PARAGRAPH
END-READ
END-PERFORM
PERFORM
MOVER-DATOS-AL-GRID
MODIFY GD-CLIENTES,
RECORD-TO-ADD = TABLA-CLIENTES.
*---EVENTO-PRE-PAG.
PERFORM
EVENT-DATA-2 TIMES
READ CLIENTES
PREVIOUS RECORD
AT END MOVE EVENT-ACTION-FAIL TO EVENT-ACTION
EXIT PARAGRAPH
END-READ
END-PERFORM.
PERFORM
MOVER-DATOS-AL-GRID.
MODIFY GD-CLIENTES,
INSERTION-INDEX = 2, RECORD-TO-ADD = TABLA-CLIENTES.
*---EVENTO-PRI-PAG.
MOVE LOW-VALUES
TO
CD-CLIENTE.
START CLIENTES
KEY
>= CD-CLIENTE
INVALID KEY MOVE EVENT-ACTION-FAIL TO EVENT-ACTION
END-START.
*---EVENTO-ULT-PAG.
MOVE HIGH-VALUES

TO

CD-CLIENTE

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 86 de 125

Capacitacin Desarrollando un Proyecto


START CLIENTES
KEY
<= CD-CLIENTE
INVALID KEY MOVE EVENT-ACTION-FAIL TO EVENT-ACTION
END-START.
*---MOVER-DATOS-AL-GRID.
INITIALIZE
MOVE CD-CLIENTE
MOVE ID-CLIENTE
MOVE TP-IDECLI
MOVE DE-CLIENTE

TABLA-CLIENTES
TO
CD-CLIENTE-W
TO
ID-CLIENTE-W
TO
TP-CLIENTE-W
TO
DE-CLIENTE-W.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 87 de 125

Capacitacin Desarrollando un Proyecto

Tree View Control


El control Tree View visualiza una lista de datos en orden jerrquico. Esta lista
es endentada para mostrar la relacin entre los tem de datos. El usuario puede
expandir o contraer tem en la lista para ver u ocultar tem dependientes. Un
ejemplo de un control tree view es el "Contenido" del explorador de Windows.

tem
En un control Tree view, cada tem en una lista jerrquica es identificado por un
ID que es asignado al mismo tiempo que el elemento es adicionado a la lista.
Esto proporciona una nica forma de identificar cada tem, permitiendo as,
tener tem duplicados en cualquier parte de la lista sin riesgo a ser confundidos.
Los identificadores en un control Tree view son declarados en COBOL como un
tem de dato USAGE POINTER.
El control Tree view tiene una variedad de propiedades especiales, incluyendo
la habilidad para almacenar datos ocultos con cualquier tem y visualizar
bitmaps adyacentes a los tem. La propiedad especial llamada ITEM es usada
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 88 de 125

Capacitacin Desarrollando un Proyecto


para identificar cual tem en la jerarqua ha sido afectado por el valor de la
propiedad en mencin. Comnmente, usted fija el valor de la propiedad ITEM al
ID del tem activo, y luego fijar el resto de propiedades (como son: ITEM-TEXT
o ENSURE-VISIBLE o HAS-CHILDREN o BITMAP-NUMBER) asignado un
valor o configurando este tem. Observe que usted debe fijar el valor de ITEM
antes de fijar otras propiedades. ITEM es el "ndice" para el control Tree view
(ver las declaraciones MODIFY e INQUIRE para una descripcin de los
ndices).
Relacin Padre e Hijo
Los tem en un control Tree view son colocados dentro de la lista jerrquica
acorde a la relacin "padres" e "hijos" que usted especifique. La propiedad
especial PARENT permite especificar si un tem est por encima nivel de la
jerarqua (PARENT = 0, por defecto) o es el hijo de otro tem en la jerarqua (el
valor PARENT fijar el ID del tem padre).
Otra especial propiedad del control Tree view, HAS-CHILDREN, permite
especificar si nuevos tem hijos se pueden agregar por debajo de un tem
especfico en la lista. Cuando HAS-CHILDREN = 0 (por defecto), un tem tendr
hijos nicamente si se encuentran fsicamente presentes en el control. Esto no
permite adicionar tem hijos por el usuario.
Si HAS-CHILDREN es fijado a un valor diferente a cero (HAS-CHILDREN = 1),
indica que el tem identificado por la propiedad ITEM permite adherir tem hijos.
Esta configuracin es til cuando sea impractico mostrar de inmediato el rbol
de tem al control. En esta situacin, usted carga el nivel ms alto del rbol y
luego usa esta propiedad para identificar cul de los tem primarios permiten
tener hijos. Entonces, cuando el usuario expanda un tem en particular, usted
programa una respuesta en su programa para el evento MSG-TV-EXPANDING
adicionando el apropiado tem hijo al control. La propiedad HAS-CHILDREN
contiene cul tem del control podr ser expandido.
Adicionando tem hijos
En muchos casos, no es practico mostrar la totalidad de un Tree View con todos
los tem que contiene. Por ejemplo, si usted desea representar cada archivo o
carpeta en un drive de un disco local, con sus jerarquas, un control Tree view
es la mejor forma de hacerlo. Sin embargo, esto tomara bastante tiempo si
deseo mostrar todo el rbol: cada archivo o carpeta en el drive deber ser
localizado. Una forma para resolver este inconveniente es mostrar nicamente
los niveles superiores, y luego ir mostrando los subniveles en la medida que el
usuario los visite.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 89 de 125

Capacitacin Desarrollando un Proyecto


Para hacer esto, usted debe notificar que el tem superior tiene derecho a
contener un hijo y de esta forma ser expandido. Para ello debe fijar la propiedad
HAS-CHILDREN a "1" cuando usted adicione el tem padre. Por ejemplo:
MODIFY TV-1, ITEM-TO-ADD = "tem Padre"
GIVING PARENT-1, HAS-CHILDREN = 1
Esto informa al control que el tem tiene un hijo, an cuando, el hijo no este
fsicamente presente en el control.
Hay dos enfoques que usted puede tomar para administrar la visualizacin del
hijo de un tem:
Adicionar hijos tem una sola vez
La primera estrategia es adicionar los tem hijos la primer vez que el padre es
expandido, luego salir en el control. Para codificar esto, responda al evento
MSG-TV-EXPANDING viendo si existe un hijo del tem padre. Si no, entonces
adicinelos en este punto. Un tpico procedimiento de evento podra ser:
TREE-VIEW-EVENT-1.
EVALUATE EVENT-TYPE
WHEN MSG-TV-EXPANDING
IF EVENT-DATA-1 = TVFLAG-EXPAND
|tem expandido
MODIFY TV-1( EVENT-DATA-2 ),
NEXT-ITEM = TVNI-CHILD GIVING ITEM-1
IF ITEM-1 = NULL
|Sin hijos
PERFORM ADICIONA-HIJO
END-IF
END-IF
END-EVALUATE
El procedimiento ADICIONA-HIJO hara el trabajo necesario para adicionar los
hijos. En este ejemplo, EVENT-DATA-1 contiene un flag que describe si el tem
padre ha sido expandido o contrado, y EVENT-DATA-2 contiene el ID del tem
padre.
Adicionando tem hijos en cada expansin
La segunda estrategia es adicionar tem hijos cada vez que el padre es
expandido, y luego removerlos cuando el padre sea contrado. El cdigo para
adicionar tem es ligeramente fcil, porque no tiene que prevenir el
adicionamiento de mltiples tem. Sin embargo, debe escribir cdigo adicional
para manejar la remocin de los tem hijos. Un tpico procedimiento de evento
para esto sera:
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 90 de 125

Capacitacin Desarrollando un Proyecto


TREE-VIEW-EVENTO-1.
EVALUATE EVENT-TYPE
WHEN MSG-TV-EXPANDING
IF EVENT-DATA-1 = TVFLAG-EXPAND
PERFORM ADICIONA-HIJO
END-IF
WHEN MSG-TV-EXPANDED
IF EVENT-DATA-1 = TVFLAG-COLLAPSE
MODIFY TV-1, ITEM-TO-EMPTY = EVENT-DATA-2
END-IF
Nota: Es importante que adicione el hijo en respuesta al evento MSG-TV-EXPANDING, y lo
remueva en respuesta al evento MSG-TV-EXPANDED. Cualquier otra estrategia puede ser
confusa y causar resultados impredecibles al control.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 91 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.11
Hasta ahora...

Conoce el funcionamiento de los controles grficos y aplica eventos a


dichos controles.

Objetivos

Crear un nuevo programa.


Aprender el uso del control TREE VIEW.
Crear el control Tree view.
Asociar el cdigo necesario para implementar una ejecucin en un
control Tree View.

Tareas generales

Copie el archivo treeview.bmp en la carpeta Resource.


En la ventana del programa Lab-01, cambie la propiedad Window
Type a Independent.
Cree un nuevo programa estndar llamado Lab-02.
Cree un control Tree view en la ventana.
Cree un botn de salir de la aplicacin.
Cree un label con el nombre LA-VENMEN-SCR
Cree una variable para este label llamada DE-MENAPL-W con la
propiedad PIC X(256).
Asocie el bitmap treeview.bmp al control Tree view.
Como nombre para el control, asigne TV-CLIENTE-SCR.
Cree 4 niveles de acuerdo a las siguientes caractersticas.
tem: Aplicaciones
(Name)
Bitmap Number
Expand
Has Children
Identified Pointer
Label

TV-APLICA-SCR
1
TRUE
1:True
ID-ITEAPL-W
Aplicaciones

Tipo Padre

tem: Clientes
(Name)
Bitmap Number
Expand
Has Children
Identified Pointer
Label

TV-CLIENT-SCR
3
FALSE
0:False
ID-APLCLI-W
Clientes

tem: Utilidades
(Name)
Bitmap Number
Expand
Has Children
Identified Pointer
Label

TV-UTILID-SCR
1
FALSE
0:False
ID-ITEUTI-W
Utilidades

tem: Ayuda
(Name)
Bitmap Number

TV-UTILID-SCR
1

Tipo Hijo

Tipo Padre

Tipo Padre

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 92 de 125

Capacitacin Desarrollando un Proyecto


Expand
Has Children
Identified Pointer
Label

FALSE
0:False
ID-ITEAYU-W
Ayuda

La presentacin de la ventana podra quedar de la siguiente forma:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 93 de 125

Capacitacin Desarrollando un Proyecto

Web Browser

El control WEB BROWSER es usado en conjunto con Microsoft Internet


Explorer 4.0 y superiores. Proporciona el panorama que usted ve en la
ventana principal de Microsoft Internet Explorer, suministrando adems la
funcionalidad para visualizar contenido de pginas Web HTML, script,
controles ActiveX y contenido applet de Java. El control tambin alberga
documentos objeto OLE (Object Linking and Embedding), soporta
hipervnculos OLE y permite a los usuarios visualizar objetos Windows como
carpetas y archivos.

Mtodos
Los Mtodos son implementados como propiedades en ACUCOBOL-GT. Para
invocar un mtodo, usted modifica el control, configura el valor de varias
propiedades que representan los parmetros del mtodo. Luego, usualmente
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 94 de 125

Capacitacin Desarrollando un Proyecto


en la misma declaracin modificada, fija una propiedad particular que
representa el mtodo a invocar. En algunos casos solo configura el valor de un
control invocando un mtodo.
A continuacin se presenta una tabla de los mtodos con su correspondiente
propiedad ACUCOBOL y descripcin:

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 95 de 125

Capacitacin Desarrollando un Proyecto

mtodo
GoBack
GoForward

Propiedad
GO-BACK
GO-FORWARD

GoHome
GoSearch
Navigate

GO-HOME
GO-SEARCH
VALUE

Refresh
Stop

REFRESH
STOP

Descripcin
Navega al tem previo en el histrico de la lista.
Navega al tem siguiente en el histrico de la
lista.
Navega a la pgina actual configurada
Navega al portal de Microsoft
Navega al recurso identificado por un URL o ruta
de archivo.
Recarga la pgina actual
Detiene una carga de pgina

Para invocar los mtodos GoBack, GoForward, GoHome, GoSearch, Refresh,


y Stop, simplemente modifique el control, configurando el valor de la propiedad
a "1". Para invocar el mtodo Navigate, modifique la propiedad del control
configurando VALUE al URL deseado. Por ejemplo, para invocar el mtodo
GoBack:
MODIFY BROWSER-1 GO-BACK=1.
Para invocar el mtodo Navigate:
MODIFY BROWSER-1 VALUE="http://www.escobol.com".
O si usted tiene definido el control Web browser con una variable URL-1:
MOVE "http://www.escobol.com" to URL-1.
DISPLAY <<nombre_control>>.
Estos mtodos son invocados asincrnicamente. Esto permite que el verbo
MODIFY puede finalizar la ejecucin antes que la operacin sea completada.
Puede verificar el valor de la propiedad BUSY (ver adelante) para determinar
si la operacin ha sido completada.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 96 de 125

Capacitacin Desarrollando un Proyecto


Otras propiedades
mtodo
Busy

BUSY

Propiedad

LocationName

TITLE

LocationURL

VALUE

Type

TYPE

Descripcin
Indica s una descarga o navegacin esta en
progreso.
Nombre del recurso que el control Web browser
actualmente esta mostrando.
URL del recurso que el control Web browser
actualmente esta mostrando.
Tipo de contenido del actual documento objeto

BUSY, LOCATION-NAME, y TYPE son propiedades de lectura nicamente.


Configurar estos valores no tiene ningn efecto. Como con todas las
propiedades de control de ACUCOBOL-GT, usted puede usar el verbo
INQUIRE para obtener las propiedades del control Web browser. Por ejemplo,
chequear si un control WEB BROWSER ha completado la ejecucin del ltimo
mtodo invocado:
INQUIRE BROWSER-1 BUSY IN BROWSER-1-BUSY.
IF BROWSER-1-BUSY = 1
...
END-IF
Para obtener el URL que el navegador esta actualmente visualizando:
INQUIRE BROWSER-1 VALUE IN URL-1.
O si usted tiene definido un control Web Browser con el valor URL-1 en un
tem de su screen section, LocationURL ser movido automticamente a URL1 cuando un evento o excepcin ocurra o cuando ACCEPT termine.
El control Web browser genera los siguientes eventos:
MSG-WB-BEFORE-NAVIGATE
MSG-WB-DOWNLOAD-BEGIN
MSG-WB-DOWNLOAD-COMPLETE
MSG-WB-NAVIGATE-COMPLETE
MSG-WB-PROGRESS-CHANGE
MSG-WB-STATUS-TEXT-CHANGE
MSG-WB-TITLE-CHANGE

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 97 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.12
Hasta ahora...

Conoce en general todos los controles grficos, as como sus


aplicaciones y asociacin de eventos.

Objetivos

Crear un nuevo programa.


Aprender el uso del control WEB BROWSER.
Crear el control WEB BROWSER.
Asociar el cdigo necesario para implementar una simulacin de
un Internet Explorer.

Tareas generales

Cree un nuevo programa estndar llamado Lab-03.


Cree los siguientes controles en la ventana.
Cuatro botones de navegacin y control de acuerdo al modelo
entregado
Un control Entry Field
Un control Label
Un control Web Browser
Un control Status Bar
En la Working, cree las siguientes variables:
77 VR-ANCHO-W
77 VR-LINEA-W
77 WB-TIT-PAN

PIC
PIC
PIC

S999V99.
S999V99.
X(100)VALUE IS SPACES.

Las siguientes variables deben ser creadas con los controles


respectivos:
* WB-ONLINE-SCR
77 NU-LINWB-W PIC S9(4)V9(2) VALUE 42,50.
77 NU-TAMWB-W PIC S9(4)V9(2) VALUE 64,00.
77 DE-WEB-W PIC X(256)
VALUE "www.solutioactio.com".
* EF-URL-SCR
77 NU-TAMEF-W PIC S9(4)V9(2) VALUE 34,30.
77 DE-WEB-X PIC X(256)
VALUE "http://www.solutioactio.com".
* WB-BAR-EST
77 DE-LINEST-W PIC X(100).
* BR-WEB002-SCR
77 NU-TAMLIN-W PIC S9(4)V9(2) VALUE 64,00.
Escriba el cdigo anexo a este Laboratorio en el Event Paragraph.
Asocie los pargrafos de acuerdo a lo que usted considere se
deba asociar.
Compile y genere la aplicacin.
Analice lo realizado en el laboratorio y verifique ejecutando en
modo Debug.
La presentacin de la ventana podra quedar de la siguiente forma:
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 98 de 125

Capacitacin Desarrollando un Proyecto

Cdigo anexo Laboratorio 3.12


*----------------------------------------------------------------*-- Rutinas para el navegador web
*----Cuando la navegacin es completa.
WEB-NAV-COMPLETA.
INQUIRE WB-ONLINE-SCR
VALUE IN DE-WEB-W.
IF
DE-WEB-W
<>
DE-WEB-X
MOVE DE-WEB-W
TO
DE-WEB-X
MODIFY EF-URL-SCR,
VALUE DE-WEB-X.
*----Cambia el estado de bsqueda.
WEB-CAM-ESTADO.
INQUIRE WB-ONLINE-SCR
STATUS-TEXT IN DE-LINEST-W.
MODIFY WBSTATUS-LABEL
TITLE DE-LINEST-W.
*----Cambia el ttulo.
WEB-CAM-TITULO.
INQUIRE WB-ONLINE-SCR

TITLE IN WB-TIT-PAN.

*----Ir a pgina Web de escobol.


WEB-SOLUTIO.
MOVE "http://www.escobol.com" TO DE-WEB-W
MODIFY EF-URL-SCR,
VALUE DE-WEB-W
MODIFY WB-ONLINE-SCR
VALUE DE-WEB-W.
*----Enviar mail.
WEB-ENV-MAIL.
MOVE "mailto:jguzmansu@yahoo.com" TO DE-WEB-W
MODIFY EF-URL-SCR,
VALUE DE-WEB-W
MODIFY WB-ONLINE-SCR,
VALUE DE-WEB-W.
*----Botn anterior de navegacin.
WEB-BOT-ANTERIOR.
MODIFY WB-ONLINE-SCR
GO-BACK = 1.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 99 de 125

Capacitacin Desarrollando un Proyecto

*----Botn siguiente de navegacin.


WEB-BOT-SIGUIENTE.
MODIFY WB-ONLINE-SCR
GO-FORWARD = 1.
*----Actualiza Browser.
WEB-ACT-BROWSER.
MOVE DE-WEB-X
TO
DE-WEB-W.
MODIFY EF-URL-SCR,
VALUE DE-WEB-W.
MODIFY WB-ONLINE-SCR
VALUE DE-WEB-W.
*---VENTANA-AJUSTABLE.
EVALUATE TRUE
WHEN EVENT-OCCURRED
EVALUATE EVENT-TYPE
WHEN NTF-RESIZED
COMPUTE VR-LINEA-W = EVENT-DATA-1/100
COMPUTE VR-ANCHO-W = EVENT-DATA-2/100
PERFORM AJUSTAR-CONTROLES
END-EVALUATE
END-EVALUATE.
*---AJUSTAR-CONTROLES.
COMPUTE VR-LINEA-W
=
EVENT-DATA-1/100
COMPUTE VR-ANCHO-W
=
EVENT-DATA-2/100
COMPUTE NU-TAMEF-W
=
VR-ANCHO-W - 15,0.
COMPUTE NU-TAMLIN-W
=
VR-ANCHO-W - 0,30.
COMPUTE NU-LINWB-W
=
VR-LINEA-W - 7,50.
COMPUTE NU-TAMWB-W
=
VR-ANCHO-W - 0,30.
MODIFY EF-URL-SCR
SIZE NU-TAMEF-W CELLS.
MODIFY BR-WEB001-SCR
SIZE NU-TAMLIN-W CELLS.
MODIFY BR-WEB002-SCR
SIZE NU-TAMLIN-W CELLS.
MODIFY WB-ONLINE-SCR,
LINES NU-LINWB-W CELLS,
SIZE NU-TAMWB-W CELLS.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 100 de 125

Capacitacin Desarrollando un Proyecto

Herramientas y utilidades
AcuBench incluye acceso a una serie de utilidades a las cuales se puede
acceder desde el men Tools. Al seleccionar alguna de las utilidades desde el
men, causa que el workbench visualice un cuadro de dialogo, que permite
seleccionar fcilmente las opciones especificadas y ejecutar la utilidad.
Desde el men Tools, puede seleccionar:
cblutl
vutil, la utilidad para archivos vision
vio
alfred, editor de archivos indexados
logutil
Cblutl
cblutil es usado para ensamblar archivos objeto individuales en librerias objeto, mostrar
informacin de los archivos objeto y trasladar cdigo portable ACUCOBOL-GT's en cdigo
nativo (ver Figura 3.1.). Puede crear tambin una librera objeto por los comandos
Project/Settings y Project/Properties.

Figura 3.1.
Vutil
AcuBench suministra una interfaz grfica que desempea las funciones para los archivos
vision. Vutil opera en archivos indexados Vision y puede ser usado para extractar informacin
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 101 de 125

Capacitacin Desarrollando un Proyecto


de la estructura de un archivo, extractar registros y reconstruir archivos corruptos.

Figura 3.2.
Vio
Vio es una utilidad de transferencia de archivo que permite crear archivo de datos y contenido
de acceso a archivos. Puede colocar un archivo vio en medios externos, tal como un disquete,
o en el disco duro. Vio es adaptado para mover los archivos a sistemas operativos diferentes
porque est disponible en la mayora de las plataformas sostenidas por ACUCOBOL GT y
porque ajusta automticamente aspectos dependiendo de la mquina, tal como un byteswapping. Tambin permite manejar mltiples volmenes. Vio corre en dos modos: el modo
de la entrada y el modo de la salida. Use el modo de salida para crear un archivo. Use el
modo de entrada para lectura y extraccin de un archivo.

Figura 3.3.

Alfred
Alfred es editor de registros indexados. Utilice alfred para ver, modificar, adicionar o eliminar
registros individuales almacenados en un archivo indexado. Alfred puede ser especialmente
til para depurar en un programa las disposiciones del archivo de datos y acciones de E/S.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 102 de 125

Capacitacin Desarrollando un Proyecto


Puede ser tambin til a administradores de sistema que necesitan hacer los cambios
ocasionales a nivel del registro a archivos de datos. Observe que Alfred no es adaptado a
cambios repetitivos ni en gran escala.
Nota: Para poder utilizar Alfred, es necesario tener una estructura de datos XFD (diccionario
de datos) de su archivo de datos indexado.

Logutil
La utilidad logutil es usada para examinar y editar logs de transacciones de archivos. Esta
utilidad puede nicamente ser usada con archivos log creados en asocio con archivos Vision .

Figura 3.4

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 103 de 125

Capacitacin Desarrollando un Proyecto

Laboratorio 3.13
Hasta ahora...

Conoce el funcionamiento de AcuBench y de sus componentes, as


como los controles grficos y demas relacionados con un proyecto

Objetivos

Crear un Proyecto.
Crear una estructura de datos.
Generar el cdigo necesario para el proyecto.

Tareas generales

Con la informacin adjunta, cree un proyecto, utilizando las


herramientas AcuBench que usted estime convenientes.

Anexo Laboratorio 3.13

La compaa CONSTRUCTOR, desea que usted le desarrolle una aplicacin para


administrar el inventario de las referencias de sus productos, para ello le suministra la
siguiente informacin:
Descripcin
Cdigo de la Referencia
Descripcin de la Referencia
Cantidad de Referencias
Valor de la referencia
Nmero de la Orden
Ubicacin en Almacn
Estante 1
Estante 2
Estante 3

Tamao
5 digitos
256 caracteres
5 digitos
12 enteros y 2 decimales
8 caracteres

Con esta informacin genere un proyecto en AcuBench para cargar, modificar y


eliminar una referencia, as como ver una lista de consulta de referencias.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 104 de 125

Capacitacin Desarrollando un Proyecto

Administracin de Transacciones en Archivos


El estndar COBOL presenta una debilidad en su manejo de operaciones de
archivo y es el de no proporcionar un mtodo de definir las transacciones.
Los beneficios de un sistema de administracin de transacciones son mejor
ilustrados con un ejemplo: Supongamos que tenemos una aplicacin COBOL
que maneja la entrada de la orden, quizs entonces realiza estos pasos para
aceptar una orden:
1.
2.
3.
4.

Escribir un registro de factura.


Actualizar un registro de cliente.
Escribir en un registro de nmina las comisiones de venta.
Actualizar un registro de inventarios.

Esta serie de cuatro operaciones de archivo es una unidad lgica. Si el


programa fuese interrumpido, y completado nicamente alguna de las cuatro
operaciones, entonces los archivos quedaran inconsistentes. Por ejemplo, si
el programa se interrumpe despus de actualizado el registro del cliente, pero
antes de actualizar el registro de inventarios, por consiguiente no tendramos
acceso al registro en el inventario.
La solucin para este problema es la de proveer un mtodo donde el
programador pueda definir un conjunto de operaciones que permitan que todo
ocurra o que todo no ocurra. Por lo tanto, si el programa encuentra un error o
una terminacin, los archivos quedan en un estado consistente.

Registro de Transacciones
ACUCOBOL-GT soluciona este problema proveyendo la facilidad de generar
un registro de transacciones. Todas las operaciones que hacen parte de una
transaccin son registradas. Una vez registradas, pueden ser consignadas
commit o reversadas rollback por el programa.
Si el programa es interrumpido o el sistema falla, el registro (log) del archivo
puede ser usado para reconstruir una transaccin completa, de ese modo
retorna todos los archivos a un estado consistente.
El administrador de transacciones ofrece estas dos opciones:
Suministrar al programador la habilidad para definir transacciones,
consignar commit o reversar rollback (usualmente en repuesta a una
condicin de error).

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 105 de 125

Capacitacin Desarrollando un Proyecto


La habilidad para reconstruir archivos a un estado consistente despus que
el programa o el sistema falla. Esta operacin es llamada "recovery."

Tipos de archivo
En general, las transacciones aplican a archivos relativos e indexados, de tipo
Vision, C-ISAM, y BTRIEVE, as como tambin para base de datos Acu4GL
(las cuales son tratadas como archivos indexados).
Cada operacin de transaccin es ejecutada en el sistema de archivos
vinculada con el runtime ACUCOBOL-GT. Cada sistema del archivo usa su
propio mecanismo para manejar las operaciones de la transaccin, y algunos
y algunos tienen sus propios archivos de log.
Los registros de transaccin suministran lo siguiente:
Un mtodo indicando que registro de transaccin es deseado e
identificando cual archivo de log usar.
Un medio para decidir cual archivo de operaciones registrar y cual archivo
tiene la capacidad para reversar rollback.
La habilidad para iniciar start, consignar commit, y reversar rollback,
transacciones en COBOL.
Una rutina para realizar la funcione de recuperacin recovery.
Un utilitario para examinar y editar un archivo de registro de transacciones.

Verbos para administracin de transacciones


Son tres los verbos usados en ACUCOBOL-GT para administrar transacciones ,
esto son:
START TRANSACTION
COMMIT TRANSACTION
ROLLBACK TRANSACTION
START TRANSACTION Identifica el inicio de una transaccin.
COMMIT TRANSACTION Indica el final de una transaccin y consigna los
cambios hechos.
ROLLBACK causa que la transaccin sea reversada o cancelada.
Hay un implcito COMMIT antes de un STOP RUN o antes del final del
programa. Sin embargo, el runtime desempea un implcito ROLLBACK antes
de un STOP RUN si la variable de configuracin STOP-RUN-ROLLBACK es
fijada. Si el runtime system es terminado por el usuario o encuentra un error
fatal previamente a completar una transaccin, entonces un ROLLBACK ocurre
automticamente.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 106 de 125

Capacitacin Conversin de Aplicaciones


COBOL

Unidad 4: Conversin de Aplicaciones COBOL


Anlisis de conversin
ACUCOBOLTM-GT incluye una potente herramienta de conversin que ayuda
a automatizar el proceso de convertir en grficas las pantallas basadas en
caracteres. La herramienta, conocida como Character-to-GUI Wizard, le
permite importar rpidamente las pantallas de caracteres al entorno de trabajo
AcuBench, reduciendo notablemente el tiempo, esfuerzo y costes de realizar
una conversin a GUI. Aunque la herramienta slo est disponible de
momento para plataformas Windows, el cdigo compilado resultante de la
conversin se puede ejecutar en cualquier plataforma soportada por
ACUCOBOL-GT en tiempo de ejecucin.
El asistente Character-to-GUI Wizard trabaja examinando una aplicacin de
caracteres en ejecucin y, en un determinado momento, construyendo una
pantalla grfica equivalente. Esta pantalla se importa automticamente al
AcuBench Screen Designer donde podr hacer las modificaciones que desee.
Luego puede usar AcuBench para producir la descripcin de una Screen
Section (Seccin de pantalla) de la pantalla grfica e integrar esa nueva
Screen Section en el programa original.
El Character-to-GUI Wizard est diseado para trabajar con cualquier pantalla
de caracteres que haya creado usando la sintaxis ACUCOBOL-GT. Esto le
permite trabajar con la mayora de programas existentes basados en
caracteres. Tenga en cuenta que el asistente trabaja con programas que usen
cualquiera de las dos tcnicas principales de manejo de pantallas de
ACUCOBOL-GT: la Screen Section y la sentencia en lnea
ACCEPT/DISPLAY.
Cuando el asistente convierte una pantalla de caracteres a grficos, cada
campo de la pantalla original se crea como etiqueta o como campo de entrada.
Estos controles se colocan en las mismas posiciones que los correspondientes
campos y tienen el mismo tamao. Las etiquetas tienen el mismo texto que los
campos a partir de los que se crearon. El elemento fuente de datos, si existe,
se une al control de forma que se convierte en la propiedad valor
correspondiente cuando el control se ve en el Screen Designer. La mayor
parte del resto de la informacin, incluido el color, no se copia. El color no se
copia porque la mayora de esquemas de color de caracteres no se ven bien
en un sistema grfico.
El asistente usa reglas especiales para decidir si generar un campo, una
etiqueta o un campo de entrada. Si descubre que estas reglas de conversin
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 107 de 125

Capacitacin Conversin de Aplicaciones


COBOL
producen efectos no deseados (por ejemplo, pantallas con un exceso de
campos de entrada), puede convertir la pantalla con un juego de reglas
alternativo.

Funcionamiento del Asistente


Para usar el asistente, primero debe hacer que su programa funcione usando
ACUCOBOL-GT en una mquina de desarrollo Windows. Para hacer su
trabajo, el asistente necesita el compilador y tiempo de ejecucin, por lo que
primero debe hacer que su programa se pueda ejecutar bajo Windows.
Normalmente, eso implica llevar el cdigo objeto a la mquina Windows,
cambiar la notacin la va de acceso en los archivos de configuracin y
ejecutarlo. Sin embargo, si tiene cdigo que por algn motivo no sea
transferible, posiblemente deber hacer algunos ajustes.
Una vez que el programa est funcionando en Windows, se prepara
compilndolo con la opcin -Zw. Por ejemplo:
ccbl51 -zw myprog.cbl
Esta opcin hace que el compilador incluya comentarios en el cdigo objeto
compilado que utiliza el asistente para determinar el nombre de los elementos
de datos relevantes. Puede usar el asistente sin compilarlo antes con -Zw,
pero ser menos probable que el asistente seleccione el tipo de control
adecuado para cada campo y la Screen Section resultante no contendr
nombres de datos.
Una vez compilado con -Zw, ejecute el programa usando una nueva opcin
--Char2gui. Esto se suele hacer desde AcuBench, aunque no es necesario.
La opcin --char2gui hace que el programa arranque con el Character-to-GUI
Wizard ejecutndose en segundo plano.
Cuando arranca el programa, navegue a la pantalla que desea convertir (vea
un ejemplo en la Figura 1). Con la pantalla deseada a la vista, haga clic con el
botn derecho en el fondo de la ventana. Aparecer un men desplegable con
la opcin Build Graphical Screen. Para convertir la pantalla, seleccione esta
opcin.
En este punto, el asistente crea una versin grfica de la pantalla de la
aplicacin (ver Figura 2) basndose en un conjunto de reglas de conversin
predefinidas. La nueva pantalla grfica aparece junto con el cuadro de dilogo
Properties, que podr usar para hacer los cambios globales deseados en la
pantalla. Tambin podr cambiar el tamao de la ventana grfica arrastrando
sus bordes y suprimir los controles que no tengan utilidad.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 108 de 125

Capacitacin Conversin de Aplicaciones


COBOL
En el ejemplo, la barra de men basada en caracteres se convierte a una serie
de etiquetas y campos de entrada. Estas etiquetas y campos de entrada se
pueden borrar haciendo clic con el botn derecho en el control y
seleccionando Delete. Luego se puede reconstruir la barra de men en el
Screen Designer. (La Figura 3 muestra la pantalla convertida con los campos
de la barra de men suprimidos.) Cuando est satisfecho con la ventana
grfica, haga clic en OK en el cuadro de dilogo Properties. La pantalla
grfica y el dilogo Properties desaparecen y el control vuelve a la aplicacin
de caracteres.

Figura 1 : Pantalla basada en caracteres antes de la conversin

Figura 2 : La misma pantalla despus de la conversin inicial

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 109 de 125

Capacitacin Conversin de Aplicaciones


COBOL
Entonces podr navegar a la siguiente pantalla que desee convertir y repetir el
proceso hasta haber convertido todas las pantallas del programa. Cuando
termine de convertir pantallas, finalice la aplicacin normalmente.

Figura 3 : La misma pantalla una vez suprimidos los elementos de la barra de men

Cuando la aplicacin finaliza, el control vuelve a AcuBench y todas las pantallas


grficas nuevas se colocan en su proyecto. (Ver Figura 4.) Si ha arrancado el programa
desde la lnea de mandatos, tendr que lanzar AcuBench e importar un archivo de texto
llamado import.out. Este archivo contiene todas las pantallas que ha convertido en
esta sesin.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 110 de 125

Capacitacin Conversin de Aplicaciones


COBOL

Figura 4 : La misma pantalla despus de importala a AcuBench

El archivo import.out se guarda en el directorio de trabajo actual. Si al salir


del asistente ya existe un archivo import.out en ese directorio, ese archivo se
sobreescribe.
Una vez que las nuevas pantallas estn en AcuBench, si lo desea, puede usar
el Screen Designer para hacer otros cambios (Ver Figura 5). Puede aadir
controles grficos, definir propiedades de control, modificar el comportamiento
de la grilla y realizar cualquier otra funcin, como si estuviese diseando las
pantallas en AcuBench partiendo de cero. Puede hacer todos los cambios a la
vez o paulatinamente, segn lo necesite.
Cuando haya terminado de manipular su pantalla o pantallas en el Screen
Designer, use el comando Build/Generate para generar un archivo de cdigo
fuente COBOL (.cbl) para la pantalla. Este archivo fuente contiene un nuevo
elemento Screen Section que describe la pantalla grfica.
El ltimo paso del proceso es integrar este nuevo elemento Screen Section en
su programa. Este paso es el que ms suele tardar y puede exigir algunos
cambios en el programa. La cantidad de trabajo que tendr que hacer
depender del estado original de su programa. En general, el proceso de
conversin produce un conjunto de nuevas sentencias DISPLAY que debern
sustituir a las sentencias DISPLAY anteriores.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 111 de 125

Capacitacin Conversin de Aplicaciones


COBOL
Por ejemplo, cuando se visualizan las pantallas, lo normal es convertir en
comentario la sentencia DISPLAY anterior y sustituirla por una sentencia
PERFORM que usa la siguiente sintaxis:
PERFORM Acu-[screen-name]-Scrn
Por ejemplo:
*display ventana
PERFORM Acu-myscreen-Scrn
Este prrafo contiene cdigo para crear una ventana, presentar la pantalla y
su men principal en la ventana e inicializar los controles complejos que hayan
sido incluidos.
Cuando se muestran elementos de pantallas (por ejemplo, con sentencias
DISPLAY de nivel de campo), se suele convertir en comentario la sentencia
DISPLAY anterior y sustituirla por una sentencia MODIFY.
Por ejemplo:
*display campo
MODIFY CAMPO value << valor-variable>>
Esto se hace con ms facilidad porque el asistente conserva el nombre del
elemento Screen Section.

Figura 5 : La misma pantalla despus con el Screen Designer

Al integrar la nueva sintaxis DISPLAY en la aplicacin existente, deber


considerar adems otros aspectos de la aplicacin, como por ejemplo, las
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 112 de 125

Capacitacin Conversin de Aplicaciones


COBOL
caractersticas de los datos, las caractersticas del teclado, el manejo de
aceptaciones, la sintaxis de cierre y la secuencia de inicializacin.

Beneficios y Restricciones
Aunque el asistente Character-to-GUI Wizard es un excelente punto de partida
para cualquier proyecto de conversin a grficos, deber entender sus
criterios de diseo. Por ejemplo, debido a que imita la interfaz de caracteres, la
interfaz grfica de usuario creada por el asistente slo usa etiquetas y campos
de entrada. Puede aadir ms elementos grficos inmediatamente o despus
de un tiempo, segn sea necesario, pero no se incluyen como parte de la
conversin inicial.
Adems, el asistente no reconoce elementos ms avanzados de las
aplicaciones de caracteres, como barras de mens, ventanas desplegables o
caracteres de dibujo de lneas. De igual forma, el asistente no maneja
pantallas cuyos campos cambien en base a otras acciones. Esencialmente, al
hacer una importacin, obtiene una imagen de la pantalla como es en ese
momento. Si la pantalla es dinmica, la imagen slo expresa una forma de la
misma.
Por otra parte, los beneficios de usar el Character-to-GUI Wizard son muy
numerosos. El proceso de conversin es mucho ms rpido que las tcnicas
manuales y las pantallas resultantes se llevan a AcuBench, donde podr usar
las potentes funciones del Screen Designer para modernizar an ms la
pantalla.
Como la interfaz grfica se deriva de la de caracteres, conserva las eficiencias
inherentes a sta y a los usuarios habituales de la aplicacin la interfaz les
resultar familiar y cmoda.
Adems, al centrarse en las tareas a realizar, el asistente puede hacer ms
productivos a los programadores. Sustituir la interfaz de usuario de una
aplicacin por una interfaz grfica es una tarea desalentadora, en la que hay
que tomar muchas decisiones. Usando el asistente, los programadores se
encuentran con una tarea ms concreta: integrar una pantalla en un programa.
Por ltimo, la salida del asistente funciona bien con las funciones de doble
interfaz de ACUCOBOL-GT. Esto facilita que una misma aplicacin pueda
contener a la vez una interfaz de usuario de caracteres y otra grfica, si eso es
lo que se necesita.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 113 de 125

Capacitacin Introduccin a Internet desde


COBOL

Unidad 5: Introduccin a Internet desde COBOL


COBOL siempre ha estado en el centro de los negocios. Por qu debera ser
distinto con el "comercio electrnico"? Las empresas que aprovechan las
aplicaciones y los conocimientos de COBOL existentes y los llevan a Internet pueden
ahorrar dinero, reducir el riesgo y, lo que es ms importante, abrir su negocio a un
nuevo mundo de oportunidades.
Acucorp, cuenta con tecnologas que le permiten "habilitar en la Web" sus activos
COBOL existentes y hacer que sus datos estn "listos para Internet".

Tecnologas Acucorp para Internet

Acuthin
Acuserver
CGI

Acuthin

Figura 5.1 Solucin cliente delgado

La tecnologa cliente delgado de Acucorp permite ejecutar una aplicacin


desde un servidor remoto en un cliente, tomando los recursos desde el
servidor remoto, lanzando una interfaz grfica corriendo en un servidor UNIX,
LINUX o Windows.
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 114 de 125

Capacitacin Introduccin a Internet desde


COBOL

La tecnologa Acuthin cliente delgado es diseada para dos propsitos


principales:
Permitir a los programas ACUCOBOL-GT corer en un servidor UNIX o
Windows y presentar una completa ventana (GUI) en PCs conectados
con TCP/IP.
Permitir a los usuarios UNIX y Windows disfrutar los beneficios de una
aplicacin centralizada y adoptar el desempeo de las caracteristicas
de una arquitectura delgada, reduciendo el costo total de propiedad
(TCO).
Cmo funciona
La Tecnologa de Cliente Delgado de Acucorp est compuesta de tres
componentes fundamentales. Primero, un pequeo programa en el cliente
Windows, el ACUCOBOL-GT Thin Client (cliente delgado), se comunica con
la aplicacin que corre en el servidor y administra la interfase de usuario. En
segundo lugar, AcuLaunch, un miembro de la familia extend de soluciones
de Acucorp, ejecuta como un servicio "escucha" en el servidor UNIX, Linux, o
Windows NT/2000. AcuLaunch monitorea los requerimientos de los
ACUCOBOL-GT Thin Clients (clients delgados) y cuando recibe uno lanza la
ejecucin del tercer componente, un runtime standard de ACUCOBOL-GT.
Cuando se recibe un requerimiento de un cliente, AcuLaunch inicia una nueva
sesin del runtime en el servidor, conectando a dicho runtime con el proceso
cliente, y se retira del canal de comunicacin para esperar otros
requerimientos. Una vez iniciada su sesin, el runtime del servidor ejecuta la
aplicacin COBOL, y enva y recibe comandos de pantalla hacia y desde el
cliente.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 115 de 125

Capacitacin Introduccin a Internet desde


COBOL

Acuserver

Figura 5.2 Solucin Acuserver

AcuServer es una tecnologa de servidor de archivos remotos que ofrece


servicios de acceso a archivos para las aplicaciones ACUCOBOL-GT que
funcionan en UNIX, Windows y redes con base DOS TCP/IP. No es necesario
que cambie el cdigo de su aplicacin existente para usar AcuServer (salvo
que la aplicacin emplee nombres de ruta programados) y tampoco tiene que
volver a compilar los programas existentes.
La tecnologa AcuServer le otorga a sus aplicaciones:
la capacidad de crear y almacenar archivos de datos en cualquier servidor
UNIX, Windows NT o Windows 2000 que tenga AcuServer
acceso remoto completamente funcional desde clientes UNIX, Windows y
DOS a todos los archivos de objetos, secuenciales, relativos e indexados
de ACUCOBOL-GT almacenados en un servidor AcuServer
completo soporte de bloqueo de registro de todos los archivos relativos e
indexados de ACUCOBOL-GT
acceso transparente a los archivos remotos y locales
Cmo funciona
AcuServer ofrece servicios de acceso a archivos remotos a travs del uso de
un programa residente en memoria (daemon) denominado acuserve, que se
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 116 de 125

Capacitacin Introduccin a Internet desde


COBOL
ejecuta en el servidor de archivos. La aplicacin en el cliente se ejecuta con un
runtime ACUCOBOL-GT, versin 5.1 y posterior.
El runtime reconoce las solicitudes de acceso a los archivos remotos y usa
llamadas de ranura TCP/IP a acuserve para cumplir tales solicitudes.
En el servidor, acuserve espera las solicitudes de acceso a los archivos,
administra su ejecucin y devuelve el resultado al cliente que hace la peticin.
Una interaccin AcuServer tpica sera:
Una aplicacin que se ejecuta en una mquina en red intenta READ
(leer) un registro en un archivo.
El runtime de ACUCOBOL-GT reconoce que el archivo que leer se
encuentra en un sistema remoto y enva la solicitud por paquetes a
acuserve en el servidor de archivos.
acuserve recibe la solicitud, ejecuta READ y devuelve el resultado al
cliente y, de esta forma, completa la interaccin.
Tenga en cuenta que el acceso a datos remotos es ms eficiente en aquellas
aplicaciones que acceden a registros nicos. Las aplicaciones que procesan
registros mltiples en ciclos cerrados (como los informes o las cargas de
pantallas) son ms apropiadas para una configuracin de procesamiento
distribuido que reduce el volumen de informacin que se transfiere a travs de
la red.

CGI
Si usted necesita desplegar su aplicacin en el Web sin requerir ninguna
configuracin especial para el usuario final, usted puede redisear su aplicacin
de modo que tenga una interfase HTML y un programa CGI que maneje la
lgica del programa.
Esta opcin brinda amplia flexibilidad e independencia en la plataforma, sin
embargo, tambin requiere de ms trabajo.

Que es CGI?
CGI (Common Gateway Interface) es un estndar mediante el cual un servidor
Web se comunica con un programa externo. Los programas CGI (algunas
veces llamados scripts) pueden ser escritos en varios lenguajes incluyendo
COBOL.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 117 de 125

Capacitacin Introduccin a Internet desde


COBOL
Escribir su programa CGI en COBOL y usar ACUCOBOL-GT no requiere un
plug-in especial o applet.
Pasos

Cree una forma HTML


Escriba un programa CGI.
Cree un hipervnculo en la pgina HTML.
Coloque la pgina Web en el servidor Web
Configure el servidor web.
Lance la aplicacin.

Formas HTML
Los documentos HTML pueden incluir entry-fields y otros controles para permitir
la interaccin con el usuario.
El ejemplo a continuacin muestra algunos textos HTML con marcas (tags) para
crear un control.
Ejemplo

En HTML, usted usa formas para recolectar informacin desde el usuario y


enviarlo a un programa CGI para procesar. Para construir una forma en un
documento HTML, usted usa marcas. Algunas formas tienen un botn de
validacin. Cuando el usuario presiona el botn de validacin los datos de la
forma son enviados al servidor web para procesamiento.
El ejemplo a continuacin muestra una forma bsica de HTML:

Ejemplo

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 118 de 125

Capacitacin Introduccin a Internet desde


COBOL

Escribir un programa COBOL CGI


Un programa CGI tiene tres funciones bsicas:
1. Recuperar datos de entrada. Cada tem de entrada en su forma HTML
tiene una variable CGI correspondiente. Cuando el usuario ingresa los
datos de la forma, los datos son enviados al programa como datos CGI.
Su programa debe tener la capacidad de recuperar estos datos CGI.
Con ACUCOBOL-GT usted usa la frase ACCEPT para recuperar datos
tipo CGI.
2. Procesar los datos.
3. Generar salida. Un programa CGI puede crear una salida que puede
ser leda por el browser del cliente. Usualmente el programa CGI enva
una salida en formato HTML.
En casos simples, su programa COBOL CGI puede contener una declaracin
ACCEPT y una DISPLAY. An s su programa es ms complicado,
probablemente comenzara con un ACCEPT y finalizara con un DISPLAY.
Es importante observar que puesto que los programas CGI son ejecutados en
la mquina en s mismo por el servidor web, no est permitido realizar ninguna
operacin de interfaz de usuario.
Si un programa del CGI procura una operacin que espere una respuesta del
usuario, puede causar la "cada" del servidor web.

Recuperando datos CGI

Con ACUCOBOL-GT existen dos formas de recuperar variables CGI: usando


el verbo ACCEPT, y usando la rutina de librera C$GETCGI.
Usando la frase ACCEPT

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 119 de 125

Capacitacin Introduccin a Internet desde


COBOL
ACUCOBOL-GT soporta las siguientes sintaxis especiales para la frase
ACCEPT:
Ejemplo
ACCEPT external-form
En el ejemplo anterior, external-form es un registro de entrada para una forma
HTML.
A continuacin se muestra un tem de datos declarado en la Working-Storage
con la clusula IS EXTERNAL-FORM.
Ejemplo
working-storage section.
01 input-form is external-form.
05 username
pic x(30).
05 choice1
pic 9.
05 choice2
pic 9.
05 now
pic 9.
05 later
pic 9.
Los nombres de variables CGI son tipo constante-sensitiva. Sin embargo, si el
runtime no puede identificar una variable CGI durante un ACCEPT, este
podra intentar buscar el nombre de la variable de nuevo ignorando las
constantes sensitivas.
Usando C$GETCGI
Un mtodo alterno para recuperar datos CGI es la rutina de librera
C$GETCGI. Est rutina recupera variables desde el entorno o desde la
cadena de entrada estndar.
La rutina C$GETCGI es de forma predominante, usada por los programas CGI
existentes. Una ventaja de C$GETCGI es que recupera el tamao exacto de la
variables CGI.
Procesando los datos
Esta es la parte de la programacin CGI que es ms familiar para los
desarrolladores COBOL: el proceso de aplicacin de los componentes.
Puesto que los programas del CGI son ejecutados en la mquina por s mismo
por el servidor web, no se permiten realizar operaciones de interfaz de
usuario. Si un programa CGI permite una operacin de respuesta del usuario,
Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 120 de 125

Capacitacin Introduccin a Internet desde


COBOL
esto podra causar la cada del servidor web. Cuando escriba programas CGI,
debe tener especial cuidado de no incluir cdigo que espere entradas de
usuario.
Generando Salidas
Para generar salidas, use el verbo DISPLAY. Esta es una especial sintaxis de
la frase DISPLAY.
Ejemplo
DISPLAY external-form
En el ejemplo anterior, external-form es un registro de salida para un archivo
HTML, esto puede ser un tem de grupo de datos declarados en la WorkingStorage con la clusula IS EXTERNAL-FORM.
La clusula IS EXTERNAL-FORM puede tener tambin la clusula adicional IS
IDENTIFIED BY, esto asocia la estructura de datos con un archivo HTML
existente. Si usted usa esta frase puede crear una plantilla HTML con
variables que son reemplazadas por el programa cuando haga un DISPLAY
external-form de la estructura de datos.
Ejemplo
working-storage section.
01 output-form is external-form identified by "response.html".
05 username pic x(10)

El ejemplo anterior muestra un tem de datos external-form identificado por el


archivo response.html.
El ejemplo a continuacin muestra el texto en el archivo html response.html.
Ejemplo

Cuando usted crea un archivo de plantilla HTML, puede incluir variables

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 121 de 125

Capacitacin Introduccin a Internet desde


COBOL
rodeando el nombre de la variable con doble signo de porcentaje. En el
ejemplo anterior, el archivo html contiene la variable username.
Cuando su programa muestra un external-form identificado con un archivo
html, el runtime reemplaza las variables en el archivo de plantillas HTML con
los datos de external-form, luego enva los resultados a una cadena estndar
de salida en concordancia con el estndar CGI. Los espacios restantes son
removidos cuando es asociado con el archivo HTML.
Crear un hipervnculo
La forma HTML recolecta informacin desde el usuario y la enva a su
programa CGI. Para construir una forma use el FORM tag. El FORM tag tiene
dos atributos que deben ser definidos: METHOD y ACTION.
El Mtodo-Atributo
El Mtodo-Atributo dice al browser como enva la informacin al servidor web.
METHOD puede tener dos posibles valores: GET y POST.
El mtodo GET
GET codifica los datos en el URL. El servidor web mueve los datos en una
variable de entorno QUERY_STRING antes de llamar al programa CGI. La
ventaja del mtodo GET es que todos los datos de entrada en el campo son
visibles en el URL. El usuario puede marcar este especifico URL para futuro
acceso rpido en el envo de los resultados. La desventaja es que los datos
estn limitados a 255 caracteres (incluyendo algunos smbolos de codificacin
especial del URL) .
El mtodo POST
POST enva los datos al servidor web como una cadena de datos. El servidor
web canaliza esta cadena de datos a travs de una cadena estndar de
entrada del programa CGI.
Todos los servidores web soportan el mtodo GET, y algunos servidores web
modernos soportan el mtodo POST. ACUCOBOL-GT soporta ambos
mtodos.
El atributo ACTION
ACTION dice al browser donde enviar la informacin codificada de la forma.
Esto es el URL del programa CGI que procesa la forma.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 122 de 125

Capacitacin Introduccin a Internet desde


COBOL
Ejemplo

Usted puede incluir el completo URL dentro del atributo de accin como se
muestra a continuacin:
Ejemplo

Colocar su pgina web en el servidor web


Para colocar su documento HTML en su servidor web, usted necesita
transferir su documento HTML en el directorio apropiado. El software Apache
se refiere para este directorio como el directorio de documentos. Consulte su
documentacin del servidor web para encontrar donde los documentos HTML
pueden ser localizados.
Configurando el servidor web
Cuando configure el servidor web debe especificar cual Runtime de
ACUCOBOL-GT es usado para ejecutar los archivos objeto de COBOL.
En Windows NT, use el IIS service manager para especificar que Runtime en
el servidor ejecuta sus programas COBOL CGI.
Si su servidor es basado en UNIX, debe hacer un vinculo apuntando hacia un
script que inicie o arranque y ejecute el archivo objeto.
El ejemplo a continuacin muestra el texto en un script de UNIX para iniciar o
arrancar el Runtime y ejecutar el programa myprog.acu.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 123 de 125

Capacitacin Introduccin a Internet desde


COBOL

Ejemplo
#!/bin/sh
A_TERM=vt100
export A_TERM
echo "Content-Type: text/html"
/usr/acucobol52/bin/runcbl -f myprog.acu

Ventajas

No se requiere runtime o plug-in en la maquina del cliente. Este mtodo


provee incremento en la independencia de la plataforma. Nada es requerido
para el usuario excepto la habilidad de localizar su sitio web.

Desventajas

Este mtodo puede requerir ms trabajo. Usted puede necesitar redisear su


aplicacin si su interfaz de usuario consiste en interacciones avanzadas de
programas COBOL.

Seguridad

Puesto que es posible para otros usuarios de Internet interceptar sus datos
cuando son transferidos desde el cliente al servidor, considere la posibilidad
de encriptar sus datos antes de enviarlos al servidor.
Que es necesario?
Este mtodo requiere una interfaz de usuario HTML, un runtime en el servidor
web y una conexin de red (Internet).

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 124 de 125

Capacitacin Introduccin a Internet desde


COBOL

Laboratorio: COBOL y CGI


En este laboratorio, usted creara una forma HTML que suministrar
informacin a un programa COBOL CGI.
Cree una forma HTML
1. En el editor de texto cree una forma HTML. Incluya al menos 2 entry
field, 2 radio buttons, 2 check boxes, un botn de limpiar, y un botn de
enviar.
2. Cree dos documentos HTML para mostrar la salida por el usuario.
3. Modifique la plantilla del programa COBOL cobolcgi.cbl para usar su
forma HTML como la interfaz de usuario y la visualizacin del apropiado
documento HTML.
4. Incluya un hipervnculo en su forma HTML para ejecutar el programa
CGI.
5. Transfiera su documento HTML y el archivo objeto al directorio de
documentos del servidor web.
6. Asegrese que su librera objeto y su documento HTML tengan permiso
de lectura para cada uno en el servidor.
7. Configure el servidor web para ejecutar su aplicacin COBOL.
(pregunte al instructor para obtener ayuda.)
8. Desde su PC, lance el browser de Internet y especifique la direccin
URL para visualizar su forma HTML.
9. Realice un test a su programa y verifiqu que se ejecute correctamente.

Todos los derechos reservados Documento Confidencial, prohibida su reproduccin parcial o total Versin 1.5.

Pg. 125 de 125

You might also like