Escolar Documentos
Profissional Documentos
Cultura Documentos
Aclaracin
Hace tiempo que envie este fichero a otros tantos como vosotros que me lo solicitaron, pero
nadie me ha dicho si le ha sido de utilidad. Se trata de un fichero comprimido (.zip) con
windows, que contiene varios fichero de formato word (uno por capitulo). Lo que si me
gustaria deciros es que no es una versin definitiva, ya que una compaera (Sonia Carretero y
yo), hicimos un borrador para la empresa ESRI, quien se encargara de hacer correcciones e
insertar las figuras que falta. Nunca ms volvimos a saber de la publicacin y nuestra
relacin con la empresa no fue mejorando por decirlo de alguna manera. Espero que os
valga, y ante todo supongo que no es necesario que insista en que su uso no debera ser con
afn de lucro, sino meramente educativo o de investigacin.
Contenido
ndice
1. El entorno de desarrollo de ArcView
2. Creacin de scripts en Avenue
3. Introduccin a objetos y requerimientos
4. Comprensin de las clases en ArcView
5. Comprensin de eventos
6. Personalizacin de la aplicacin y documento proyecto
7. Ramificacin y bucles
8. Trabajo con temas y leyendas
9. Creacin y consulta de tablas
10. Creacin de shapes y grficos
11. Trabajo con GUIs de documentos
12. Construccin de extensiones
Apndices
S E C C I N 1
El entorno de desarrollo de ArcView
1-6
fig (1-2)
fig(1-4)
fig(1-6)
Doble Clic
Lista de
propiedades
Editor de
Control
La lista de propiedades
Las propiedades definen como se representa y como funciona un control
Seleccione un control para ver sus propiedades
Cada grupo de control tiene una lista de propiedades distinta.
fig.(1-10)
La lista de propiedades
Cada control tiene unas propiedades que puede cambiar. En la lista de propiedades aparece el nombre de la propiedad y los valores
asignados al control seleccionado.
La lista de propiedades es diferente para cada categora de controles (mens, botones, herramientas y campos de men). Por ejemplo,
botones y herramientas tienen una propiedad Icon (icono); mens y campos de mens no. Estos ltimos tienen una propiedad Label
(etiqueta) que no tienen botones y herramientas.
Para ms informacin...
Las propiedades de los controles pueden asignarse con scripts de Avenue. Este tema se comenta con ms detalle en la seccin
11 de este manual, Trabajando con GUIs de documentos.
Ayuda
Icono
Etiqueta
Teclas de funcin
fig. (1-16)
Documentos virtuales
Los nuevos tipos de documentos se refieren a documentos virtuales. Los documentos virtuales tienen su propio tipo de documento vista,
tabla, composicin, grfico o script. La Caja de Dilogo de Personalizacin de tipos permite manipular documentos virtuales. Para ms
informacin, vea la ayuda sobre este tema: Customize Types (Dialogo box), Virtual documents.
fig. (1-18)
su proyecto especfico
script en el aProject.apr
Paso 1
(opcional)
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
(opcional)
Los nombres de ficheros, de documentos, nombre de botones y campos de mens aparecen en negrita.
Use el botn izquierdo del ratn a menos que se indique de otra manera, o si se encuentra bajo sistema UNIX .
Los prrafos con instrucciones estn sangrados.
Paso 1
Durante este primer da de curso, crear algunos scripts de Avenue y necesitar almacenarlos.
Use su sistema operativo para crear el directorio pavetemp donde almacenar los datos. Si lo necesita, el instructor le explicar
como crear el directorio de trabajo pavetemp. (En algunos casos, el instructor puede haberlo creado ya para usted).
Paso 2:
Paso 3
Usar la Caja de Dilogo de Personalizacin para borrar y mover los botones existentes en la barra de botones de la vista Census Tracts.
Con la vista Census Tracts activa, abra la Caja de Dilogo de Personalizacin mediante doble clic sobre un espacio en la barra de
botones o herramientas.
figura
Si quiere modificar la barra de botones de la vista, asigne View (Vista) a Type (tipo) y Buttons (botones) a Category (categora).
En el Editor de Control (en el centro de la Caja de Dilogo de Personalizacin) ver una copia de la barra de botones de la vista. El botn
Save (salvar) est actualmente seleccionado.
Figura
Luego, modificar la barra de botones moviendo el botn seleccionado del modo siguiente.
figura
En el Editor de Control, site el cursor sobre el botn Select Features Using Graphic
(Seleccin grfica de entidades).
Figura
Pulse y mantenga el botn del ratn y arrstrelo a la derecha del botn de consulta, entonces suelte el botn del ratn.
figura
Ahora pulse y mantenga el botn del ratn sobre el botn Clear Selected Features
(Borrado de entidades seleccionadas).
figura
Arrstrelo a la derecha del botn de la seleccin grfica de entidades.
Figura
Paso 4
En este paso, trabajar con las propiedades de dos botones. Aprender como hacer visible y habilitar un botn en su GUI personalizada.
Primero, suponga que est construyendo el sistema de visualizacin en pantalla y quiere resaltar el botn guardar proyecto.
Haga clic en el botn Save Project (Guardar Proyecto) para seleccionarlo.
figura
En la lista de propiedades, haga doble clic en la propiedad Invisible para conmutar la asignacin desde False (falso) a True
(verdadero).
figura
Observe que el botn est invisible en la barra de botones de la vista en la ventana de la aplicacin (sin embargo es visible en la Caja de
Dilogo de Personalizacin).
figura
Ahora modificar el botn aadir tema para inhabilitarlo. Un control inhabilitado aparece en gris y no puede seleccionarse haciendo clic en
l.
Haga clic en el botn Add Theme (Aadir Tema) para seleccionarlo.
figura
En la Lista de Propiedades, haga doble clic en la propiedad Disabled (Inhabilitado) para cambiar el valor a True.
figura
Observe que el botn est inhabilitado en la barra de botones de la vista en la ventana de la aplicacin.
figura
Desde la ventana de la aplicacin, haga clic en el botn Add Theme para ver que su propiedad est tambin inhabilitada.
Puede inhabilitar o poner un control invisible cuando quiera restringir a los usuarios que utilicen ese control (por ejemplo, no quiere que el
usuario guarde el proyecto o aada temas a la vista).
Paso 5
Luego, cambiar el icono de un botn, aadir un nuevo botn y cargar un grfico de usuario como icono del nuevo botn. Tambin
aadir alguna ayuda al nuevo botn.
Suponga que quiere modificar un icono que sus usuarios encuentran difcil de leer o incomprensible. Modificar el icono para el botn de
consulta.
En la Caja de Dilogo de Personalizacin, haga clic en el botn Query (Consulta) para seleccionarlo.
figura
En la lista de propiedades, haga doble clic en la propiedad Icon.
figura
En el gestor de iconos, elija el icono Q, entonces haga clic en OK.
figura
Su nuevo botn de consulta aparece en la barra de botones de la vista.
figura
Luego, aadir un nuevo botn con el logotipo de una compaa al final de la barra de botones. Para este botn, cargar un bitmap
creado por el usuario en el gestor de iconos.
Haga clic en el botn Help (ayuda) para seleccionarlo.
Figura
En lugar de situar un botn nuevo a la derecha del botn Help, aadir un separador para crear un espacio.
Haga clic en Separator (Separador) para insertar un botn despus del separador.
figura
Haga clic en New para insertar un botn despus del separador.
figura
Haga doble clic en la propiedad Icon para que aparezca el Gestor de Iconos, entonces pulse Load (Cargar).
En la ventana de bsqueda de ficheros, establezca la lista de ficheros de tipo Windows Bitmap (*.bmp), muvase hasta el
directorio data (vea las notas en la pgina 1-20) y entonces elija jtlogo.bmp rojo y azul y haga clic en OK.
Figura
El fichero jtlogo.bmp se cargar en el Gestor de Iconos
figura
Para testear esta propiedad, mueva el cursor sobre el botn JT en la ventana de la aplicacin y mire en la barra de estado para ver
la cadena de ayuda.
Figura
En este paso, ver el efecto de salvar una GUI personalizada para diferentes ficheros de proyecto. Salvar el proyecto en el fichero de
proyecto actual, entonces har pequeos cambios y salvar el fichero de proyecto (default.apr) en su directorio home.
Active la ventana de proyecto. Desde el men File (Archivo), elija Save Project As (Guardar proyecto como). Mueva su directorio
pavetemp (vea pg. 1-20) y salve el proyecto como paveex1.apr.
Ahora haga pequeos cambios en la interfaz y cree un proyecto personal por defecto.
Active la vista. En la Caja de Dilogo de Personalizacin, asigne View (Vista) a Type (Tipo) y Buttons (Botones) a Category
(Categora).
En la Caja de Dilogo de Pesonalizacin, haga clic en el botn Save (salvar) para seleccionarlo. Haga doble clic en la propiedad Invisible
para conmutarla a False, haciendo visible de esta forma el botn Save.
Haga clic en el botn JT para seleccionarlo. Haga doble clic en la propiedad Invisible para conmutarla a True, de esta forma el
botn se har invisible.
En la Caja de Dilogo de Personalizacin, haga clic en Make Default (Valor por omisin). Esto salvar los cambios en el fichero de
proyecto llamado default.apr en su directorio home.
Cierre la Caja de Dilogo de Personalizacin y desde el men File (Archivo), elija Exit (Salir) para salir de ArcView. Haga clic en No
cuando pregunte para salvar los cambios en paveex1.apr.
Ahora tiene dos barras de botones de la vista diferentes: una en el directorio pavetemp y otra en el directorio home. Ahora examine la
diferencia entre los dos ficheros.
Inicie ArcView
Haga clic en New (nuevo) para abrir una vista nueva y examine la GUI creada desde default.apr, en su directorio home. EL botn
Save (Guardar) est visible y el botn JT invisible. Observe tambin que el botn Query (consulta) tiene una Q como icono.
figura
Active la ventana del proyecto. Desde el men File (Archivo), elija Open Project (Abrir Proyecto), haga clic en No cuando pregunte
para salvar los cambios en el proyecto Untitled (Sin ttulo).
Muvase al directorio pavetemp y abra paveex1.apr. Examine la GUI personalizada que guard en paveex1.apr. El botn Save
(Guardar) est invisible, el JT est visible, y el botn Add Theme (Aadir Tema) est inhabilitado.
figura
Para restablecer la GUI original de ArcView, abra la Caja de Dilogo de Personalizacin y haga clic en Reset (Restablecer). Esta GUI est
almacenada en el proyecto llamado default.apr en el directorio de instalacin de ArcView.
figura
Active la ventana de proyecto y desde el men File (Archivo) elija Close Project (Cerrar Proyecto) y no guarde el proyecto.
Ahora borrar el fichero default.apr en su directorio home.
Use el sistema operativo o el gestor de archivos para moverse al directorio home (vea la pg. 1-20) y borre el fichero default.apr.
Si deja el fichero default.apr en el directorio home, cuando inicie ArcView y abra un proyecto ver estas personalizaciones.
Paso 7
(opcional)
En primer lugar personalizar la barra de men de la vista, aadiendo un nuevo men con campos para cada tema en la vista Atlanta.
Abra el proyecto paveex1.apr.
Con la vista Census Tracs activa, use la Caja de Dilogo de Personalizacin para cambiar la Category a Menus
. Haga clic en &Theme (&Tema) para seleccionarlo, entonces haga clic en el New Menu (Nuevo Men). Se crear un men nuevo a la
derecha del men Theme (Tema).
figura
Luego, cambiar el texto en su nuevo men y aadir una clave de acceso.
Haga doble clic en la propiedad Label y teclee &Layers en la caja de dilogo. Haga clic en OK.
figura
Se crear un nuevo men llamado Layers (Capas) en la barra de men.
figura
Ahora est preparado para disear los campos del men que los nombres de los temas de la vista Census Tracts.
Haga clic en New Item (nuevo campo) tres veces para crear tres campos de men. Haga clic en la primera eleccin para
seleccionarla y doble clic en Label Property y teclee como nueva etiqueta &Population, entonces haga clic en OK.
Haga lo mismo para los otros dos campos y etiqutelos con &Income y &Education respectivamente.
&Layers
&Population
&Income
&Education
Para acceder al men, active la vista y pulse <ALT>+L.
figura
Pulse P, I o E para hacer desaparecer el men. En un ejercicio posterior asignar scripts para ejecutarlos desde los campos de
men.
Ahora personalizar la barra de herramientas de la vista mediante la adicin de una nueva herramienta. Suponga que el usuario quiere
una funcin que devuelva las coordenadas x, y de la localizacin seleccionada en la vista. Debido a que la funcin requiere el uso del
ratn desde el usuario, se aadir una herramienta en lugar de un botn.
En la Caja de Dilogo de Personalizacin, cambie Category a Tools.
En el editor de control, haga clic en la herramienta Identify (identificar) para seleccionarla.
figura
Haga clic en Tool (herramienta) para crear una nueva herramienta a la derecha de la herramienta Identify (identificar). Despus de
aparecer la nueva herramienta, arrstrela al extremo derecho de la barra de herramientas (a la derecha de la herramienta Snapping
,Seleccin). Haga doble clic en la propiedad Icon y seleccione el icono XY2 y haga clic en OK.
figura
El Editor de Control y la barra de herramientas aparecen ahora con una nueva herramienta.
figura
La herrramienta tambin se debe asignar a un cursor.
Haga doble clic en la propiedad Cursor, elija Cursors.Bullseye para el cursor y haga clic en OK.
figura
Para ver el cursor bulls-eye, haga clic en la nueva herramienta XY y mueva el cursor por el mapa de la vista.
8
Asigne la propiedad Apply para la herramienta XY creada en el paso anterior. Cuando la propiedad est asignada, seleccione el
script XYTool del Gestor de Scripts. Testee la nueve herramienta de nuevo para ver el informe de coordenadas XY.
Fin
S E C C I N 2
Creacin de scripts en Avenue
figura
figura
Cargue el fichero de texto en una ventana de script
figura
Ejemplo
Por ejempo, puede cargar un script llamado View.ZoomIn en el Script3. El script View.ZoomIn contiene dos lneas de cdigo en
Avenue que activan el documento ventana (GetActiveDoc) y hacen un zoom in (ZoomIn), es decir aumenta el dibujo en la pantalla
(GetDisplay) con un factor 125. Para cambiar la funcin de aumento al factor 250, reemplace 125 por 250.
Testee el script
figura
Caja de mensaje
Depurar un script
Depura paso a paso
figura
figura
figura
Mensajes de error
figura figura
Depurar un script
El Editor de Scripts contiene varios botones para ayudarle a depurar su cdigo. Puede ver como se ejecuta, ver los valores de las
variables, y encontrar la localizacin exacta del problema.
Depurar paso a paso
El botn Step (Paso) o <F8> le permiten escalonar el script a cada objeto y requerimiento cada vez. (Vea la seccin 3,
Introcuccin a objetos y requerimientos, para ms informacin sobre objetos y requerimientos). El botn Step est inhabilitado hasta que
el script se compila con xito.
Introducir o borrar un punto de ruptura
Puede introducir puntos de ruptura para interrumpir la ejecucin del script. El botn Toggle Breakpoint (Conmutar Puntos de
Ruptura) inserta o borra puntos de ruptuta en la posicin actual del cursor. El botn Toggle Breakpoint est inhabilitado hasta que el script
se compila con xito. ArcView no guarda los puntos de ruptura cuando cierra el proyecto o sale de ArcView.
Examinar variables
Puede chequear los valores de las variables usando el botn Examine Variables. (Vea la seccin 3, Introduccin a objetos y
requerimientos, para ms informacin sobre variables). El botn Examine Variables muestra en pantalla una ventana que muestra el tipo
(ej. Local o global), nombre, clase y valor de la variable. Este botn est inhabilitado hasta que el script se compila con xito.
Mensajes de error
ArcView puede mostrar mensajes de error al compilar y ejecutar. Interprete cada mensaje de error o bsquelo en la ayuda en lnea.
Aislar errores
En los scripts ms largos, debera aislar los errores para localizarlos. Copie y pegue el cdigo incorrecto en un script vaco.
Testee y ejecute el script corto para identificar el error. Una tcnica es usar cajas de mensaje (o av.SetName(su variable)) para visualizar
las variables y ver como cambian durante la ejecucin.
Guardar un script
Guardar un fichero de proyecto
script.
\naMessage
\Hello
Guardar un script
Los scripts se pueden guardar con el proyecto actual. Tambin puede guardarlos como un fichero de texto para almacenarlos por
separado del proyecto.
Guardar el proyecto
Cuando guarda el proyecto actual, algunos scripts se crean y guardan con el fichero del proyecto (ej. World.apr)
Vea la seccin 1, El Entorno de Desarrollo de ArcView, para ms informacin sobre como salvar scripts en el proyecto por defecto
de home.
Escribir un fichero de texto
El botn Write Text File (Escribir un fichero de texto) escribe en un fichero de texto los contenidos de la ventana del script activa.
Se escribir un fichero de texto en su directorio home (ej. C:\temp), y aadido con una extensin .ave (ej. Hello.ave). Utilizando este botn
puede salvar su script y envirselo a alguien como un fichero ASCII.
Si tiene resaltado algn texto en el script, slo se escribir en el fichero de salida el texto seleccionado.
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 2
figura
Aparece una nueva ventana de script vaca llamada Script1.
Figura
Primero, teclee el script, incluyendo dos comentarios. Los comentarios son una forma de documentar su trabajo. Un apstrofe indica un
comentario en Avenue.
En la primera lnea, teclee un comentario que contenga su nombre y la fecha. En la segunda lnea teclee un comentario
describiendo el script que ha hecho. En la tercera lnea cree y visualice una caja de mensaje.
Teclee lo siguiente:
MsgBox. Info (Hello World,Welcome Message)
Info es un requerimiento de Avenue que tiene dos parmetros: el primero es el mensaje que se visualiza en la caja de mensaje y el
segundo es el ttulo de la barra en la ventana de la caja de mensaje. Aprender ms sobre requerimientos en la siguiente seccin.
Su script ser ahora este, salvo sus comentarios que sern distintos.
figura
Observe que el botn a la derecha del botn de compilacin, usado para ejecutar y depurar el script, est inhabilitado antes de compilar el
script.
Haga clic en el botn Compile (Compilar) para chequear los errores y compilar el script.
Figura
Ahora que es script est compilado, el botn Compilar est inhabilitado y los otros botones aparecen habilitados.
Haga clic en el botn Run (Ejecutar) para ejecutar y testear el script.
Figura
Cuando aparezca el mensaje Hello, haga clic en OK para hacer desaparecer la ventana del mensaje.
Figura
Ha ejecutado con xito su primer script; ahora est preparado para darle un nombre descriptivo.
Desde el men Script, elija Properties (Propiedades). En la caja de dilogo del script, cambie el nombre del Script1 a Hello,
entonces haga clic en OK.
Figura
Observe los cambios en el ttulo de la ventana del script y en la lista de scripts de la ventana del proyecto. Si salva el proyecto, el script
Hello se guardar con el fichero del proyecto (ex2.apr) y lo ver la prxima vez que abra este proyecto.
Paso 3
En este paso, cargar un fichero de texto que contiene un cdigo de Avenue, en una ventana de Script. El cdigo contiene un error de
compilacin que usted arreglar.
En la ventana del proyecto, haga clic en el icono Scripts, y luego en New para abrir un nuevo script. Aparecer una ventana
llamada Script1.
Haga clic en el botn Load Text File (Carga Fichero de Texto).
Figura
Muvase al directorio data y seleccione el fichero employee.ave. Examine las variables creadas en este script: name1, name2,
empAge y tehMesage. Tres de las variables son cadenas de texto y la variabla empAge es un nmero. Aprender ms sobre variables en
la seccin 3.
Figura
Haga clic en el botn Compile (Compilar) para compilar el script. Aparecer el siguiente mensaje de error debido a que la variable
theTitle (usada como parmetro de MsgBox.Info) no ha sido definida.
Figura
Figura
Haga clic de nuevo en el botn Compile y el script se compilar con xito.
Concatenar cadenas de texto
Dos signos de suma (++) se utilizan para concatenar dos cadenas de texto con un espacio entre ellas.
Paso 4
Aprender como examinar variables durante la ejecucin del script es una forma de ayuda para depurar sus scripts. Antes de ejecutar un
script, defina un punto de ruptura y examine los valores de las variables.
Utilice el ratn, haga clic y arrastre resaltando hasta Name and Age:, entonces haga clic en el botn Toggle Breakpoint
(Conmutar Punto de Ruptura):
figura
Despus de aadir el punto de ruptura, haga clic en Run para ejecutar el script. No aparecer ninguna caja de mensaje ya que la
ejecucin se ha detenido en el punto de ruptura (ej. Antes de llegar a la lnea de MsgBox.Info)
Ahora haga clic en el botn Examine Variables (Examinar variables).
figura
Observe que todas las variables tienen un tipo y un valor excepto theMessage y theTitle. El punto de ruptura se encuentra antes de que
estas variables sean asignadas.
figura
Haga clic en OK para hacer desaparecer la ventana. Entonces borre los puntos de ruptura haciendo clic en el botn Toggle
Breakpoint.
figura
Ahora en el script, haga clic en la palabra MsgBox, entonces haga clic en el botn Toggle Breakpoint. MsgBox est resaltada.
Haga clic en el botn Run y examine las variables con el botn Examine Variables. Ahora todas las variables tienen un valor asignado.
figura
Haga clic en el botn Run para continuar la ejecucin del script.
figura
Haga clic en OK para hacer desaparecer la ventana de mensaje.
Paso 5
figura
En el buscador de archivos de script, muvase al directorio pavetemp y llame al fichero employee.ave.
Haga clic en OK para guardar el script.
Este fichero de texto se guarda en un lugar aparte del fichero de proyecto.
Paso 6
Cambie las variables en el script employee.ave a su nombre y edad y ejecute el script de nuevo. Intente, modificar el mensaje y ttulo en
la caja de mensaje. Para hacer un pequeo ruido, aada la siguiente lnea justo antes de la lnea de la caja de mesaje:
System.Beep.
Fin
S E C C I N 3
Introduccin a objetos y requerimientos
.3-25
Proyectos
Figura
figura
Vistas
figura
Controles
figura
nmero
documento
cadena
tema
nmero
cadena
nmero
myLocalVar = 25 * 23
_myGlobalVar = myValue * 37
_theTheme=theView.FindTheme(Canad)
Comprensin de variables
Las variables de Avenue se refieren a objetos. Una variable se crea cuando aparece a la izquierda del estamento de asignacin. La
variable referencia el objeto a la derecha del signo igual. Para ms informacin, vea la ayuda de temas: Working assignement statements
y variables, Local y global variables.
Usar variables
No declarada o no definido su tipo
Debe comenzar con una letra o signo de subrayado
No diferencia la maysculas de las minsculas
El compilador de Avenue encuentra conflictos con palabras reservadas
view = theProject.findDoc (Redlands)
figura
Usar variables
Cuando use variables, debera aplicar ciertas normas y convenciones de nombres.
Normas en variables
Algunos lenguajes de programacin necesitan que especifique el tipo de dato (ej. Entero, coma flotante, cadena) para una variable
antes de usarla. Las variables en Avenue no se declaran. Estn definidas desde la primera vez que aparecen en el estamento de
asignacin.
Los nombres de variables deben comenzar con una letra o signo de subrayado, pero pueden contener nmeros.
restricciones en la longitud del nombre de la variable. Avenue no diferencia maysculas de minsculas
No hay
Los conflictos entre los nombres de variables y las palabras reservadas, tales como clases y nombres de requerimientos, se
identifican al compilar. El compilador de Avenue muestra un mensaje de error con el nombre que produce el conflicto.
Convenciones en la denominacin de Variables
Por convencin , se mezclan minsculas y maysculas para clarificar el estilo. Las variables comienzan por letras minsculas y las
palabras importantes comienzan por una letra mayscula.
Para ms informacin sobre estilos de denominacin de variables.
Vea el apndice B, Pautas de Codificacin en Avenue, en la documentacin del software Utilizando Avenue.
Usar enumeraciones
Una serie de posibilidades utilizadas como parmetros de un requerimiento
Usadas para asignar el tipo de grfico, fichero o campo
Ejemplo: asignando el tipo de grfico
theChartDisplay.SetType (#CHARTDISPLAY_PIE)
figura
theChartDisplay.SetType (#CHARTDISPLAY_COLUMN)
figura
Usar enumeraciones
Las enumeraciones son distintas posibilidades que pueden ser usadas como parmetros de requerimientos. Las enumeraciones
comienzan con el signo (#). Se usan con algunas clases incluyendo ficheros, grficos y campos.
La clase grfico, por ejemplo, tiene enumeraciones llamadas ChartDisplayEnum que son parmetros del requerimiento SetType. Cada
ChartDisplayEnum define un tipo diferente de grfico. Los posibles ChartDisplayEnum son:
#CHARTDISPLAY_AREA
#CHARTDISPLAY_LINE
#CHARTDISPLAY_PIE
#CHARTDISPLAY_COLUMN
#CHARTDISPLAY_BAR
#CHARTDISPLAY_XYSCATTER
Ejemplo
Antes de determinar el tipo de grfico de visualizacin con el requerimiento SetType debe encontrar primero el grfico y entonces
obtener su presentacin.
TheChart = av.GetProject.FindDoc (Chart1)
TheChart.GetChartDisplay.SetType (#CHARTDISPLAY_COLUMN)
TheChart.GetWin.Open
Usar nmeros
La evaluacin numrica es de izquierda a derecha, a menos que se usen parntesis
x = 2 + 3 * 3
x = 2 + (3 * 3)
x = 15
x = 11
Operaciones matemticas
posNumber = -29.Abs
wholeNumber = 35.689.Round
maxNumber = 35 Max 333
devuelve 29
devuelve 36
devuelve 333
toda la aplicacin
todo el script
un nmero particular
Usar nmeros
La evaluacin numrica es de izquierda a derecha, a menos que se cambie el orden con parntesis.
matemticas estndar, incluyendo logaritmos, races cuadradas y medidas angulares.
Formato de nmeros
Puede utilizar formatos numricos utilizando un formato de cadena con uno o tres requerimientos: SetDefFormat,
SetNumberFormat o SetFormat. Los formatos numricos se especifican para la aplicacin, para un script o un nmero especfico
respectivamente.
El formato de cadena define como se sitan algunos decimales a la izquierda y derecha del punto decimal. Por ejemplo, un
formato de cadena (d.ddd) significa que al menos uno de los dgitos aparece a la izquierda del punto decimal y exactamente tres dgitos
aparecen a la derecha.
Conversin de nmeros
Un nmero puede convertirse a cadena o a duracin (nmero de das) usando AsString y AsDays. Los valores en radianes y
grados pueden convertirse usando los requerimientos AsRadians y AsDegrees. Observe que los requerimientos de medidas angulares
tales como Cosine y Sine (coseno y seno), utilizan valores en radianes.
Ejemplo de conversin de nmeros:
numRadians = 90.AsRadians
numDegrees = numRadians.AsDegrees
aString = maxNumber.AsString
numDays = 4.AsDays
Usar cadenas
Cadenas concatenadas
theNewString = Good Morning ++ Michael
theNewString = Good Morning + Michael
MsgBox.Info (TheNewString,)
Figura
Figura
Conversin de cadenas
theString = aNumber.AsString
myNumber = String1.AsNumber
NewDate = myString.AsDate
Usar cadenas
Cuando asigne una cadena directamente o la use como parmetro de requerimiento, escrbala entre comillas dobles ( ).
Concatenar cadenas
Puede unir cadenas con los requerimientos + y ++. Usando + concatena cadenas sin ningn espacio entre ellas; y usando ++
concatena cadenas con un espacio entre ellas.
Cadenas especiales
Avenue tiene cadenas especiales para manejar caracteres de nueva lnea, tabulacin y retorno de carro. Estos son NL, TAB , y CR
respectivamente.
Conversin de cadenas
Las cadenas se convierten a nmeros y fechas usando los requerimientos AsNumber y AsDate. Los nmeros y fechas pueden
convertirse a cadenas usando el requerimiento AsString. Buscando la ayuda en lnea para requerimientos que comienza con As... realice
otros requerimientos que conviertan objetos de una clase a otra.
figura
Figura
Figura
Expandir requerimientos
El encadenamiento permite combinar requerimientos en un solo estamento:
theProject = av.GetProject
theView = theProject.FindDoc (World)
theTheme = theView.FindTheme (GNF)
Es lo mismo que:
theTheme = av.GetProject.FindDoc(World).FindTheme(GNF)
El anidamiento permite usar un requerimiento como un parmetro de otro requerimiento:
Order = MsgBox.Input (Enter the order amount,
Order Entries,)
myComm = 0.12 * (Order.AsNumber)
MsgBox.Info (Your commission is ++ myComm.AsString,
Total commission)
Expandir requerimientos
El uso de requerimientos puede ser dilatado, incluyendo mltiples requerimientos encadenados a la vez para construir un estamento o
usando un requerimiento como parmetro de otro requerimiento.
Cambiar requerimientos
Puede dilatar la sintaxis del requerimiento Object.Request para incluir varios requerimientos (ej. Object.Request. Request.
Request). Los requerimientos encadenados deberan operar sobre el objeto devuelto desde el primer requerimiento. Por ejemplo:
theProject =av.GetProject
theProject.SetName (ACME GIS)
es lo mismo que:
av.getproject.SetName (ACME GIS)
El nmero de estamentos de asignacin (variables) usadas para llevar a cabo una tarea depende del estilo de estamento. Si encadena
varios requerimientos sin interrupcin en su estamento, use menos estamentos de asignacin. Por ejemplo, los estamentos siguientes:
theProject = av.GetProject
theView = theProject.FindDoc (World)
theTheme = theView.FindTheme (GNP)
pueden acortarse a:
theTheme = av.GetProject.FindDoc(World).FindTheme(GNP)
Observe que la variable, en este caso, theTheme, almacena el objeto devuelto por el ltimo requerimiento de la cadena.
Anidar requerimientos
Los requerimientos y los objetos devueltos, pueden usarse como parmetros de otros requerimientos.
En el ejemplo de anidamiento en la pgina anterior, el requerimiento AsNumber se enva a una variable Order para convertir el
objeto desde una cadena a un nmero y trabajar con el requerimiento *. El requerimiento AsString se enva a la variable myComm para
construir una cadena como primer parmetro del requerimiento Info (enviado a MsgBox).
Figura
Figura
Figura
Figura Figura
Paso 2
Paso 3
Paso 4
Paso 5
Escriba un script que use una caja de mensaje de entrada para pedir al usuario un coste. Calcule los impuestos de venta para las
cantidades introducidas por el usuario, entonces informe del importe de devolucin para el usuario.
Abra el script Exercice 3, Step2. Desde el men Help (Ayuda), elija Help Topics (Ayuda Tema). Busque el ndice para MsgBox.
Encuentre el requerimiento Input (entrada) y conteste las siguientes cuestiones.
Cuales son los tres parmetros para el requerimiento Input, y que tipo de objeto es cada parmetro (ej. Nmero, cadena, vista, o
tema)?
Parmetro 1:
Parmetro 2 :
Parmetro 3:
Objeto:
Objeto:
Objeto:
Cree una variable theCostnumber convirtiendo theCostString a nmero con el requerimiento de conversin AsNumber.
Cree una variable theTaxNumber multiplicando theCostNumber por 0.075
Convierta el impuesto de nmero a cadena e informe en una caja de mensaje cual es el impuesto.
Cree una variable llamada theTaxString convirtiendo theTaxNumber a cadena con el requerimiento de conversin AsString.
Use una caja de mensaje Info para informar de theTaxString. El ttulo de la caja ser Your Tax.
Paso 3
figura
Paso 4
En este paso, cambiar el tipo de grfico del grfico Atlanta Banks. Primero examinar los diferentes tipos de enumeraciones.
Abra dos documentos: el grfico Atlanta Banks y el script Exercice 3, Step 4.
Antes de escribir un script, busque cuantos tipos de grficos hay usando lel Index (ndice) de la ayuda para buscar
ChartDisplayEnum (Enumeracin).
Cuntas enumeraciones hay para grficos?
Ahora escribir un script para cambiar los tipos de grfico.
Obtenga el proyecto y busque el documento grfico por su nombre.
Cree una variable theProject enviando el requerimiento GetProject a aplication (av).
Cree una variable theChart enviando el requerimiento FinDoc a theProject. Encuentre el grfico Atlanta Baks.
para un grfico
Abra el script en blanco Exercice 3, Step 5 y con una cadena de requerimientos, desde el Exercice 3, Step 4 introduzca el script en una
sola lnea. Vea la pgina 3-5 y 3-7 para informacin y ejemplos de requerimientos encadenados.
Compile y ejecute este script de una lnea.
Fin
S E C C I N 4
4-12
4-19
Controles
Formas
Clases e instancias
Una clase es un anteproyecto para crear objetos.
Cada clase tiene un nico grupo de propiedades y requerimientos
Las instancias son objetos creados desde la misma clase
Crear objetos usando requerimientos de clase.
aProject = Project.Make
myView = View.Make
Clase Vista
Propiedades
Requerimientos
Figura
Clases e instancias
Una clase es un anteproyecto que define las propiedades y requerimientos para un tipo especfico de objeto. Todos los objetos creados
desde la misma clase son referidos como instancias de la clase. Tienen la mismas propiedades y pueden realizar los mismos
requerimientos. Por ejemplo, todas las vistas tienen un mapa y una tabla de contenidos, y pueden abrirse o cerrarse.
Instancias
Cada objeto es nico, nica instancia de la clase desde la que fue creado. Puede crear cada instancia de una clase nica
envindole el requerimiento que cambia sus propiedades. Por ejemplo, podra asignar a dos botones diferentes iconos y diferentes scripts
para hacerles diferentes y llevar a cabo diferentes operaciones.
Ejemplo El mejor amigo del hombre
Clase Perro
Figura
Rex
Figura
Sparky
Propiedades
Figura
Figura
Botn
Propiedades
Figura
Figura
Figura
2 orejas
4 patas
rabo
hocico
odia a los gatos
Sparky
Requerimientos a instancias
Manipular objetos y sus propiedades
Proporcionar objetos o propiedades de objetos
myView = aProject.FindDoc (View1)
theTheme = myView.FindTheme (Population)
myView.GetName
Chequear y cambiar los valores de las propiedades
theTheme.IsVisible
myView.SetName(Atlanta)
theTheme.SetVisible(true)
Clase vista
Figura
Figura
Requerimientos a instancias
Los requerimientos de Avenue le permiten recuperar objetos y sus propiedades, y chequear o cambiar las propiedades de los objetos. Por
ejemplo, puede encontrar una vista existente, asignar el nombre a una vista, y cambiar la visibilidad de un tema enviando los
requerimientos apropiados a un objeto.
La mayora de requerimientos recuperan o modifican objetos existentes, y se llaman requerimientos de instancias. Los requerimientos de
instancias se llaman con prefijos estndar basados en sus funciones.
Los requerimientos que comienzan con Get..., tales como GetName y GetThemes, devuelven informacin sobre las propiedades de los
objetos. Otros requerimientos Get..., como GetProject, GetActiveDoc y GetActiveField, acceden a objetos cuando el objeto est activo.
Set... se utiliza para requerimientos que asignan nuevos valores a las propiedades de los objetos, tales como SetName, SetVisible, y
SetActive.
Los requerimientos que empiezan con Find..., como FindTheme y FindDoc, acceden a los objetos por medio de su nombre.
Ejemplo El mejor amigo del hombre
Propiedades
Figura
duerme
se sienta
huele
ladra
me trae un palo
Sparky
La jerarqua de clases
La Jerarqua de Clase organiza las clases desde lo general a lo especfico.
Cada clase hereda todas las propiedades y requerimientos desde su superclase
Figura
Figura
La jerarqua de clases
Las clases se organizan desde lo general a lo especfico ( ej. Desde la superclase a la clase). La relacin entre clases est representada
en la Jerarqua de Clase. La Jerarqua de Clase comienza con el objeto ms general, Obj. Todos los otros objetos son subclases de Obj.
La ayuda en lnea incluye la jerarqua de clase completa y la lista de subclases para cada clase.
Herencia
Una vez definido el nivel de la superclase, las propiedades y requerimientos se heredan a todas las subclases. La herencia
permite que las propiedades y requerimientos se definan slo una vez en la jerarqua. Cada subclase puede tener tambin su propias y
nicas propiedades y requerimientos.
Por ejemplo, las clases Vista y Tabla son subclases de la clase Doc, y ambas heredan los requerimientos tales como SetName y Open
desde la clase Doc. Las Vista y la Tabla tambin tienen requerimientos nicos. Por ejemplo, View tiene GetThemes y ZoomIn, y Table
tiene Sort y Summarize.
Ejemplo El mejor amigo del hombre
Clases
Figura
Instancias
Sparky
Rex
Asociacin
uno a uno
cero o ms
cero o uno
Agregacin (compuesto de )
Figura
Juguetes
Baln Hueso
Perro
Ropa
Cuerda
Collar
Cadena
Chapa
Figura
Figura
Figura
Bsqueda de ayuda desde un script
Haciendo clic en el botn de Ayuda del Script se inicia una bsqueda de ayuda del sistema de Avenue, usando el cdigo seleccionado
actualmente en su script. Cuando necesite la ayuda para clases,
requerimientos, o comandos, seleccinelo (seleccionndolo en el
script) y entonces haga clic en el botn de ayuda del script.
Si la clase, requerimiento o comando que ha seleccionado tiene un slo tema, la ventana de ayuda del tema lo mostrar en pantalla. Por
otra parte, la caja de dilogo muestra los mltiples temas encontrados para su seleccin.
Paso 2
Paso 3
Paso 4
Paso 5
Paso 2
Figura
Cul es la primera clase de la Jerarqua de Clase?
Haga clic en Obj y salte a la ayuda de temas para preguntar lo siguiente:
Cules son los atributos (propiedades) de la clase Obj?
Haga clic en Back (Volver) para volver a la Jerarqua de Clase.
Muvase por la Jerarqua de Clase y observe que todas las clases se organizan desde la general a las especficas (ej. Desde la
superclase a las subclases). Ahora conteste las siguientes cuestiones:
Cul es la superclase de File ?
Cules son las subclases de File?
Cul es la superclase de MsgBox?
Cules son las subclases de MsgBox?
Cul es la superclase de Shape?
Cules son las superclases de Shape?
Qu subclase de Shape tiene sus propias subclases?
Paso 3
Examine los atributos de la clase Aplication (Aplicacin) y conteste las siguientes preguntas:
Liste los tres atributos de la clase Aplicacin que tiene el comando Active:
Qu atributo se maneja si ArcView puede personalizarse?
Qu requerimiento devuelve a ArcView la personalizacin?
Haga clic en Back para volver a la Jerarqua de clase.
Paso 4
Figura
Haga clic en Aplication Framework para saltar al Diagrama Modelo de Objeto (OMD).
Figura
Qu smbolo denota la relacin de herencia?
Observe que la herencia (superclase-subclase) que ve en la ayuda del tema clase Doc tambin estaba expresada en el Diagrama Modelo
de Objeto.
Paso 5
Enmarque en un crculo los requerimientos de la siguiente lista, que puede entender una vista. Puede utilizar el ndice de la ayuda para
encontrar un requerimiento o puede moverse con la cremallera de la ayuda de temas. Si no puede encontrar un requerimiento bajo la
ayuda del tema clase Vista, puede buscar su superclase.
Make
GetColor
GetActiveGUI
SetName
Is
Is Ready
Create
AddTheme
Fin
S E C C I N 5
Comprensin de eventos
5-6
5-10
Comprensin de eventos
Cuando un usuario acta en una aplicacin, se produce un evento.
Los scripts se asignan a eventos.
Cuando se produce un evento, se ejecuta un script.
Figura
Figura
Figura
Figura
Comprensin de eventos
Los eventos como click, apply, open y close, son propiedades especiales de los controles, documentos y temas. Puede asignar scripts a
estos eventos. Una vez que lo haga, el script asignado se ejecuta si se produce el evento. Los eventos se desencadenan al actuar el
usuario en la GUI.
Figura
Figura
Figura
Botn Zoom In
Figura
Figura
Abre un proyecto...
figura
Figura
Figura
Cierra un proyecto...
figura
Figura
Figura
Figura
Paso 2
Paso 3
Paso 4
(opcional)
Paso 5
(opcional)
Para este paso suponga que quiere escribir un script que abra una vista y un grfico cuando el usuario haga clic en un botn en la barra
de botones del Proyecto.
En la ventana del proyecto, haga clic en el icono Scripts, entonces haga clic en New (Nuevo) para abrir un nuevo script. Aparecer
una ventana de Script vaca llamada Script1.
El nombre de la vista que se abrir es Atlanta. El grfico se llama Atlanta Population by Country.
En la primera lnea, teclee el siguiente cdigo para establecer una variable llamada myView para la vista Atlanta:
myView = av.GetProject.FindDoc (Atlanta)
En la siguiente lnea, teclee el siguiente cdigo que establece la variable llamada myChart para el grfico Atlanta Population by
Country:
myChart=av.GetProject.FindDoc(Atlanta Population by Country)
Aada las siguientes lneas a su script para abrir las ventanas de los documentos vista y grfico:
myView.GetWin.Open
myChart.GetWin.Open
Figura
Haga clic en el botn Compile (Compilar) para chequear los errores y compilar el script:
Figura
Haga clic en el botn Run (Ejecutar) para testear que el script abre la ventana y el grfico.
Figura
Desde el men File (Archivo), elija Close All (Cerrar todo), para cerrar la vista, el grfico y el script.
Ahora que su script funciona, est preparado para asignarlo a un nuevo botn. La ventana del proyecto est activa y la GUI del proyecto
aparece con el nuevo botn (con una A mayscula) en la barra de botones. El botn fue creado para usted.
Abra la caja de dilogo de Personalizacin
Debido a que usted quiere asignar su script a un botn A en la barra de botones del proyecto, asigne Project a Type y Buttons a la
Category.
Figura
Figura
Seleccione Script1 en el Gestor de Scripts.
Figura
Figura
Ahora, testear su nuevo script haciendo clic en el botn A de la GUI del proyecto.
Primero, minimice la caja de dilogo de Personalizacin. Active la ventana del proyecto con un clic en el botn A.
La ventana Atlanta y el grfico Atlanta Population by Country se abrirn.
Paso 3
En este paso, suponga que quiere crear un control que aumente en pantalla las entidades seleccionadas. ArcView ya permite esta
operacin pero con dos controles: la herramienta Select Feature para seleccionar entidades y el botn Zoom to Selected para realizar
aumentos. Combinar los dos scripts existentes para crear un tercer script, el cual asignar a un nuevo control.
Cierre el grfico y active la vista Atlanta. Abra la caja de dilogo de Personalizacin y asigne View a Type y Tools en Category.
Primero, compruebe que el script del sistema de ArcView se ejecuta cuando utiliza la herramienta Select Feature; entonces cargue el script
en un nuevo script.
Elija la herramienta Select Feature (Seleccin de entidades) para visualizar la lista de propiedades.
Figura
Observe que el script View.SelectPoint est asignado a la propiedad Apply de esta herramienta.
Figura
Minimice la caja de dilogo de Personalizacin.
Luego, cargue el script del sistema View.SelectPoint en el nuevo script vaco.
En la ventana del proyecto, haga clic en el icono Scripts, entonces con clic en New (Nuevo) se abrir un nuevo script. El nuevo
script est vaco y se llama Script2.
Haga clic en el botn Load System Script (Carga de un script del sistema).
Figura
Desde el Gestor de Scripts, elija View.SelectPoint, entonces haga clic en OK para insertar este script del sistema en su nuevo
script.
Figura
Pulse <Enter> despus de la ltima lnea en su nuevo script para emplazar el segundo script del sistema.
Ahora, cargue el script del sistema de ArcView, View.ZoomSelected, que est asignado al botn Zoom to Selected.
Haga clic de nuevo en el botn Load System Script. Desde el Gestor de Scripts, elija View.ZoomToSelected y haga clic en OK.
De esta forma se inserta el script View.ZoomToSelected despus del script View.SelectPoint.
Haga clic en el botn Compile para chequear los errores y compilar el script.
Ahora que su nuevo script est compilado, est preparado para asignarlo a un control. Recuerde, este script requiere que el usuario
seleccione las entidades desde la vista. Antes de asignar el script, necesita contestar tres cuestiones:
En qu tipo de documento (Vista, Tabla, Grfico o Composicin) trabaja el control?
Qu control es apropiado (Campo de men, Botn o herramienta?
Qu evento se produce (Click o Apply) al ejecutar el script?
Conteste a la primera de las cuestiones y determine que nuevo script (Script2) se ejecutara desde la herramienta de la barra de la Vista.
Active la vista Atlanta y abra la caja de dilogo de personalizacin. En la caja de dilogo de personalizacin, asigne a Type View
(Vista) y a Category Tools (herramientas).
En el Editor de Control, haga clic en la herramienta Select and Zoom. (Esta herramienta fue aadida para usted al ejercicio
ex5.apr).
Figura
Luego, asignar el Script3 a la herramienta Select and Zoom. Basado en su contestacin a la tercera cuestin, asigne el script2 a la
propiedad evento Apply.
Haga doble clic en la propiedad Apply que aparece vaca en la lista de Propiedades. En el Gestor de Scripts, haga doble clic en
Script2 para asignarlo a la herramienta.
Figura
Minimice la caja de dilogo de Personalizacin y la ventana del script.
Ahora testear su script utilizando la herramienta.
Con la ventana de la vista activa, haga clic en la herramienta Select and Zoom.
Seleccione un grupo de entidades englobndolas en una caja, y luego aumente las entidades seleccionadas en la vista.
Paso 4
(opcional)
En este paso, crear dos nuevos scripts: Arranque y Cierre. Asignar uno para ejecutarlo cuando se abra el proyecto y otro se ejecutar
cuando se cierre el proyecto.
En la ventana del proyecto, haga doble clic en el icono de Scripts para abrir un nuevo script.
Desde el men Script, elija Properties (Propiedades) y llame al script Startup.
El script Startup (Arranque) cambiar el ttulo en la ventana de su aplicacin (av) para el nombre de su compaa y visualizar el logotipo
de la misma.
Active Startup (Arranque), entonces haga clic en el botn Load Text File (Carga fichero de texto).
Figura
Desde el administrador de archivos, muvase al directorio data para seleccionar en l startup.ave.
Figura
En la primera lnea de este script determine el nombre de la ventana de la aplicacin (av). Reemplace la cadena por el nombre de
la compaa.
La siguiente lnea mostrar una caja de mensaje con un logotipo (desde un fichero de grficos llamado acme.tif) durante 8 segundos. El
ttulo en la ventana de la caja de mensaje ser Go ACME!.
Haga clic en el botn Compile para chequear los errores y compilar el script.
Figura
Ahora crear un script que se ejecute al cerrarse el proyecto.
En la ventana del proyecto, haga doble clic en el icono de Script para abrir un nuevo script.
Desde el men Script, elija Properties (Propiedades) y llame al script Shutdown.
Figura
Haga clic en el botn Compile para chequear los errores y compilar el script.
Desde el men File (Archivo) elija Close All.
Asigne los nuevos scripts a los eventos de arranque y cierre del proyecto.
Desde el men Project (Proyecto), seleccione Properties (Propiedades).
Para el evento de arranque, haga clic en el botn Load System Script y desde el Gestor del Scripts, seleccione el script de arranque.
Desde el evento de cierre, haga clic en el botn Load System Script, y desde el Gestor de Scripts, seleccione el script de cierre. Haga
clic en OK cuando acabe.
Figura
Ahora, guardar el proyecto y testear estos nuevos scripts abriendo y cerrando el proyecto.
Active la ventana del proyecto y desde el men File (Archivo), elija Save Project As (Guardar como...). Muvase al directorio pavetemp y
guarde paveex5.apr.
Desde el men File (Archivo), elija Close Project (Cerrar Proyecto). El script asignado al evento Shutdown y visualice el siguiente
mensaje:
Figura
Haga clic en OK para que desaparezca la caja de mensaje.
Ahora, desde el men File (Archivo), elija Open Project (Abrir Proyecto). Muvase al directorio pavetemp y abra paveex5.apr. El script
asignado al evento de arranque ejecuta y visualiza este mensaje durante 8 segundos:
Figura
Desde el men File (Archivo), elija Close Project (Cerrar Proyecto). El mensaje aparece de nuevo. Haga clic en OK para disminuir la
caja de mensaje.
Paso 5
En este paso, escribir un script que le permita el usuario dibujar (abrir) los temas eligindolos desde un men, en vez de hacer clic en
sus cajas de control en la Tabla de Contenidos. Esta posibilidad sera til si necesitara ocultar la Tabla de Contenidos.
Abra el proyecto ex5.apr.
Se ha aadido un nuevo men llamado Layers (Capas) a la GUI de la vista, con un campo de men para cada tema en la vista Atlanta:
Population, Income y Education.
Figura
Primero, crear un script que visualice el tema Population.
En la ventana del proyecto, haga doble clic en el icono Scripts para abrir un nuevo script. Aparecer una nueva ventana de Script
vaca llamada Script3.
En la primera lnea, teclee el siguiente cdigo para establecer una variable llamada aTheme para el tema Population en la vista
Atlanta:
aTheme = av.GetProject.FindDoc (Atlanta).FindTheme
Teclee esta lnea para visualizar el tema:
(Population)
aTheme.SetVisible (true)
Haga clic en el botn Compile para compilar el script y chequear los errores.
Ahora, cargar este script en dos nuevos scripts, y los modificar para los temas Income y Education.
Active la ventana del proyecto y haga doble clic dos veces ms en el icono Scripts, para abrir dos nuevos scripts: Script4 y
Script5.
Active Script4 y haga clic en el botn Load System Script. (Va a copiar el Script3 dentro de Script4).
Figura
Desde el Gestor de Scripts, elija Script3.
Edite el Script4 reemplazando Population por Income. Haga clic en el botn Compile.
Ahora copie el script3 en el script5.
Active Script5, haga clic en el botn Load System Script, y desde el Gestor de Scripts, elija Script3. Edite Script5 reemplazando
Population por Education haciendo clic en el botn Compile.
Luego, asignar estos scripts a los campos de men.
Abra la caja de dilogo de personalizacin. Asigne View (Vista) a Type y Menus a Category.
En el editor de Control, haga clic en el campo de men Population debajo del men Layers (capas).
Figura
Haga doble clic en la propiedad Click en la lista de propiedades, y seleccione Script3 en el Gestor de Scripts.
De igual forma elija los campos de men Income y Education, asignando Script4 a Income y Script5 a Education.
Cierre la caja de dilogo de personalizacin.
Ahora testear sus scripts usando el men Layers de la GUI de la vista.
Active la vista Atlanta. Haga clic en la caja de control del tema Population para apagarlo.
Desde el men Layers, elija Population, aparecer el tema population. La caja de control es chequeada automticamente para
indicar el estado de la visualizacin.
Apague el tema Population haciendo clic en la caja de control. Ahora testee los campos de men Income y Education.
Fin
S E C C I N 6
Personalizacin de la aplicacin y documento proyecto
Personalizacin de la aplicacin y el documento proyecto............................ 6-2
La clase Aplicacin..................................................................................... 6-4
Trabajar con la ventana de la aplicacin.................................................... 6-6
Controlar la barra de estado de la aplicacin.............................................
Ejecutar los scripts desde la aplicacin......................................................
6-8
6-10
6-12
6-14
6-16
6-19
Figura
La clase Aplicacin
Cuando se inicia ArcView, se crea la aplicacin (av)
Referirse a la aplicacin desde el teclado con el comando av.
Entre la aplicacin y el proyecto existe la asociacin de uno a uno.
av.GetProject
Entre proyecto y Doc, y entre proyecto y los DocGUI existe una asociacin mltiple.
Av.GetProject.FindDoc (World)
Av.GetProject.FindGUI (myGUI)
Entre Doc y DocWin existe una relacin de uno a uno.
Av.GetProject.FindDoc (World).GEtWin
Aplicacin
Extension
Objeto
Proyecto
Script
Script Editor
DocGUI
Grfico
Doc
Composicin
DocWin
Tabla
Vista
La clase Aplicacin
La aplicacin ArcView es la nica instancia de la clase Aplicacin, y se crea cuando se inicia ArcView. Cuando escribe el cdigo de
Avenue, se refiere a la aplicacin desde el teclado con av. Iniciando desde av, puede encadenar requerimientos que le llevarn a otro
objeto que exista actualmente en la aplicacin. De forma ms tcnica, av es el objeto raz en el modelo de ArcView y el punto de inicio
para navegar por el modelo.
Diagrama modelo de objetos de la aplicacin
Un diagrama modelo de objetos es una ayuda visual que le ayuda a escribir el cdigo de Avenue. Mediante la navegacin por los
diagramas modelo de objetos, puede descifrar la asociacin entre objetos y determinados requerimientos que pueden enviarse.
Comenzando con el diagrama modelo de objeto de la estructura de la Aplicacin, puede buscar requerimientos que son enviados a la
aplicacin y a los objetos del proyecto.
Mediante la visualizacin de las relaciones entre clases, el diagrama modelo de objetos le ayuda sin duda, a dos cosas: elegir el
requerimiento apropiado para su estamento de Avenue, y colocar estos estamentos en el orden apropiado. Por ejemplo, si intent
encontrar un documento, iniciara con la aplicacin, entonces tomara el objeto, y encontrara el documento que quiere.
Para ayudar a elegir el requerimiento, utilice la asociacin entre las clases mostradas en el diagrama modelo de objetos. Los
requerimientos Get... y Find... se utilizan con diferentes tipos de asociaciones. El requerimiento Get... trabaja con la asociacin uno a
uno , mientras que Find... trabaja con mltiples asociaciones.
Figura
Con el objeto aplicacin puede asignar las propiedades de la ventana y manejar el documento activo y la ventana del documento. Busque
la ayuda de Avenue para la clase Application para encontrar los correspondientes requerimientos y propiedades (atributos).
La ventana de la aplicacin
El requerimiento moveTo sita la esquina inferior izquierda de la ventana de la aplicacin y especifica la localizacin del pixel en
una x,y especfica. El requerimiento Move sita la ventana en relacin a su posicin actual especificando un incremento de x, e y en
pixeles. El requerimiento Resize, cambia el tamao de la ventana de la aplicacin. El parmetro del requerimiento Resize es el tamao
de la x y la y en pixeles.
Ordene el mosaico de ventanas enviando el requerimiento TileWindows a la aplicacin. Cuando ordene las ventanas en mosaico, se
abrirn todas y se mostrarn en pantalla sin solaparse.
El documento activo
Desde la aplicacin, puede obtener el documento activo con el requerimiento GetActiveDoc y la ventana activa con el
requerimiento GetActive Win.
Figura
procesando ms
av.SetStatus (50)
Figura
procesando ms
av.SetStatus (75)
Figura
procesando ms
av.SetStatus (100)
Figura
El script llamado puede almacenarse en el proyecto actual, en el proyecto de usuario por defecto, o en el proyecto por defecto del
sistema. La aplicacin busca estos directorios en este orden para encontrar el script.
SELF
Utilice SELF en el script llamado para almacenar el objeto pasado desde el script principal. En el ejemplo de la pgina anterior,
cost1 es pasado desde Compra1 a CalcTax, entonces se almacena en SELF, convertido a nmero, multiplicado por el factor de impuesto
0.075, que entonces es devuelto al script principal, Compra1.
Devolver objetos al script principal que realiza la llamada
Un objeto puede ser devuelto al script principal con el estamento Return. En este ejemplo, la cadena Done script2 fue devuelta a
result, en el script principal.
Result = av.run (script2,)
return Done script2
en el script principal
ltimo estamento del script llamado
Si no usa Return en el script llamado, el ltimo objeto creado en este script no es devuelto.
Requerimiento DelayedRun
El requerimiento DelayedRun ejecuta un script en un intervalo de tiempo (ej. Cada diez minutos). Para parar la ejecucin del
script, renmbrelo o brrelo.
Av.DelayedRun (aScript, anObject, timeDelay)
Figura Figura
Figura
Figura Figura
Paso 2
Paso 3
Paso 4
Paso 5
(opcional)
Paso 6
En este paso, editar un script existente para informar al usuario del progreso de una operacin.
El bucle For Each mover la barra de estado desde 0 a 100 por cien.
Entre el estamento For Each y el estamento End, aada el cdigo para asignar el estado de la aplicacin enviando el
requerimiento SetStatus con el parmetro percent. (Aprender sobre bucles For each en la siguiente seccin Ramificaciones y bucles.
Inserte la siguiente lnea de cdigo bajo el comentario Clear message from status bar.
Limpie el mensaje desde la barra de estado de la aplicacin enviando a sta el requerimiento ClearMsg.
Paso 4
Escriba un script que renombre el proyecto actual y lo guarde con el nuevo nombre.
Abra el script Exercice 6, Step 4.
Para obtener el proyecto actual, asigne la variable llamada myProject enviando a la aplicacin el requerimiento GetProject.
Asigne el nombre del fichero myProject enviando el requerimiento SetFileName con el nombre del fichero como su parmetro.
Para crear la cadena del nombre del fichero, empiece con la ruta de su directorio personal y el fichero de proyecto world.apr (ej.
C:\temp\world.apr). Entonces enve el requerimiento AsFileName a esta cadena para convertirla en un nombre de fichero.
(opcional)
En este paso, escribir dos scripts: ScriptA y ScriptB. El ScriptA ejecutar ScripB con av.Run.
Desde la ventana del proyecto, abra los scripts ScriptA y ScriptB.
El ScriptA obtendr el nombre de la aplicacin a y entonces ejecuta ScriptB, pasndole el nombre.
En el ScriptA, cree una variable llamada appName para almacenar el nombre de la aplicacin; para hacerlo, pregunte a la
aplicacin, enviando el requerimiento GetName a aplication.
Luego, cree una variable llamada aNewName para ejecutar la aplicacin, usando el ScriptB y appName como parmetro del
requerimiento Run.
Luego, cree una variable llamada newAppName utilizando un MsgBox con el requerimiento Input. Utilice el mensaje Enter a new
application name: escriba como ttulo de la caja de mensaje Change Application name y utilice una cadena vaca como valor.
En la ltima lnea del ScriptB, use el estamento Return para devolver newAppName al ScriptA, newAppName se devuelve como
aNewName al ScriptA.
Compile el ScriptA y el ScriptB.
Para testear ambos scripts, active el ScriptA y ejectelo. Cuando pida un nombre para la aplicacin, introduzca el nombre que
quiera.
Observe que el ttulo de la ventana de la aplicacin cambia para mostrar el nuevo nombre. Cuando acabe, cierre el script.
6
Escriba un script que recupere los comentarios del proyecto actual y los muestre en pantalla como el mensaje en la caja de mensaje.
Tambin obtiene la fecha de creacin del proyecto y visualiza el ttulo en la caja de mensaje.
Fin
S E C C I N
7. Ramificaciones y bucles
Ramificaciones y bucles
El estamento If
Expresiones y objetos booleanos
El estamento While
El estamento For Each
Listas
Uso de listas con cajas de mensaje
Continue, Break, Return y Exit
Aplicacin de lo anterior
Ejercicio 7: Ramificaciones y Bucles
7-2
7-4
7-6
7-8
7-10
7-12
7-14
7-16
7-18
7-2
Ramificaciones y bucles
Estamentos de ramificacin
If Then
Expresiones booleanas (true o false)
Estamentos de bucles
While
For Each
Listas
Ramificaciones y bucles
Avenue tiene estamentos que soportan operaciones condicionales y de bucles. Las ramificaciones usan condiciones para
determinar el cdigo que debe ejecutarse en cada caso.
Los estamentos de bucles usan comnmente colecciones o grupos de objetos para determinar
cuntas veces se debe aplicar un determinado cdigo. Los bucles pueden tambin usar condiciones booleanas para determinar
si debe ejecutarse o no un determinado cdigo y cuando debe parar.
El estamento If
Ramificaciones condicionales
If (Boolean expression) then
do something
else
do something different
end
Ejemplo: verificar una password
Script de inicio para el proyecto La Banks
thePword = MsgBox.Password
if ( thePWord= cheddar ) then
av.GetProject.FindDoc (Los Angeles Banks).GetWin.Open
else
MsgBox.Info (Sorry, incorrect password,Password)
av.GetProject.Close
end
El estamento If
El estamento If Then usa una condicin ( p.e. una expresin booleana) para determinar qu parte de un script debe jecutarse.
Se puede chequear una condicin y, dependiendo de si es verdadera (true) o falsa (false), ejecutar diferentes lneas de
cdigo. Cada estamento If Then debe tener su correspondiente End.
Uso de ElseIf
Existen dos instancias de clase booleana: true y false. stas pueden ser asignadas directamente usando las palabras clave
true y false, o pueden ser devueltas desde un requerimiento.
Los requerimientos que comienzan con Is, Can y Has devuelven objetos Booleanos, as como algunas cajas de mensaje, por
ejemplo MsgBox.YesNo.
Las expresiones booleanas constituyen la componente condicional de los estamentos If y While en Avenue. Las expresiones
booleanas deben evaluarse a true o false. y deben ser encerradas entre parntesis.
Expresiones compuestas
Las expresiones compuestas se crean usando and, or , xor y not.
Se puede negar un objeto booleano (true o false) con el requerimiento Not, usando los dos formatos que aparecen en la ltima
lnea de la pgina anterior.
La evaluacin de una expresin booleana compuesta finaliza cuando se
determina el resultado de la expresin; as,
cuando se usa and, se puede ahorrar tiempo resolviendo un pequeo testeo antes de uno largo. La tcnica se muestra abajo.
( ( shortTest ) and ( longTest ) )
ahorra tiempo
El estamento While
Lleva a cabo un conjunto de requerimiento mientras una condicin sea true
While (condicin)
algn requerimiento
la condicin debe cambiar
end
Ejemplo: sumar un conjunto de nmeros
sum = 0
start = true
While (start)
El estamento While
El bucle del estamento While recorre un conjunto de requerimientos tanto tiempo como una condicin sea true. Cuando la
condicin cambie a False, el bucle se detiene. Para asegurar no encontrarse un bucle mal finalizado, incluya en el bucle un
estamento que cambie la condicin de true a false. Cada estamento While debe tener su correspondiente estamento End.
En el ejemplo anterior, la caja de mensaje de entrada se visualiza en la pantalla, y contina sumando valores dados por el
usuario. Cuando el usuario haga click en Cancel, theValue se asigna a nil (nulo), y se ejecuta la rama Else; start se asigna a
false, y se visualiza el total. En la siguiente iteracin del bucle, el valor de start es false, y el bucle se finaliza.
El objeto Nil
El objeto Nil es un objeto que no tiene valor. Se devuelve Nil, por ejemplo, cuando se pide al usuario que escriba una cadena
en una caja de mensaje y ste no escribe nada, hace clic en Cancel o quita la ventana.
Atrapar errores
Para asegurar que el valor de entrada es un nmero real, chequee para ver si
devuelto es una instancia de la clase number (nmero):
el valor
if ((theValue <>nil))and(theValue.IsNumber)).
objeto de la coleccin. Cada estamento For Each debe tener su correspondiente estamento End. En el ejemplo anterior, en
cada iteracin de el bucle, se lee y devuelve un tema de la lista de temas.
Intervalos e incrementos
For Each tambin trabaja con rangos de nmeros, fechas y tiempo como expresiones, usando el requerimiento interval
intervalo(..)). Un incremento puede aplicarse a intervalos usando la clave by. En el ejemplo anterior, num comienza con 0 y se
incrementa en 2 en cada iteracin. El bucle se detiene cuando num es igual o mayor que 5.
Listas
Una coleccin ordenada de objetos
Crear una lista
theList = {theCompany, Phone, 157.50}
theThemeNames ={Banks,Roads,Malls }
theThemeList = theView.GetThemes
newList = List.Make
con llaves
con Get ...
con Make
al principio de la lista
al final de la lista
myList = {City,Banks,Streets}
thePoints = myList.Get (1)
myList.Set (1, Finance)
theIndex= myList.FindByValue(City)
theCount= myList.Count
2
thePoints es Banks
Cambia Banks por Finance
El ndice es 0
El contador es 3
myList.Remove(2)
borra Streets
Listas
Una lista es un grupo ordenado o coleccin de objetos. Una lista puede contener objetos de diferentes tipos. Por ejemplo,
adenas, temas y nmeros pueden ser miembros de la misma lista. Las listas se usan comnmente en bucles y cajas de
mensaje.
Una coleccin es una clase abstracta; esta subclase incluye BitMaps, Dictionary (Diccionarios), List(Listas), NameDictionary
(Diccionarios de nombres )y Stacks (pilas). (Los diccionarios se explican en la seccin 12.)
Creacin de listas
Existen varios caminos para crear una lista. Cualquier tcnica que se elija resulta en un objeto lista ( p.e. una instancia de una
Lista)
Se puede crear una lista asignando un grupo de objetos, encerrados entre llaves {}, a
Se puede enviar una requerimiento a un objeto que devuelva una lista. La mayora de los requerimientos que inician una lista
con Get ... devuelve una lista: por ejemplo, el requerimiento GetThemes devuelve la lista de temas en la vista, y el
requerimiento GetDocs devuelve una lista de documentas en un proyecto.
Se puede crear una lista con el requerimiento Make. Se puede poblar una lista usando los requerimientos Insert y Add. Insert
coloca un nuevo objeto al principio de la lista, y Add coloca el nuevo objeto al final.
Cada objeto en una lista se referencia con un nmero ndice. El ndice comienza con 0 para el primer objeto y termina con
<nmero de objetos > -1. El requerimiento Get devuelve un objeto por su nmero ndice, y Set cambia el valor de el objeto. Use
el requerimiento Find para devolver el ndice de el objeto especificado; use FindByValue si el objeto especificado en una
cadena o un nmero. Count devuelve el
nmero total de objetos en las lista, y Remove borra un objeto por el nmero de
ndice.
theThemeList = theView.GetThemes
theTheme = MsgBox.Choice (theThemeList, Elige un tema, Seleccin de tema)
MsgBox.MultiInput
labelsList = {Nombre,Direccin,Nmero de telfono}
defaultList ={Bernie Szukalski,380 New York Street,909.793.2853}
La lista default podra estar compuesta de cadenas vacas { , , }
theDataList = MsgBox.MultiInput ( Aade cliente , Datos del cliente,labelsList,defaultList)
Las listas se usan normalmente con cajas de mensaje que presenta selecciones o campos de entrada y obtienen informacin
desde el usuario.
Cajas de mensaje
Choice y List
Los requerimientos Choice, List y MultiList se envan a una MsgBox para presentar las opciones del
usuario. Un requerimiento Choice visualiza las opciones en una lista desplegable; el requerimiento List visualiza las opciones
es una lista tipo scrolling (cremallera); y el requerimiento MultiList permite seleccionar varios objetos desde una lista scrolling.
Choice y List devuelven un objeto; MultiList devuelve una lista de objetos.
MsgBox.Choice(aList,aMessage, aTitle)
MsgBox.List(aList,aMessage, aTitle)
MsgBox.MultiList(aList,aMessage, aTitle)
Use el requerimiento AsString cuando la lista de opciones est formada en su totalidad por objetos tipo cadena.
MsgBox.ChoiceAsString(aList,aMessage, aTitle)
MsgBox.List AsString(aList,aMessage, aTitle)
Cajas de mensaje
MultiInput
Enve el requerimiento MultiInput a MsgBox para crear una formato de entrada para que rellene el usuario. El objeto devuelto
desde el requerimiento
MultiInput es una lista.
MsgBox.MultiInput(aList,aMessage, aTitle,aListOfLabels,aListOFDefaults)
Cuando se encuentra un estamento Continue, cualquier paso remanente en la iteracin actual se ignora y
el control pasa a la siguiente iteracin en el bucle
Use Continue par saltar el proceso de los elementos seleccionados o que cumplan una determinada
condicin.
Break
Return
Exit
Los scripts con frecuencia estn formados de estamentos mltiples, o usan varias veces el mismo estamento. El ejemplo de la
pgina anterior usa el estamento If Then dentro de un estamento For Each y dos For Each dentro de un estamento If Then.
Ejemplo
El ejemplo permite al usuario tres intentos de introducir la password correcta. Si el usuario introduce la password correcta, se
visualiza una lista de temas. El usuario entonces selecciona uno o ms temas para hacerlos visibles cuando se abra la vista.
Despus, el script finaliza usando el estamento Return. Si el usuario falla al introducir la password correcta en tres intentos, el
programa notifica al usuario que la password es incorrecta y se cierra el proyecto.
Ejercicio 7:
Paso 1
Ramificaciones y Bucles
Paso 2
Paso 3
Paso4
opcional
Paso 5
Ejercicio 7:
Ramificaciones y Bucles
En este ejercicio, se podrn practicar las ramificaciones y bucles usando listas, los estamentos If Then y el estamento For Each.
Paso 1
Paso 2
Cree una variable llamada theTheme enviando a una MsgBox el requerimiento Choice para visualizar
theThemeList. El mensaje es Seleccione un tema. El ttulo sobre la caja de mensaje debe decir Temas para
Atlanta. Para construir este ttulo use Temas para++theView.GetName.
Enve a MsgBox el requerimiento Info para visualizar el tema seleccionado por el usuario. Tome el nombre de
theTheme enviando el requerimiento GetName (esto tambin crea la cadena requerida). El ttulo de la caja de
mensaje El tema seleccionado
Compile y corra el script para testear ste. Cuando acabe, cierre el script.
Paso3
Escriba un script que pida al usuario el nombre de la compaa, la direccin y nmero de telfono y que
haga un informe con el nmero de telfono. Usar la caja de mensaje MultiInput para crear un formulario con
la informacin de entrada.
Use la ayuda par responder a las siguientes cuestiones acerca del requerimiento MultiInput
Cuales son los cuatro parmetros? Cual es la clase de cada parmetro?
Parmetro 1:
Parmetro 2:
Parmetro 3:
Parmetro 4:
Clase:
Clase:
Clase:
Clase:
Cree una variable llamada theData enviando el requerimiento MultiInput a MsgBox para que el usuario pueda
introducir los datos del Cliente. El ttulo de la caja de ensaje es Lista de Clientes. Use theLabels y theDefaults
como los ltimos dos parmetros.
Despus extraer y har un informe con el nmero de telfono y nombre de la compaa a partir de la lista
devuelta
Cree una caja de mensaje Info. Para el mensaje, tome el nmero de telfono enviando a theData el
requerimiento Get con nmero de ndice(2). Para el ttulo, tome el nombre de la compaa enviando
Compile y corra el script. Mientras est introduciendo los datos en la caja MultiInput, use la tecla
<Tab> para moverse entre las cajas de entrada. Cuando acabe, cierre el script.
Paso4
Paso 5
Dentro del bucle, cree una variable llamada vis enviando a cada t (tema) el requerimiento IsVisible.
Cambie la visibilidad de cada t (tema) con el requerimiento SetVisible. Para el parmetro, use la variable vis y cambie
el valor booleano con el requerimiento Not.
End
S E C C I N
8-2
8-4
8-6
8-8
8-10
8-12
8-14
8-16
8-19
La clase Tema
Una vista est compuesta desde ninguno hasta muchos temas.
Un tema representa una fuente de datos sencilla.
Usar ScrName para definir la fuente de datos de un tema.
Existen cuatro clases de temas.
Cada tema en una vista representa una fuente de datos espacial. La clase Tema permite visualizar una variedad de temas reunidos
en una sola vista. Cada tema tiene un ScrName asociado que define su fuente de datos.
Temas de Entidad
Los temas de entidad o Fthemes, soportan fuentes de datos de entidades tales como shapefiles, coberturas, capas de librera o
bases de datos ArcStorm.
Temas de Imgenes
Los temas de Imgenes o Ithemes, soportan fuentes de datos de imgenes. Un Itheme puede crearse desde cualquier fichero de
imgenes que reconozca ArcView.
Temas de Bases de Datos
Los temas de Bases de Datos o DBThemes soportan fuentes de datos
SDE (Turbina de Base de Datos Espacial).
Temas de Rejilla
Los temas de rejilla o Gthemes soportan las fuentes de datos raster que se pueden usar con la extensin de Anlisis Espacial de
ArcView.
Temas de Entidades
Cada tema de entidades (FTheme) est asociado con una tabla y con una leyenda.
Cada leyenda est compuesta de uno o muchos smbolos y clases.
Cada tabla de entidades (FTab) tiene desde ninguno a muchos campos.
Temas de Entidades
Los temas de Entidades a los que nos referimos como FThemes, soportan operaciones sobre un tema tales como cambiar su simbologa
y clasificacin
en la leyenda. La leyenda de un tema es un conjunto de smbolos y clases. Una tabla de entidades a la que nos
referimos como FTab est asociada con cada Ftheme. Los campos en la Ftab proporcionan los datos para clasificar temas de entidades.
Ejercicio 8:
Paso 1
Paso 2
Paso3
Clasificar un tema.
Paso4
Paso 5
(opcional)
Ejercicio 8:
En este ejercicio se podr aadir un tema llamado Census Tracts a la vista Atlanta usando un fichero shapefile llamado tracts.shp. Se
clasificar su leyenda y alterar su posicin en la TOC.
Paso 1
Paso 2
shapefile llamado
tracts.shp.
Desde la ventana de proyecto, abra el script Ejercicio8, Paso2. La lnea de cdigo que busca la vista Atlanta ya est
en el script.
Cree una variable llamada shapeSrc enviando a la clase SrcName el requerimiento Make. Como parmetro, use la
cadena para el shapefile $AVETRAIN/data/tracts.shp
Ahora cree una variable llamada theTheme para enviar a la clase Tema el requerimiento Make. Use ShapeSrc como
parmetro.
Despus, aada el tema a la vista y nombre ste.
Para aadir el tema a la vista, enve a theView el requerimiento AddTheme con theTheme como parmetro.
Enve a theTheme el requerimiento SetName y nombre el tema con la cadena Census Tracts.
Compile y corra el script. En la vista aparecer un nuevo tema llamado CensusTracts.
script.
Paso3
Clasificar un tema.
Ahora crear una clasificacin por cuantiles de la leyenda del tema Census Tracts en base a
media.
la renta familiar
Desde la ventana de proyecto, abra el script Ejercicio8, paso3. El cdigo en el script busca la vista Atlanta y el tema
Census Tracts.
Tome al leyenda del tema creando una variable llamada theLegend y enve a theTheme el requerimiento
GetLegend.
Despus, asigne el tipo de leyenda para el tema
Enve a theLegend el requerimiento SetLegendType y use como parmetroel enumerador
#LEGEND_TYPE_COLOR.(esto crea una leyenda de color gradual)
Ahora use el tema y el nombre del campo para clasificar la leyenda
Enve a theLegend el requerimiento Quantile par crear una clasificacin por cuantiles con theTheme, Med_hh_in, y
5 clases.
Redibuje la leyenda y el tema con la nueva simbologa y la nueva clasificacin.
Refresque el tema en la vista con el requerimiento UpdateLegend.
Compile y corra el script. El tema Census Tracts se reclasifica con la clasificacin por cuantiles.
Paso4
En este paso, cambiar los smbolos de las 5 clases, para que la gama vaya de verde claro a
oscuro.
Desde la ventana de proyecto, abra el script Ejercicio8, paso4. Dese cuenta de que las lneas de cdigo en el script
ya buscan la vista Atlanta y el tema Census Tracts.
Tome la leyenda del tema creando un variable llamada theLegend, y enva a theTheme el requerimiento GetLegend.
Tome una lista de los smbolos, llamada theSymList, enviando a theLegend el requerimiento GetSymbols.
Para almacenar la lista de colores de la paleta de color, cree una variable llamadatheColors. Enva a la aplicacin el
requerimiento GetWin, despus el requerimiento GetPalette, y finalmente el requerimiento GetList con enumeracin
#PALETTE_LIST_COLOR como parmetro.
Despus crear un bucle para procesar las cinco clases. Conseguir cada smbolo desde la lista smbolos por el
nmero de ndice.
Cree un bucle For Each usando symIndex para cada nmero en el intervalo 0 ..4
Cree una variable currSym enviando a theSymList el requerimiento Get con el parmetro symIndex.
Los colores del verde claro al verde oscuro tienen ndices del 13 al 17 . Cree aNewColor enviando a theColors el
requerimiento Get con symIndex + 13 como parmetro.
Para asignar le nuevo color al smbolo, enve a currSym el requerimiento SetColor con newColor.
Redibuje la leyenda y el tema, reflejando la nueva leyenda, enviando a theTheme el requerimiento UpdateLegend.
Para encender el tema, enve a theTheme el requerimiento SetVisible con true
Compile y corra el script. Ver que la leyenda del tema Census Tracts cambia al rango de smbolos verde claro a
verde oscuro.
Paso 5
(opcional)
theThemeList. Los
Para redibujar en la TOC, enva a theView el requerimiento InvalidateTOC con el parmetro Nil.
Para redibujar todos los temas, enve a theView el requerimiento Invalidate.
Compile y corra el script
End
10-2
10-4
10-6
10-8
10-10
10-12
10-14
10-16
10-18
10-20
10-22
10-25
Mapdisplay
Prj
View
TOC
Graphiclist
Uso de shapes
Uso de shapes para crear grficos, seleccionar entidades y crear entidades.
Uso de shapes
Las shapes son los bloques de construccin bsicos usados para representar las entidades geogrficas del mundo real. Por ejemplo, las
shapes pueden representar reas comerciales, reas de mercado, lneas de potencia o localizaciones especiales peligrosas. Use shapes
para crear grficos en una vista o composicin, seleccionar entidades de un tema o crear entidades en un tema.
Clase de shapes
Las subclases de shapes son crculo, lnea, punto mltiple, punto y rectngulo.
especfica. Toda la geometra de las shapes es plana ( no esfrica).
Resalto de shapes
El requerimiento FlashShape enva una shape sobre el display, usando un smbolo durante un tiempo determinado y nmero de veces especificado
aShape = Circle.Make(3@3,2)
aSymbol.Make(#SYMBOL_FILL)
theDisplay.FlashShape (aShape,aSymbol, 10,10)
Symbol
GraphicGroup
GraphicShape
Shape
Oval
Line
Rect
Point
Circle
Multipoint
Polyline
Polygon
Para crear un grfico en la vista, se debe comenzar creando la definicin matemtica geometra plana), llamada shape. Una ShapeGrfica
se crea a partir de una shape y se almacena ms tarde en una lista Grfica. La Lista Grfica visualiza los grficos en al vista ( o
composicin)
Clases de shapes
La clase Shape tiene muchas subclases. Las siguientes son clases de shapes:
Circle(Crculo), Line(Lnea2 puntos), Multipoint (grupo de puntos), Oval(valo),
Point(Punto) y Rect(Rectngulo).
Polyline es una subclase de Multipoint y Polygon una subclase de PolyLine. Dichas shapes pueden construirse usando el requerimiento
Make con los parmetros de medida y coordenadas apropiados.
Grficos no asociados
Para construir un nuevo registro para la nueva shape, use la Ftab del tema.Use el requerimiento FIndFIeld para encontrar el campo
Shape, y el requerimiento AddRecord para aadir un nuevos registro. Despus, use el
requerimiento SetValue para asignar el valor
del campo Shape a una shape puntual. Nota : el valor no es una cadena, sino la shape actual.
Paso 1
Paso 2
Paso3
Paso4
Paso 5
opcional
Animar un grfico.
En este ejercicio, se tomarn las coordenadas x e y de una shape, se crear un grfico y se cambiar su simbologa, despus
se usar ste para seleccionar entidades. El ltimo paso contiene una animacin ejemplo de un Sistema de Seguimiento de
Vehculos.
Paso 1
Paso 2
Compile el script pero no lo testee todava. Debe primero asociar ste con un control
Asocie el script con un control.
Responda a las siguientes cuestiones para determinar con qu control y con qu
propiedad del Evento se debera asociar el script.
Con que evento asociar el script? Apply Click Update
Por qu?
Qu control ejecutar ese script?
Men
Botn Herramienta
Por qu?
Use al caja de dilogo de personalizacin (Customize) par visualizar las Herramientas de la vista en el
Editor del control. Asocie el script Ejercicio10, paso2 con la propiedad Apply de la herramienta XY.
Verifique que el script se ejecuta adecuadamente testeando la herramienta XY.
Cuando acabe, cierre todas las ventanas excepto la de la ventana de Proyecto y la vista Redlands.
Paso3
Cree theGraphicCircle enviando a la clase GraphicShape el requerimiento Make con theCircle como
parmetro.
Asigne la simbologa para el crculo tomando el grfico la simbologa del crculo y cambiando
sus propiedades .Cambie el relleno a un pattern rojo slido y azul el borde.
Cree theSymbol enviando a theGraphicCircle el requerimiento GetSymbol
Asigne el color a theSymbol con el requerimiento SetColor. Como parmetro, enve a la clase Color el
requerimiento GetRed.
theGraphicCircle.
Paso4
Finalice el bucle
Ahora, coloque el crculo alrededor del punto central dado por el usuario.
Cree theDisplay enviando a theView el requerimiento GetDisplay
Construya thePoint enviando a theDisplay el requerimiento ReturnUserPoint para devolver la localizacin x,y de
un punto dado por el usuario
Cree theCircle enviando el requerimiento Make para crear una shape matemtica con
thePoint como centro del crculo y 300 de radio.
Cree theGraphicCircle enviando a la clase GraphicShape el requerimiento Make, con el crculo como parmetro.
Aada ahora el grfico a la lista de grficos y use ste para seleccionar entidades.
Cree theGraphicList enviando a theView el requerimiento GetGraphics.
Paso 5
opcional
Animar un grfico
Las aplicaciones en tiempo real trabajan continuamente con datos cambiantes continuamente. Por ejemplo, para
visualizar el movimiento de un vehculo, las coordenadas del objeto deben cambiarse continuamente. En este
paso, se correr algn script existente para crear un Sistema de Seguimiento de Vehculos.
Abra la vista Vehicle Tracking System. Tiene un nico GUI. El botn Sparky se aadi al lado derecho de la barra
de botones.
Un script (VTSI) provoca el proceso de seguimiento de vehculos se procesa para empezar, y el otro script (VTS2)
lee las coordenadas del vehculo cada segundo y actualiza la posicin del grfico en la vista. El requerimiento
av.DelayedRun se usa para leer un script en un intervalo dado.
Abra el script VTSI y examine su contenido.
Abra la caja de dilogo de personalizacin (Customize) y asocie el script VTSI con el botn Sparky.
Abra y examine el script VTS2.
Inicie el sistema de seguimiento simulado haciendo clic en el botn Sparky.
End
S EC CI O N
11
11-2
DocGUI
Creacin de un docGUi para un documento especfico
Recuperacin y modificacin de controles del GUI
Colocar nuevos controles
Aadir un men
Aadir un botn con un men personal
Cambio de la visibilidad de los controles
11-4
11-6
11-8
11-10
11-12
11-14
11-16
11-18
11-20
11-23
El docGUI
Un proyecto est asociado con muchos docGUIs
Un docGUI est compuesto de una barra de men, una barra de botones y una barra de herramientas.
PopupSet
MenuBar
DocGUI
Project
ButtonBar
Doc
ToolBar
El docGUI
Un proyecto est asociado con muchos docGUI (p.e. uno para las vistas, otro para las composiciones, etc. Cada docGUI est compuesto
por una barra de mens, una de botones y otra de herramientas. Algunos requerimientos devuelven el GUI completo, mientras que otros
devuelven las barras ce controles individuales.
Use el requerimiento GetGUIs para devolver una lista de todos los GUIs en un proyecto. Este requerimiento es til para llevar a cabo
operaciones globales, como adicin del mismo botn a todos los GUIs.
Se puede devolver un GUI especfico usando el requerimiento FindGUI con el nombre theGUI (p.e. "vista" o "composicin".) Se puede
tambin conseguir el GUI activo actual se enva a la aplicacin el requerimiento GetActiveGUI.
Una vez que se tiene theGUI, se puede devolver uno de esas barras de controles con los requerimientos GetMenuBar, GetButtonBar,
GetToolBar.
Ejemplos
Adicin de un men
Aade un men en la primera posicin
aMenu=av.GetActiveGui.GetMenuBar.New (-1)
aMenu.SetLabel("&Print")
' asigna etiqueta al men
Adicin de un men
Se puede aadir un nuevo men con un script. Es til cuando se quieren crear mens en base a condiciones actuales del proyecto. Por
ejemplo, se podra crear un nuevo men en base a la vista actual y temas, las entidades seleccionadas o diferentes privilegios de acceso
a los datos.
Adicin de un men a la barra
Se aade un nuevo men a al barra enviando el requerimiento New a la barra de men actual. El requerimiento New requiere un
parmetro para definir la posicin del ndice.
Adicin de opciones de men
Las opciones de men se aaden enviando el requerimiento New al men actual.
Las opciones de men se crean desde una lista, donde los elementos en la lista son las etiquetas de las opciones de men. & se aade
a cada elemento para definir una clave de acceso para cada opcin. Ver seccin 1, Entorno de Desarrollo de
ArcView, para ms de
una etiqueta y clave de acceso.
ndice
En el ejemplo, en ndice empieza por (-1), lo que indica que la primera opcin se coloca a la cabeza del men. Dentro del bucle, el nmero
ndice se incrementa para aadir cada opcin detrs de la opcin previa. Si el nmero de ndice no se incrementa, cada opcin de men
podra insertarse en la cabeza y podra aparecer en orden inverso en la muestra. (p.e. Informes en la cabecera, despus Grficos y luego
Mapas).
Los iconos para los botones son de 20*17 pixeles. Los iconos para las herramientas son de 18*15 pixeles.
Iconos del Gestor de Iconos
Para seleccionar un icono especfico de los disponibles en el Gestor de Iconos (Icon Manager), enve el requerimiento Get a la lista de
icono devuelta por el requerimiento GetIcons sobre el objeto IconMgr. Por ejemplo:
IconMgr.GetIcons.Get(20) devuelve el icono de ndice 20
Paso 1
Paso 2
Paso3
Paso4
Paso 5
opcional
Paso 6
Ejercicio 11:
En este ejercicio, se vern varias formas de cambiar GUI a travs de scripts de Avenue. Se cambiar el GUI en base a una condicin. Se
podrn construir GUIs diferente para dos vistas distintas
Paso 1
Paso 2
Ahora cree una variable llamada theMenu enviando a theMenuBar el requerimiento New. El parmetro del
requerimiento New es el nmero ndice.
Para etiquetar theMenu, use el requerimiento SetLabel con Display como cadena
Tome una lista de los temas en la vista Atlanta. Se usar esta lista para crear las opciones de men
Cree una variable llamada theThemeList enviando a la aplicacin el requerimiento
GetActiveDoc para recuperar la vista, despus enviar el tema GetThemes a la vista
Aada un opcin al men por cada tema activo correspondiente
Use el bucle For Each sobre cada thm en theThemeList
Dentro del bucle, cree una variable llamada theChoice enviando a theMenu el
requerimiento New. Use -1
como nmero de ndice para el requerimiento New para aadir la nueva opcin al principio
Etiquete theChoice enviando el requerimiento SetLabel. El parmetro SetLabel se crea enviando a cada thm el
requerimiento GetName.
Despus, asignar un script que corra cuando la opcin se men sea elegida. Un script llamada ThemeToggle ya
ha sido escrito y conmutar la visibilidad de cualquier tema que sea elegido del men.
Asigne un script a theChoice enviando el requerimiento SetClick. El parmetro de SetClick es una cadena que
contiene el script llamado ThemeToggle
Finalice el bucle For Each
Compile el script. Active la vista Atlanta, despus corra el script. Pruebe el nuevo men. Vea cmo trabaja el script
ThemeToggle, abra el script y examnelo.
Paso3
Abra la caja de dilogo de personalizacin y seleccione la herramienta Dlar. Haciendo doble clic en su propiedad
Apply se visualizar el script Manager. Haga clic par seleccionar el script ShowDeposit. Cierre la caja de dilogo de
Personalizacin.
Active la vista y use la nueva herramienta Dlar sobre el GUI de la vista.
Paso4
Paso 5
opcional
Asigne el nombre de myNewGUI enviando el requerimiento SetName con BankGUI como cadena
Aada ste al proyecto enviando a la aplicacin el requerimiento GetProject, despus aada el requerimiento AddGUI con el
parmetro myNewGUI.
Para asociar el nuevo GUI a la vista Atlanta Banks, enve a la aplicacin el requerimiento GetProject seguido por el requerimiento FindDoc
con la vista Atlanta Banks como parmetro, despus enve el requerimiento SetGUI con BankGUI como parmetro.
Para aadir un nuevo ttulo al nombre del documento en la vista Proyecto, enve a myNewGUI el requerimiento SetTitle con A_Banks
como parmetro.
Compile y corra el script.
Abra la caja de dilogo de Personalizacin, y , para Type elija BankGUI. Borre todos los botones, excepto el de Zoom Out.
Aada dos nuevos botones al principio de la barra.
Sobre el primer botn, para la propiedad Icon asignar FrameText; para la propiedad Click, asigne el script OpenTable.
Sobre el segundo botn, para la propiedad Icon asignar MakeChart; para la propiedad Click, asigne el script OpenChart.
Sobre el botn Zoom Out, para la propiedad Click, asigne el script OpenAtlantaView.
Desde el menu Archivo (File), seleccione Close All.
Para la ventana de Proyecto, abra la vista Atlanta Banks. Vea el nuevo GUI de Bank.
Testee los nuevos botones. Use el botn Zoom Out para abrir la vista Atlanta y vea que tiene un GUI diferente.
End
S EC CI O N
12
Construccin de extensiones
Qu es una extensin?
Qu puede almacenarse en una extensin?
Ejemplos de extensiones
Cmo trabajar con extensiones
Creacin de extensiones
El script Make
El script Make (continuacin)
El script Install
El script UnInstall
Uso de extensiones
12-2
12-4
12-6
12-8
12-10
12-12
12-14
12-16
12-18
12-20
12-23
12-34
12-36
12-38
12-40
12-42
12-45
Qu es una extensin?
Una coleccin de objetos de ArcVIew
Maneja la distribucin de dichos objetos
Los objetos de la extensin no forman parte fsica de un proyecto
Pertenecen a la extensin
Se incorporan al proyecto cuando la extensin se activa
Se borran del proyecto cuando la extensin se desactiva
Qu es una extensin?
extensin es una coleccin de objetos de ArcView.
El concepto de adicin de objetos a un proyecto de forma interactiva no es nuevo y Arcview lo contemplaba antes de desarrollar las
extensiones. Sin embargo, lo que las extensiones aportan, es un significado al manejo de la organizacin de dichos objetos. Antes de las
extensiones, el aadir objetos adicionales al proyecto requera que se importaran los objetos al proyecto. Con las extensiones, los objetos
nunca forman parte fsica del proyecto y no se escriben en el fichero de proyecto. Los objetos pertenecen a la extensin y son
incorporados al proyecto solo cuando el usuario activa la extensin. Se borran del proyecto cuando el usuario desactiva la extensin.
Por ejemplo, se quieren aadir dos botones y una herramienta al GUI del documento.Se debera usar la Caja de Dilogo de
Personalizacin (Customize) para aadir los controles, escribir un script para aadir los controles, o construir un proyecto vaco con los
controles e importar el proyecto vaco. En los tres casos, los controles son una parte permanente del fichero de proyecto cuando se salva
ste. Con las extensiones, los controles forman parte de la extensin, la extensin est activa o apagada, y los controles nunca se
escriben en el fichero de proyecto.
Los objetos puede instalarse o desinstalarse en el proyecto actual:
Ejemplos de extensiones
Rango de un control el GUI para un conjunto de funciones de anlisis complejas
Ejemplos de extensiones
En ArcView 3.0., ESRI proporciona varias extensiones que ofrecen nuevas funcionalidades. Los tipos de extensiones van desde una que
aade un botn sencillo, tales como la extensin Buffer, a uno que aade un conjunto completo de funciones de anlisis, tales como
Extensin de Anlisis Espacial de ArcView.
Extensiones que vienen con ArcView
Extensiones sencillas
ArcView proporciona varias extensiones de ejemplo. Algunos de eso ejemplos son: Utilidades de Editor de Scripts,
Herramientas de
Mapa, un selector de Clase, Modelado hidrolgico, Herramientas de visibilidad, y entidades seleccionadas por Buffer. Todos estos scripts
se instalan con ArcView y se accede a ellos a travs del Sistema de Ayuda de ArcView.
Obj
Script
Project
DocGUI
ScriptEditor
Doc
DocWin
Chart
Layout Table
View
Creacin de extensiones
Crea un proyecto fuente, despus aade los objetos necesarios
Escribe los scripts necesarios para crear una fichero extensin
Define las propiedades de la extensin
Creacin de extensiones
Una extensin comienza como un proyecto. Este proyecto se convierte del fichero fuente de extensin. Aade cualquier objeto necesario
para mejorar la extensin de ese proyecto.
Scripts adicionales
Con el proyecto fuente, pueden crearse otros tres scripts. Dichos scripts son Make, Install y UnInstall.
El script Make usa el requerimiento anExtension.Make para crear una extensin y despus aade los objetos necesarios a la extensin.
Las propiedades de la extensin y dependencias se establecen tambin en el script Make.
Dos scripts adicionales, Install y UnInstall cumplen con los parmetros del requerimiento Make.
Propiedades de las extensiones
Las extensiones tienen propiedades (tales como SetAbout, SetExtVersion, Load y Unload) que permiten manejar la interaccin del usuario
con la extensin. Las propiedades se asignan a la extensin cuando se crea; algunas tienen scripts asociados con ellas. Se aprender
ms acerca de las propiedades de las extensiones ms adelante en esta misma seccin
El Script Make
Crea una extensin que aade dos botones a el GUI de la Vista
Crea el objeto extensin
theExt = Extension.Make
( c:\miguel\extens\vectool.avx.AsFileName, VectorTools,
av.GetProject.FindScript.FindScript (TheInstaller),
av.GetProject.FindScript.FindScript (TheUnInstaller),
{})
Busca y nombra los botones
bBar =av.GetProject.FIndGUI (View.GetButtonBar)
aButton1= bBar.FIndByScript(VectTools.CalcDistance)
aButton1.SetName (VectButton1)
aButton2= bBar.FIndByScript(VectTools.GeoBuffer)
aButton2.SetName (VectButton2)
El script Make
Este script se usa para crear una extensin. Su contenido variar dependiendo de los objetos aadidos y de los nmeros de las
propiedades. Las pginas 12-12 y 12-14 dan los requerimientos mnimos para construir una extensin.
Contenidos del script
Dependencias
Se pueden definir dependencias de la extensin proporciona una lista de otras extensiones o libreras
compartidas proporcionadas por ESRI. Por ejemplo, si se crea una extensin que proporcione alguna
funcionalidad especfica al Anlisis Espacial, es imperativo que se cargue la extensin de Anlisis Espacial.
Especifica el Anlisis Espacial en la lista de dependencias. ArcView asegura que el Anlisis Espacial est
cargado antes de empezar a cargar la extensin, asegurando el entorno para la extensin.
Las libreras compartidas proporcionadas por ESRI que extienden la jerarqua de clase tala como DDLs
soportan el anlisis espacial. Por ejemplo, si se crea una extensin que use las clases y requerimientos
definidas en el anlisis espacial, pero no el interface, podra crear una extensin con dependencia sobre el
Anlisis Espacial DLL
El script Make aade los objetos de la raz de las extensin. El autor de la extensin debe ser consciente del
orden en que dichos objetos se aaden, debido a que el script Install recupera los objetos de la extensin
usando los valores de los ndices. Los objetos en una extensin se indexan como si ellos estuvieran en una
lista.
Uso de nombres para controles
Es una convencin nombrar cualquier control aadiendo una extensin. Esto hace fcil buscar el
proyecto y encontrar los aquellos objetos nombrados cuando hay que desinstalarlos.
About
Esta propiedad es una cadena que describe la extensin. La cadena aparece en la ventana de dilogo cuando el usuario hace clic
en el nombre de las extensin. La propiedad se asigna en el script Make con el requerimiento anExtension.SetAbout. (Otras
propiedades de las extensiones se cubren ms tarde en esta seccin.)
Ejecucin de ODB
El ltimo paso en el script Make usa el requerimiento Ext.Commit.Este requerimiento se hereda de la clase ODB y realiza
cambios en el
fichero ODB y escribe la ODB en el disco.
Compilacin del script Make
Despus de que el script est completo, se necesitar compilar este script, pero no correrlo al tiempo. Antes de poder correr el
script Make, debe asegurarse que de los otros scripts estn en uso, especficamente e Install y Uninstall deben compilarse
tambin. Si se corre el script Make antes de compilar los dos ltimos, el script Make encontrar un error .
El script Install
El script Install
El script Install
El script Install se ejecuta cuando se carga una extensin o si la extensin est ya cargada, cuando se abre un
proyecto diferente o se crea uno nuevo. El script Install define cmo se aaden los objetos al proyecto actual. El
autor de la extensin especifica el orden en que los objetos se aaden a la extensin en el script Make para facilitar
la instalacin de cada objeto desde la extensin al proyecto.
Por ejemplo, si se aaden 3 herramientas y dos botones al docGUI de la vista del proyecto actual, el script Install
define cmo y dnde dichos controles se aaden a las barras de controles. El script Install se ejecuta tambin
cuando cualquier nuevo proyecto se crea mientras la extensin est activa.
En el cdigo de la pgina anterior, los objetos empiezan a instalarse y recuperarse desde la extensin. La extensin
est reverenciada por la palabra clave SELF.
Instalacin de scripts
En la pgina anterior, los scripts que soportan los controles no se aaden al proyecto Es innecesario porque los
scripts son parte de la extensin y en la extensin est en la bsqueda que realiza ArcVIew cuando busca el script
llamado (el script asociado con el control).La aplicacin busca el proyecto actual, los valores por defecto, las
extensiones cargadas, y despus los valores por defecto del sistema para el script llamado. El orden de bsqueda es
el siguiente:
1. Proyecto
2. Valores por defecto del usuario
3. Extensiones
4. Valores por defecto del sistema
Esto significa que no todos los objetos tienen que ser aadidos al proyecto. Estos permanecen como parte de la
extensin y cuando los objetos nombrados aparecen en un script, la extensin se busca para los objetos nombrados.
El script Install debe compilarse antes de ejecutar el script Make.
El ejemplo de la pgina anterior es la suma mnima necesaria para el script Install.
Hay otros detalles del script Install que sern introducidos despus de esta seccin.
El script UnInstall
El script UnInstall
El script UnInstall se ejecuta si el proyecto se cierra o cuando se descarga una extensin. Este script se
ejecuta antes del script UnLoad y limpia cualquier especificacin al proyecto.
Este script borra cualquier objeto que se aadi con el script Install. Este concepto es critico y repetitivo:
cualquier objeto que se aada al proyecto por el script Install necesita borrarse con el script UnInstall.
El script UnInstall debe compilarse antes de ejecutar script Make.
El cdigo de la pgina anterior es lo mnimo necesario para el script UnInstall. Hay otros detalles del script
Install que se comentarn ms tarde en la seccin.
Uso de extensiones
Asignar variables de entorno para localizar ficheros .avx de extensiones
$AVEXT
$USEREXT
Carga de una extensin de la caja de dilogo Extensions
Uso de extensiones
Cuando se ejecuta el script Make, ste crea el fichero de la extensin en el directorio especificado por el requerimiento anExtension.Make
Localizacin de ficheros *.avx
Para ver la extensin listada en la caja de dilogo Extensions, el fichero .avx tiene que localizarse en $AVHOME/ext32 o moverse a un
directorio especificado por el usuario. El $AVHOME/ext32 se referencia por una variable llamada $AVEXT. El directorio especificado por el
usuario est referenciado por la variable $USEREXT. Ambas variables pueden asignarse en el script de inicio del nivel de la aplicacin o
en el script de inicio del proyecto, usando el requerimiento System.EnvVar.
ExtensionWin
Para llamar a una extensin especfica, haga activa la ventana de proyecto, y desde el menu Archivo (File) pique la opcin de men
Extensions. Este men corre el script appl.GetExtensionWin. Este script tiene una nica lnea de cdigo que enva al objeto
ExtensionWIn el requerimiento Show.
Paso 1
Paso 2
Paso3
Paso4
Paso 1
Propiedad
botn#1
botn#2
Apply
N/A
N/A
Click
VectTools.CalcDistance
VectTools.GeoBuffer
Cursor
N/A
N/A
Disabled
False
False
Help
Busca la entidad ms
cercana del punto
identificado
Help Topic
vaco
vaco
vaco
Icon
PatternRamp
Loop
Speeding Bullet
Invisible
False
False
False
Tag
vaco
vaco
vaco
Update
View.HasDataUpdate
View.HasDataUpdate
View.HasDataUpdate
Herramienta #1
VectTools.FindNear
vaco
Paso 2
Cursor.Bullseye
False
Los objetos se recuperan desde la extensin (SELF) y despus se aaden a la barra de botones de la vista. El script Install
no carga los tres scripts que se usan por los controles. Se aadirn a la extensin. La extensin est en el orden de
bsqueda que ArcView usa cuando busca un script determinado.
Cuando acabe de revisar el script, complelo, y cierre la ventana del script.
Despus examinar el script UnInstall.
Abra el script llamado VectTools.UnInstaller
Tmese un minuto en revisar el contenido de este script. ste encuentra los objetos cargados en la extensin por su
nombre y los borra del proyecto. Cuando acabe de
revisar el script, compile ste y cierre la ventana del script.
Paso3
Despus construir los objetos raz para la extensin. Empiece con el primero de los botones y despus la herramienta (El
orden no es importante. Lo es slo cuando en los objetos aadidos a la extensin.)
Recupere el primer botn.
Cree una variable llamada aButton1. En el lado derecho del operador de asignacin, empiece con av, y despus use el
requerimiento GetProject, seguido por el requerimiento FindGUI. El requerimiento FindGUI debera tener la cadena View
como parmetro. Despus enve el requerimiento GetButtonBar y FindByScript. El requerimiento FindByScript debera
tener VectTools.CalcDistance como parmetro.
Todo esto se puede hacer en una nica lnea usando requerimientos encadenados, o construir varias variables de varias
lneas (Puede usar esas variables de nuevo cuando aada el otro botn y la herramienta.)
Nombre este botn Boton1 enviando el requerimiento SetName a la variable aButton1.
Aada el segundo botn a la extensin de la misma forma que el primero. El script que ejecuta este botn se llama
VectTools.GeoBuffer.
Ahora construya la herramienta de la misma forma que se construyeron los dos botones. Use el requerimiento GetToolBar
en lugar deGetButtonBar. Esta herramienta ejecuta un script llamado VectTools.FindNear.
Es importante que se de nombre a esos botones y herramientas como se especifica arriba, debido a que el script UnInstall
usa esos nombres para localizarlos.
Despus aada los dos botones y la herramienta a la extensin. Para aadir un objeto a la extensin, use el requerimiento
Add. El requerimiento Add se hereda de la superclase ODB.
Enve el requerimiento Add a la variable theExt. Haga esto tres veces, una vez para cada control. Use las variables para los
botones y herramienta como parmetros para el requerimiento Add.
Aada los tres scripts que usarn los controles de la extensin
Enve el requerimiento Add a la variable theExt. Como primer parmetro, use el conjunto de requerimientos encadenados
av.GetProject.FindScript. Para el parmetro del requerimiento FindScript, de el nombre del script. Remtase al grfico de la
pgina 12-25 para los nombres de los scripts. Necesitar hacerlo tres veces, una para cada script que est siendo aadido.
Consejo: Debera parecerse a algo como object.request(object.request(parmetrro).)
Lo siguiente que se debera hacer es describir la extensin
Enve a al extensin (referenciado con la variable theExt) el requerimiento SetAbout. Para este requerimiento, proporcione
una frase o dos que describan lo que hace la extensin. Por ejemplo: Esta extensin se asigna para aadir+NL+alguna
utilidad de anlisis vectorial simple para+NL+el proyecto actual. Esta cadena aparecer al final de la caja de dilogo de la
Extension
Asigne el nmero de versin de la extensin.
El paso final es hacer la extensin. El requerimiento Commit crear el fichero de extensin en el disco en el directorio
pavetemp.Enve el requerimiento Commit a la variable theExt.
Paso4
End
Propiedades de la extensin
Seis propiedades de eventos permiten manejar la extensin
Install
UnInstall
Load
Unload
CanUnload
ProjectSave
KEY
VALUE
KEY
VALUE
KEY
VALUE
Cargado
true
Version
1.0
Aadir elementos
theDictionary.Add (aKey, aValue)
theExt.GetPreferences.Add (Versin, theExt.GetVersion)
Ejercicio 12B:
Paso 1
opcional
Paso 2
opcional
Paso3
opcional
Paso 1
opcional
Install.)Si la extensin est ya cargada, no se quiere hacer nada que no sea devolver desde el script. Si la extensin
no est cargada, ha de continuar.
Inicie el estamento If Then . Como condicin, enve SELF ( que referencia a la extensin), el requerimiento
GetPreferences, seguido por el requerimiento Count, y use el operador relacional not equal to seguido por 0.
Si la condicin es true, la extensin ya est cargada; entonces devuleve un objeto nil (nulo) desde el script.
Si el contador es cero, significa que la extensin no est cargada.
Despus, escribir el estamento Else para asignar la versin actual de la extensin. Se aadir un elemento al
diccionario de Preferencias que identifica qu versin est cargada. El nmero de versin se usa para llevar a cabo
el desarrollo de la extensin.
Enve el requerimiento GetPreferences a SELF seguido por el requerimiento ADD para aadir un elemento al
diccionario de preferencias. Como primer parmetro (la clave) use Version. Para segundo parmetro ( el valor),
recupere el nmero de versin desde la extensin enviando a la extensin (SELF) el requerimiento GetExtVersion.
Ahora, examine las lneas que aaden los controles .Para localizar los controles en un posicin relativa, el script asigna una variable
llamada pos a un valor de ndice del botn Help ( el ltimo botn en la barra de botones de la vista).
Despus, editar el script para clonar los controles aadidos por la extensin. Se colocarn tambin los controles relativos al botn Help.
En la lnea posterior se crea la variable pos, inserte el requerimiento Clone despus del parmetro Get(0).
Reemplace el parmetro 2/ con la variable pos seguido por -3 como posicin.
Este colocar el primer botn tres lugares a la izquierda del botn Help.
Despus , edite el script para clonar y colocar el segundo botn.
Edite la siguiente lnea, usando -2 como posicin.
Ahora editar el script para clonar u colocar la herramienta similar de la forma que hizo para los botones.
Muvase a la seccin de cdigo que aade la herramienta. En la ltima lnea (tb.Add(SELF.Get(2),15)inserte el requerimiento Clone
despus del parmetro Get (2). Despus, para el parmetro de posicin (15) , enve a la variable tb (para la barra de botones) el
requerimiento Getcontrols seguido del requerimiento Count.
Compile ( no corra) el script. Cuando acabe, cierre el script.
Ahora, cuando salve el proyecto, cualquier personalizacin se preservar.
Paso 2
opcional
Despus de las tres primeras lneas comentadas, empiece un estamento If Then. Para la condicin, enve a la aplicacin (av) el
requerimiento GetProject seguido del requerimiento IsClosing. Despus si la condicin es true, devuelve nil para terminar el script,
despus finalice el estamento If Then.
Compile el script.
Despus, abra el script VectTools.Maker. Modificar este script y especificar los nuevos scripts Install y UnInstall.
Primero, asigne el path en el requerimiento Extension.Make del directorio pavetemp.
Muvase a la lnea donde se hace la extensin (theExt). Cambie el nombre del fichero .avx desde vectool.avx a mvectool.avx ( m indica
la versin modificada)
Despus, cambie el nombre de la extensin de Vector Tools a Mod Vector Tools.
Finalmente, cambie el script Install desde Installer a VectTools.ModifiedInstaller y el script UnInstall desde VectTools.UnInstaller a
VectTools.ModifiedUnInstaller.
Compile este script, despus crralo. Crea otro fichero de extensin en el directorio pavetemp llamada mvectool.avx.
Cuando acabe, cierre la ventana del script.
Salve el proyecto como mvtool.apr en el directorio pavetemp.
Ahora testear la nueva extensin.
Haga clic en el proyecto para activarlo. Entonces, desde el men Archivo (File), haga clic en Abrir Proyecto(Open Project) y abra el
proyecto ex12test.apr almacenado en el directorio ejercicio.
Despus abra el proyecto, vaya al men Archivo (File) y haga clic en Extensions.
Debera ahora ver Mod Vector Tools junto con VecTools listado en la caja de dilogo Extensiones
Haga clic en la caja de chequeo a la derecha de Mod Vector Tools, despus haga clic en OK.
En este momento se carga la extensin y se ejecuta el script Install modificado. Usar este script con la extensin cargada en el siguiente
paso.
Paso3
opcional
En este paso, se personalizarn los controles aadidos por la extensin, se salvar el proyecto para ver qu personalizaciones se
preservan.
Abra la caja de dilogo de Personalizacin (Customize). Cambie el icono para la herramienta que se ha aadido a la extensin. Despus
arrastre los dos botones de la extensin a una nueva localizacin de la barra de botones.
Cuando acabe, cierre la caja de dilogo de Personalizacin (Customize).
Active la ventana de Proyecto, y desde el men Archivo (File) elija Salvar como (Save Project As). Salve este proyecto en el directorio
pavetemp y nombre ste custvect.apr.
Ahora volver a abrir el proyecto y examinar las personalizaciones
Con la ventana de Proyecto activa, desde el men Archivo (File), elija Abrir Proyecto (Open Project) .Navegue por el directorio pavetemp y
vuelva a abrir custvect.apr. Este es el proyecto en que se acaban de personalizar los controles.
Cuando abra el proyecto, active la vista. Los controles reflejarn la personalizacin.
End
A P N D I C E
Figura
Leer y escribir ficheros de texto
Esta seccin examina el fichero de entrada y salida de Avenue. Aprender como trabajar con los objetos File (fichero) y FileName
(nombre de fichero), para permitir accesos bsicos al fichero. Los permisos de acceso al fichero (ej. Leer o escribir) se definen mediante
emnumeraciones de permiso. Tambin aprender como usar las cajas de dilogo para buscar o crear ficheros.
La clase Fichero
Leer, escribir y manejar ficheros
Subclases de File (Fichero)
TexFile (un nico carcter)
LineFile (lnea completa)
Cada objeto File (Fichero) tiene un objeto FileName asociado
File
LineFile
FileName
TextFile
FileName
ODB
La clase Fichero
La clase File maneja operaciones bsicas de ficheros, tanto copiar, borrar, chequear el acceso de escritura y operaciones de
entrada/salida, como el abrir, cerrar y leer ficheros. El fichero es una clase abstracta, usada slo para organizar las caractersticas de sus
subclases: todo fichero es un FileName o un TexFile. Un objeto FileName proporciona una ruta para localizar un fichero.
Objetos LineFile
Un elemento LineFile es una lnea completa de caracteres, que acaba mediante una plataforma dependiente de un carcter de final de
lnea. Las operaciones de escritura sobre un LineFile conservan la terminacin original.
Objetos TextFile
Un elemento TextFile es un nico carcter. La clase TextFile se utiliza cuando un fichero no est orientado a lneas (Ej. Cuando se
necesita buscar un carcter e insertar otro carcter o cadena de caracteres).
Crear un FileName
myNewFN = FileName.Make (c:\train\data.txt)
Crear un FileName mediante la conversin de una cadena
theWinFN = c:\work\data.txt.AsFileName
theUnixFN = /usr1/data.txt.AsFileName
theMacFN = Disk1:work:data.AsFileName
Windows
Unix
Macintos
la diferencia es que #FILE_PERM_WRITE borra lo que tena escrito el fichero anteriormente, y #FILE_PERM_APPEND, no borra el
contenido del fichero. #FILE_PERM_READ, slo permite abrir un fichero existente.
Para ms informacin sobre los permisos de un fichero para lectura y escritura, vea la ayuda en lnea de las enumeraciones
#FILE_PERM_MODIFY y #FILE_PERM_CLEARMODIFY.
Ficheros de texto
Ejemplo de creacin de un fichero de texto:
theTfile = TextFile.Make (theWinFN, #FILE_PERM_WRITE)
Utilizar FileDialog
FileDialog visualiza una lista de ficheros y directorios en la caja de dilogo
Crear o recuperar nombres de ficheros
Show devuelve el fichero seleccionado
ReturnFiles devuelve una lista de ficheros seleccionados
Put se utiliza para crear ficheros nuevos
Obtener un filename del usuario y crear un fichero de texto
myFN= FileDialog.Show(*.txt,Text File,Show Files)
theFile = TextFile.Make (myFN, #FILE_PERM_READ)
Figura
Utilizar FileDialog
Un objeto FileDialog visualiza una lista de ficheros y directorios en una caja de dilogo. El requerimiento Show, ReturnFiles, y Put
permiten al usuario crear un nuevo fichero, o seleccionar uno o varios ficheros.
Existen varias razones para utilizar un FileDialog: puede evitarse escribir rutas sobre plataformas especficas tales que algunas pueden
necesitar ser actualizadas (ej. Para una aplicacin de plataforma hbrida o despus de mover los datos), y es el usuario quien elige y da
nombre a todos los ficheros.
Show
El requerimiento Show muestra al usuario la seleccin de un nico fichero, y devuelve un objeto FileName. El requerimiento Show
necesita tres parmetros: un patrn (Ej. *.ave), el nombre en la lista de ficheros de la lista de tipo desplegable, y un ttulo para la caja de
dilogo.
ReturnFiles
El requerimiento ReturnFiles permite al usuario seleccionar uno o ms ficheros, de uno o ms tipos. Devuelve una lista de
FileNames seleccionados. ReturnFiles necesita cuatro parmetros: una lista de patrones (ej. *.ave, *.txt), una lista de nombres de los
patrones en los ficheros de la lista de tipo desplegable (ej. Scripts (*.ave), TextFiles (*.txt), un ttulo para la caja de dilogo, y un ndice que
indica el patrn por defecto.
Put
El requerimiento Put permite al usuario especificar un fichero de salida, y devuelve un FileName. Put necesita tres parmetros:
una ruta por defecto para el fichero, un patrn, y un ttulo para la caja de dilogo.
Si el fichero especificado ya existe, se le requerir al usuario que conteste a la pregunta Replace Existing File? (Desea reemplazar el
fichero existente?), con un yes o un no.
theLineFile.WriteElt (theString)
theFile.Close
Encontrar el nmero de elementos del fichero
theFile.GetSize
Manipular cadenas
theString.BasicTrim (leftCharacters, rightCharacters)
theString.Contains (anotherString)
theString.Substitute (someString, anotherString)
Manejar el puntero del fichero
theFile.IsAtEnd
theFile.GoToBeg
theFile.GotoEnd
theFile.SetPos (aNumber)
theFile.GetPos
Los ficheros acceden a un elemento cada vez. Lea los ficheros con el requerimiento ReadElt. El requerimiento ReadElt devuelve tanto
una lnea completa de caracteres o como un nico carcter, dependiendo de que el fichero sea un LineFile o un TextFile.
Escribir ficheros
Escriba los ficheros con el requerimiento WriteElt. Cuando escriba en ficheros, hay requerimientos que le permiten conocer qu
tamao tiene el fichero (GetSize), y si en el fichero se puede escribir (IsWritable). Despus de escribir en un fichero, deber cerrarlo.
Use el requerimiento Close para cerrar el fichero.
Manipular cadenas
Despus de leer una lnea desde un LineFile, hay algunos requerimientos de manipulacin de cadenas que puede usar para
modificar la cadena. Dirjase con String en la ayuda en lnea para obtener un listado completo de requerimientos. Puede tambin
convertir una cadena a una lista y usar los requerimientos de una lista.
Manejar el puntero del fichero
Puede utilizar requerimientos para situar el puntero del fichero en el comienzo del fichero
(GoToBeg), al final del fichero (GoToEnd), o en una posicin especifica mediante un ndice de posicin que comienza a 0 (SetPos).
Tambin puede chequear cuando se haya ledo el ltimo registro (IsAtEnd).
Figura
Figura
+NL+theString,Reading,
Para dejar ver al usuario cada lnea, o verificar que fichero se est leyendo correctamente, puede usar MsgBox con el requerimiento Info
para visualizar la cadena que se est leyendo.
Paso 2
Paso 3
Paso 4
(opcional)
Paso 5
En este paso, crear dos ficheros. Como lee los registros desde la primera lnea, los escribir en el segundo fichero.
Desde la ventana del proyecto, abra el Exercice EXA, Step 2.
Examine el fichero de texto gisfile1.txt que aparece a continuacin. Este es el fichero desde el que leer.
Almost 30 years ago, a number of geographers conceived a system for storing and organizing
espatial information in a computer. Over the past decade, this growing technology has come to be
know as Geographic Information System (GIS).
Paralleling advancements in the technology has been the growth of GIS applications. From highquality cartography to land use planning, natural resource management, environmental
assessment and planning, tax mapping, ecological research, emergency vehicle dispatch,
demographic research, utilities, business applications, and more, GIS promises to be one of the
largest computer applications ever to emerge.
Cree una variable llamada readFN enviando a la clase FileName el requerimiento Make con la ruta
$AVETRAIN/data/gisfile1.txt.
Cree una variable llamada readFile enviando a la clase LineFile al requerimiento Make. Los parmetros que el requerimiento Make
necesita son readFN y la enumeracin para el permiso de lectura es #FILE_PERM_READ.
Luego, cree un fichero en su directorio pavetemp en el que escribir las lneas que lea desde gisfile1.txt.
Cree una variable llamada writeFN enviando a la clase FileName el requerimiento Make con la cadena <ruta de pavetemp>/gisfile2.txt.
Cree una variable llamada writeFile enviando a la clase LineFile el requerimiento Make. Los parmetros que el requerimiento Make
necesita son writeFN y la enumeracin para el permiso de escritura es #FILE_PERM_WRITE.
Cree un bucle para leer todas las lneas en gisfile1.txt y escribirlas en gisfile2.txt.
Construya un bucle While con la condicin creada, enviando a readFile el requerimiento IsAtEnd con el requerimiento No.
Defina la variable llamada theString enviando a readFile el requerimiento ReadElt para leer un elemento.
Para escribir el elemento, enve a writeFile el requerimiento writeElt con theString.
Fin de la iteracin.
Despus de leer y escribir, enve a readFile y writeFile el requerimiento Close.
Para examinar los resultados, desde la ventana del proyecto, abra el nuevo script. Utilice un nuevo script. Use el botn Load Text File
(Cargar Fichero de Texto) para cargar gisfile2.txt desde su directorio pavetemp en el script.
Figura
Ahora comprelo con gisfile1.txt como se mostr al comienzo del paso (pg. A-16)
Ahora, en lugar de escribir los nombres de los ficheros en el cdigo del script, permitir al usuario seleccionar un fichero para leer desde l
y crear uno nuevo para escribir en l.
Primero, comente las lneas que definen las variables readFN y writeFN.
Luego, cree una caja de dilogo que permita al usuario buscar directorios y elegir desde una lista con todos los ficheros, los de
extensin .txt.
Cree una nueva variable readFN enviando FileDialog con el requerimiento Show. Para los parmetros de Show, utilice las cadenas *.txt
para el patrn, TextFiles (*.txt) para el texto en la caja Type, y Select Files como ttulo de la caja.
Ahora cree una caja de dilogo que permita al usuario dar nombre al fichero de salida. Tambin listar todos los ficheros que tengan
extensin .txt.
Cree un nuevo writeFN enviando FileDialog con el requerimiento Put.
Como parmetros, use las cadenas <ruta
de
pavetemp>/newfile.txt con el requerimiento AsFileName como nombre del fichero por defecto, *.txt como patrn y CreateFile para el
ttulo de la caja.
Compile y ejecute el script. En la caja de dilogo creada elija un fichero de texto bajo e l directorio $AVETRAIN /data para el fichero de
entrada. En la caja de dilogo, cambie o deje el nombre por defecto del fichero de salida.
Para examinar los resultados, desde la ventana de proyecto, abra el nuevo script. Use el botn Load Text File (Cargar Fichero de Texto)
para cargar <ruta de pavetemp>/<su fichero > en el script.
Paso 3
Pedir al usuario la entrada de datos personalizados y los escribir en un fichero. Utilizar una caja de mensaje YesNo para que el
usuario conteste si quiere continuar introduciendo datos.
Abra el script llamado Exercice EXA, Step 3, examine el cdigo que hay ya en el script, el cual muestra en pantalla una caja de mensaje
MultiInput. Cree este cdigo en un ejercicio.
theLabels = {Company Name,Address, Phone number)
theDefaults = {ESRI, 380 New York Street, (909) 793-2853)
theList = MsgBox.MultiInput (Enter Customer Data,Customer Database , theLabels, theDefaults)
Cree un fichero para escribir las entradas del usuario, cree una variable llamada theFN enviando la cadena <ruta de
pavetemp>/customer.dat con el requerimiento AsFileName.
Cree una variable llamada theWriteFile enviando el requerimiento Make a LineFile. El requerimiento Make necesita los parmetros
theFN y la enumeracin para el permiso de aadir al fichero #FILE_PERM_APPEND.
Haga el bucle para preguntar al usuario. Cuando el usuario conteste yes, la entrada se visualizar.
-Muvase a la lnea despus del comentario de la caja de entrada.
Use el bucle While y como condicin, enve el requerimiento YesNo a MsgBox. Como mensaje use Do yo want to add another
Record?, como ttulo use Customer Data y asigne por defecto el valor True.
La caja MultiInput pregunta al usuario por el nombre de la compaa, la direccin y el nmero de telfono, y crea una variable llamada
theList (este cdigo ya estaba en el script).
Despus de la lnea que crea la variable theList, inserte una nueva lnea.
Ahora cree el cdigo para escribir los nuevos datos al fichero de salida.
Para escribir tres elementos desde una lista en el fichero, enve el requerimiento WriteElt a theWriteFile. El parmetro para WriteElt
necesita tres cadenas. Cree la primera cadena enviando el requerimiento Get a theList con el ndice 0. Cree las otras dos cadenas de
igual forma, usando los ndices 1 y 2. Concatene las tres cadenas con ++.
Fin del bucle While.
Paso 4
(opcional)
Escriba un script que lea las primeras lneas de una muestra de scripts y escriba la informacin de la cabecera en un fichero de salida.
Abra el script, Exercice EXA, Step 4.
Para crear una lista de ficheros (*.ave), cree una variable llamada scriptFNList y enve a FileDialog el requerimiento ReturnFiles. Para la
lista de patrones, use la cadena *.ave y para la lista de etiquetas use Avenue Scripts (*.ave). Debido a que podra tener mltiples
patrones y etiquetas, site cada una de esas cadenas en una lista ({}). El ttulo de la caja de dilogo es Select Scripts, y use 0 para el
patrn por defecto.
Cree una variable llamada writeFN enviando al objeto FileName al requerimiento Make. Use como parmetro la cadena <ruta de
pavetemp>/headers.txt.
Cree una variable para el nuevo fichero llamada writeFile enviando a LineFile el requerimiento Make y la enumeracin para el permiso
de escritura es #FILE_PERM_WRITE.
Cree una variable llamada writeFile enviando a la clase LineFile el requerimiento Make. Los parmetros que el requerimiento Make
necesita son writeFN y la enumeracin para el permiso de escritura es #FILE_PERM_WRITE.
Cree un bucle que abra cada fichero para leer, creando una variable llamada readFile. Enviando el requerimiento Make a LineFile con
scriptFN y #FILE_PERM_READ.
Cree otro un bucle For Each que procese las cuatro primeras lneas (1..4) en cada fichero.
Cree una variable llamada theString usando readFile con el requerimiento ReadElt.
Enve a writeFile el requerimiento writeElt con theString como parmetro.
Fin de la iteracin For Each
Cierre readFile con el requerimiento Close.
Fin del otro bucle For Each.
Cierre el writeFile.
Compile y ejecute el script. Muvase hasta $AVETRAIN/scripts elija unos ficheros de los que leer sus cabeceras.
Para examinar los resultados, desde la ventana de proyecto, abra un nuevo script. Utilice el botn Load Text File (Cargar Fichero de
Texto) para cargar <ruta de pavetemp>/headers.txt en el script.
Paso 5
En este paso, modifique el script creado en el paso 4 a un script con caracteres extra en la informacin de cabecera. Usando este script,
puede crear un fichero de salida describiendo toda lo que hace la muestra de scripts.
Se muestra a continuacin, la parte superior de la informacin de la cabecera para una muestra de scripts de Avenue. Observe los
caracteres especiales y las marcas de comentario. La informacin que describe lo que hace el script se encuentra en las diez primeras
lneas.
@(#) addgshp.ave 1.3 8/18/94 18:37:52
Name: AddGraphicShapesToView
Self:
Desde la ventana del proyecto, abra Exercice EXA, Step 5. Modifique el bucle For Each. Para leer las diez primeras lneas,
cambie el rango de 1..4 a 1..10.
Despus de leer el elemento (ReadElt), use un estamento If Then para chequear if theString contains la cadena Self. Then, si se
cumple la condicin del if, break sale del bucle de este script y va al siguiente script.
Else, crea una variable llamada trimString y enva a theString el requerimiento BasicTrim acompaado con @(#) a la izquierda y nada
a la derecha. Asigne de nuevo trimString, esta vez acompaada slo con el apstofe a la izquierda y nada a la derecha.
Para el parmetro WriteElt, cambie theString a trimString.
Find del estamento if Then Else.
Compile y ejecute el script. Muvase al directorio $AVETRAIN /scripts y elija unos pocos ficheros para leer sus cabeceras.
Para examinar los resultados, desde la ventana de proyecto, abra un nuevo script. Use el botn Load Text File (Cargar Fichero de Texto)
para cargar <ruta de pavetemp>/headers.txt en el script.
Fin
A P N D I C E
B-2
B-14
B-26
El requerimiento Execute en la clase System proporciona un significado dirigido al envode una cadena de comando de una
plataforma especfica al sistema operativo. La cadena puede contener adicionalmente parmetros que requieren los comandos
del sistema o aplicacin.
La Clase System
La clase system proporciona otros requerimientos que permiten operaciones no definidas con consistencia mediante distintas
plataformas. Todos los requerimientos se envan a la clase System.
Por ejemplo, puede sonar un pitido (Beep) o un fichero con sonido (PlaySound).
Puede chequear la informacin del sistema de igual modo que las variables del entorno utilizando GetEnvVars y SetEnvVars,
tome el sistema operativo actual con GetOS, y la informacin sobre la memoria con GetAvailableMemory, IsMemoryAvailable y
PrintMemory.
Para ms informacin sobre la pantalla, mire los requerimientos GetLook y SetLook, SetScreenSizeInches,
ReturnScreenSizePixels y RefreshWindows.
Para chequear las teclas pulsadas y el clic del ratn, mire los requerimientos IsAltKeyDown, IsControlKeyDown y
IsDoubleClick.
Use la clase SQL para encontrar o consultar conexiones SQL. Puede tomar una lista de todas las bases de datos con
GetConnections. Para crear la conexin, puede utilizar la lista, tomar una base de datos mediante su ndice numrico, o
permita al usuario
que seleccione la base de datos desde una caja de mensaje. Tambin puede usar el requerimiento Find para crear una
conexin que proporcione un nombre de base de datos.
Use el requerimiento Login para acceder al servidor con una cadena de entrada.
Una vez que la conexin est hecha, defina una expresin de seleccin y cree una VTab con el requerimiento MakeSQL y la
expresin. Entonces cree el documento tabla con la VTab.
Enviar un comando al servidor SQL
Enve los procesos al servidor SQL utilizando el requerimiento ExecuteSQL. Puede usarla para seleccionar, actualizar,
insertar o borrar informacin desde la base de datos SQL. Este requerimiento devuelve un booleano indicando si el proceso se
realiz con xito.
Plataformas UNIX
La interfaz de base de datos de ARC/INFO (DBI) se utiliza para conectar a bases de datos SQL en plataformas UNIX. el
fichero $AVHOME/etc/default.db es el fichero de definicin que contiene la informacin de conexin para cada base de datos.
Plataformas PC (bajo Windows o NT)
Los conductores de la base de datos relacional abierta (ODBC) se utilizan para conectar a bases de datos SQL. ESRI
solo testea y soporta el paquete Intersolv DataDirect ODBC. EL conductor define las conexiones y mtodos de acceso a
registros.
Los scripts que contienen la clase SQLCon o el requerimiento MakeSQL no pueden ejecutarse desde el editor de scripts.
Debe asignar primero al script un botn o eleccin de men.
Cliente
Servidor
requerimiento
requerimiento
respuesta respuesta
Red
La interaplicacin de la comunicacin (IAC) establece comunicacin entre el cliente y las aplicaciones del servidor. La
aplicacin del servidor llama a funciones o requerimientos de datos desde la aplicacin del servidor, y el servidor procesa el
requerimiento y contesta al cliente.
ArcView proporciona una plataforma especfica con soporte para IAC en las siguientes plataformas:
Intercambio Dinmico de Datos(DDE) para Windows
Llamada a procedimientos remotos (RPC) para Unix
Eventos Apple y AppleScripts para Macintosh
Varias clases, tales como DDEClient, DDEServer, RPCClient y RPCServer,han sido implementadas para soportar estos
protocolos de plataformas especficas.
Servidor
Hoja de clculo
Paquete
Estadstico
Procesamiento
Imgenes
Usuario
ArcView
Cliente
ARC/INFO
Hoja de
Clculo
Puede utilizar el cliente de ArcView para conectarse a una aplicacin de un servidor que entienda el protocolo IAC. ArcView
puede preguntar a un paquete estadstico para calcular sofisticadas estadsticas y devolver los resultados, o puede preguntar
a un software de procesamiento de imgenes para manipular una imagen que va a ser usada como tema en ArcView.
ARC/INFO puede ser usado para permitir operaciones GIS sofisticadas y generar nuevas fuentes de datos que pueden ser
utilizadas por ArcView.
ArcView puede pasar datos a una hoja de clculo y tomar la ventaja de las funciones de manipulacin de datos de una hoja de
clculo, entonces pasar los datos y cargarlos en un tabla de ArcView.
Cliente
Vehculo
de rastreo
Estaciones
Supervisoras
Direcciones
Personalizadas
Servidor
ArcView
Usuario
RPC es un protocolo de comunicacin para ejecutar aplicaciones en plataformas UNIX. RPC permite a un servidor
proporcionar una serie de funciones al cliente. El servidor y el cliente pueden se mquinas diferentes en una red.
El servidor es identificado nicamente por tres componentes: el nombre anfitrin de la mquina en la que reside, un nmero ID
del servidor, y un nmero de la versin del programa. El cliente usa esta informacin para establecer la conexin. Cada tipo
de funcin que proporciona un servidor es identificada por un nmero de identificacin del procedimiento.
El comando de UNIX rpcinfo -p <nombre anfitrin> puede utilizarse para encontrar los posibles servidores en un anfitrin
especfico.
En el siguiente ejemplo, ARC/INFO crea una nueva cobertura que usted quiere aadir como un tema de ArcView. Para
averiguar si ARC/INFO ha completado el proceso, use el requerimiento Execute con el procedimiento ID-2. Compruebe que se
devuelve la cadena DONE. Cuando el proceso se ha completado, puede aadir el nuevo tema.
Error de chequeo
El RPCClient tiene varios requerimientos de chequeo de errores, incluyendo GetErrorID, GetErrorMessage y HasError.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
En este ejercicio, usar los scripts de Avenue para conectarse con ARC/INFO. Aprender como establecer a ArcView como
cliente y a ARC/INFO como servidor.
Paso 1
Hay dos scripts en el proyecto. El script ConnectToAlServer conecta ARC/INFO como servidor; el script AlServer usa el
servidor ARC/INFO para permitir la unin de las coberturas de polgonos Flood y Landuse. Los dos scripts se incluyen en la
muestra de scripts proporcionados por ArcView.
Para examinar estos scripts, vaya al men Help (Ayuda) y haga clic en Help Topics (Ayuda de Temas) para abrir la ayuda
de ArcView. Haga clic en Find (Encontrar) y teclee el nombre de cada uno de los scripts de la muestra: ConnectToAIServer y
AIServer. Examine el cdigo fuente para cada uno de esos scripts.
Paso 3
Los documentos scripts llamados ConnectToAIServer y AIServer han sido creados en su proyecto. Crear dos botones y
asignar estos scripts con el evento Clic del botn.
Abra la caja de dilogo de personalizacin y aada dos botones a la GUI de la vista. Aada los nuevos botones a la
derecha del botn Help (Ayuda).
Para el nuevo botn a la derecha, asgnele en la propiedad Icon el icono C y asciele el script ConnectToAIServer con la
propiedad Click.
Para el nuevo botn a la izquierda, asgnele en la propiedad Icon el icono S y asciele el script AIServer con la propiedad
Click.
Cierre la caja de dilogo de personalizacin.
Paso 4
Ahora iniciar ARC/INFO y usar una funcin del AML para dar el nombre anfitrin, el ID del servidor y el nmero de la versin.
Muvase a la ventana de UNIX, y con el prompt del UNIX teclee arc para iniciar ARC/INFO.
Promp de Unix :> arc
Use el directivo &type con la funcin [ IACOPEN ] para iniciar el servidor de ARC/INFO, y cree un fichero llamado
connect.iac que contenga la informacin de conexin: nombre anfitrin, nmero del programa y versin del programa.
Arc: &type [IACOPEN] connect.iac
Hsot: <su nombre> Program no : 40000000 Version no : 1
0
Si la segunda lnea no es 0, se producir un error; desconecte el servidor de ARC/INFO par teclear &Type [ IACCLOSE
].
Luego, editar el script AIServer y remplazar el nombre anfitrin (Rhino) con el suyo.
Con la ventana del proyecto activa, haga clic en el icono Scripts, entonces haga doble clic en el script AIServer para
abrirlo.
Muvase a la primera lnea despus de los comentarios y cambie rhino por su anfitrin.
Client = RPCClient.Make (rhino, 0x40000000,1)
Fin
El DDEServer de ArcView
El servidor de ArcView se inicia cuando se abre la aplicacin
Soporta los temas del sistema
Soporta los campos de cadena
El servidor DDE de ArcView soporta las siguientes transacciones:
ejecuta - ArcView ejecuta las cadenas de comando desde el cliente
requiere - ArcView devuelve los resultados del script al cliente
poke- el cliente enva los datos para usar como entrada a un script
El servidor de ArcView se detiene cuando la aplicacin se cierra
El DDEServer de ArcView
Cuando se abre la aplicacin en ArcView, el DDEServer de ArcView se inicia y llama a ArcView. Slo hay un servidor de
ArcView iniciado para la aplicacin. El proyecto de arranque
por defecto inicia el DDEServer y el proyecto por defecto de cierre para el
DDEServer. El servidor de ArcView soporta slo el tema System y el campo String.
Transacciones
El cliente puede iniciar uno de las diversas transacciones standard: Execute, Request, Poke y Advise. Execute hace que
ArcView ejecute comandos recibidos en una cadena desde el cliente. Por ejemplo, Excel puede enviar un comando para
ejecutar un script (av.Run). Si el script calcula un valor del registro, Request podra devolver el valor a Excel. Poke transfiere
datos desde el cliente a ArcView. Por ejemplo, si el cliente es una aplicacin que recoge las posiciones del GPS
(Global Positioning System), podra pasarlas a ArcView y actualizar la posicin del vehculo en la pantalla.
Paso 2
Paso 3
Proporcionar una lista de campos desde Excel y seleccionar uno para consultar
Paso 4
Inicie Excel desde el Administrador de programas mediante doble clic en el icono de Excel.
Si es necesario, inicie ArcView.
Desde el men File (Archivo ) elija Open Project (Abrir Proyecto). Muvase al directorio exercice, con doble clic en
exb2.apr para abrir el proyecto de este ejercicio.
Cuando el proyecto se abra, ver abierto el script con ttulo Exercice EXB2, Step 2.
Paso 2
Con este script crear una conexin con Excel. Antes de pasar informacin a Excel, querr verificar que la conexin se
ha realizado correctamente.
Cree una variable llamada sysClient enviando el requerimiento Make a DDEClient, usando como dos parmetros las
cadenas Excel y System.
Inicie un estamento If Then, utilizando sysClient.HasError como valor booleano.
Informe del error enviando un requerimiento Error a MsgBox. Enve el requerimiento GetErrorMsg a sysClient como
primer parmetro, y una cadena vaca como el segundo.
En este punto, salga del script y finalice el estamento If Them.
Paso 3
Proporcionar una lista de campos desde Excel y seleccionar uno para consultar
Una vez hecha la conexin a Excel, ArcView puede enviar un requerimiento y recibir informacin desde Excel sobre el
requerimiento.
Cree una variable llamada excelItems enviando el requerimiento Request a sysClient. Como parmetro enve
lacadena SysItems.
ExcelItems es una cadena que contiene todos los campos que soporta Excel. Convertir la cadena a una lista y la usar
para hacer una seleccin desde una caja de mensaje.
Cree una variable llamada selectItem enviando el requerimiento ListAsString a MsgBox. Como primer parmetro enve
excelItems al convertidor AsList. Como segundo parmetro, enve la cadena Select an Item to Query, y como tercer
parmetro, enve la cadena Query Excel Items.
Testee para ver si algn campo est seleccionado. Sino, detenga la ejecucin del script.
Utilice el estamento If con Item = nil como condicin, Then
Si la condicin es true, salga del programa y finalice el estamento If Them.
Paso 4
Una vez seleccionado un campo, puede necesitar informacin adicional sobre l desde Excel.
Cree una variable llamada result enviando el requerimiento Request a sysClient. Use selectItem como parmetro.
Cree resulttrans enviando el requerimiento Translate a result, con una cadena vaca concatenada con un carcter TAB
como primer parmetro y dos concatenando NL (nueva lnea) como segundo parmetro.
Visualice el resultado enviando el requerimiento Report a MsgBox. Como primer parmetro, enve reslttrans, y como
segundo la variable selectItem.
Cierre la conexin enviando el requerimiento Close a sysClient.
Compile y ejecute el script. Elija un de los campos en la lista y lea la informacin sobre el campo seleccionado. Testee
el script unas dos veces como informacin adicional sobre los campos del sistema Excel.
Ahora compare su script con un script de muestra.
Haga clic en Find en la ayuda de ArcView y teclee el nombre de su script: GetDDESystemItems. Este script es similar
al que acaba de realizar usted.
Fin