8.4 El almacén de objetos
8.5.12. Árbol Visor de Tablas
Los Árboles visores de tablas arboladas se emplean para presentar, en dis- tintos niveles, la información de una tabla de datos Maestra con clave ar- bolada. Gracias a los árboles vemos la información contenida en este tipo de tablas de una forma gráfica (se incluyen líneas, imágenes...), visualizan- do de forma clara los niveles en los que se encuentra estructurada la infor- mación.
A este tipo de objetos también podemos asignarles formularios para reali- zar altas, modificaciones y bajas en la tabla de datos con la que se en- cuentran asociados. Son utilizados en los siguientes objetos:
Formulario: en el control Rama de árbol y en la función de botón Localizar maestro arbolado.
Menú: como control Árbol y como primera bala en la pistola Árbol de tabla de datos.
Propiedades del Árbol Visor de Tablas
Para crear un árbol visor, seleccionamos la tabla de datos arbolada y pul- samos el botón Nuevo objeto. De la Galería de Objetos seleccionamos
Árbol visor de tablas arboladas y aparecerá el cuadro de diálogo de Propie- dades del árbol:
Comunicación Serie Árbol Visor de Tablas
Sus propiedades son:
Nombre, identificador y tabla de datos: asignamos el nombre y la tabla de
datos asociada al nuevo objeto árbol. Velázquez Visual genera un identifi- cador por defecto, que aparece en la barra de títulos del cuadro de diálogo y en el panel derecho del editor de proyectos junto a su icono correspon- diente.
Estilo: en el grupo de estilos se definen, mediante unas casillas de verifica-
ción, los tipos de visualización para el árbol. Son los siguientes:
Ver líneas: si está activado se visualiza la línea de puntos que une las ramas
del árbol.
Ver líneas en la raíz: si está activado se visualiza la línea de puntos en el no-
do raíz.
Ver botones: si está activado se visualizan los botones + y - que permiten
abrir y cerrar las ramas.
Ver imágenes: si está activado se visualiza en cada nivel los iconos del di-
bujo multi-iconos asignado al árbol.
Ver campo código: si está activado se visualiza el contenido del campo CO-
DIGO del registro en curso.
Eventos: marcando la casilla La selección ha cambiado lanzamos un proce-
so (evento) cada vez que pasamos de un registro del árbol a otro. Activan- do esta opción habrá que especificar un proceso mediante el cual se asig- ne el valor del campo código de la tabla a una variable en memoria. Esto es útil para la sincronización de Controles en menús de tipo formulario. Imagi- nemos, por ejemplo, una aplicación en la que tenemos un árbol asociado a la tabla arbolada MARCAS (de coches), de modo que al seleccionar un ele- mento del árbol nos aparezca un casillero (sincronizado) con imágenes de todos los modelos de la marca.
Formularios e Informe:
Formulario alta: formulario asociado para dar altas en la tabla de datos (a la
que está asociada el árbol). En el ejecutor esta opción se dispara con la te- cla + (con el foco en la rejilla) o con la tecla Insert.
Formulario modificación: formulario asociado para modificar un registro en
la tabla de datos. En el ejecutor esta opción se dispara pulsando la tecla In-
tro sobre la línea seleccionada.
Formulario bajas: formulario asociado para dar la baja a un registro de la ta-
bla de datos. En el ejecutor esta opción se dispara pulsando la tecla Supr sobre la línea seleccionada.
Informe: informe por defecto que imprime la lista.
08
Desarrollo completo de una aplicaciónCambiar imágenes: al pulsar esta opción, aparece el cuadro de diálogo Pro- piedades de una lista de imágenes.
A un árbol se le puede asignar un dibujo multi-iconos, eligiéndolo de entre los incluidos en el proyecto que aparecen en la lista desplegable Dibujo. Ca- da icono que compone el dibujo se visualizará en el nivel respectivo del ár- bol. Si hay más niveles que iconos se repite el último en cada uno de los ni- veles que carecen de icono propio.
Uso del Árbol Visor de Tablas
Los árboles se disparan desde las opciones de menú con la pistola Árbol
tabla de datos, o como objeto en un menú de tipo formulario. Al ir añadien-
do elementos al árbol, éstos se irán colocando según la clave asignada en la rama que le corresponde. Si no hay un elemento en el nivel superior si- gue mostrándose en el nivel que le toca.
Los multi-iconos tienen que estar formados por imágenes de 4 bits por píxel.
8.5.13. Casillero
Es un objeto que sirve para ver listas de registros de las tablas de datos. En tiempo de ejecución cada registro es presentado en una celda (casilla), siendo cada casilla un botón que permite disparar un proceso al hacer clic sobre él. Además, podemos asignar otros procesos que serán disparados, en tiempo de ejecución, a través de un menú contextual al pulsar con el bo- tón de la derecha del ratón.
Cuando un objeto de este tipo es incluido como control en un menú, en un formulario o como pistola de menú, se solicitará un proceso en el que determinaremos los registros que se van a presentar. Así, por ejemplo, si lo vamos a utilizar como control o como pistola en un menú, el pro- ceso tendrá su origen como NINGUNO. Si lo utilizamos como control de
formulario, el origen del mismo ha de ser una FICHA de la tabla del for-
mulario.
Propiedades
Cuando creamos un casillero se presenta el cuadro de diálogo Propiedades
casillero con las siguientes opciones:
08
Desarrollo completo de una aplicaciónNombre: nombre del casillero.
Tabla: identificador de la tabla del casillero.
Fuentes: con la barra de botones de fuentes (en orden de izquierda a dere-
cha) podremos: • Añadir una nueva.
• Sustituir la fuente seleccionada por otra.
• Eliminar la fuente seleccionada (si la fuente seleccionada está siendo uti- lizada por algún control del casillero no podremos eliminarla).
• Suprimir las fuentes no utilizadas en el casillero.
• Desplazar una posición hacia arriba la fuente seleccionada. • Desplazar una posición hacia abajo la fuente seleccionada.
• Si en Edición/Fuentes por defecto hemos se-
leccionado algunas para los casilleros, éstas estarán disponibles al crear uno nuevo.
• Horizontal: por defecto, en ejecución, se crean las casillas por columnas. Si activamos esta propiedad, las casillas serán creadas por filas. • Automático: si activamos esta propiedad, en tiempo de ejecución, Veláz-
quez distribuirá automáticamente las casillas en filas y columnas. Si esta propiedad no es activada, en el proceso que se ha de seleccionar al in- cluir un casillero como control de menú o de formulario, o como pistola de menú, se tendrá que establecer un criterio para determinar el número de filas (estilo Horizontal activado) o columnas (estilo Horizontal desactivado). • Pintar líneas: si activamos esta opción, se pintará una línea negra para
delimitar los límites de cada casilla.
• Pintar estilo botón: si activamos esta propiedad, cada casilla será pinta- da como un botón, si no se mostrará de forma plana.
• Color de fondo: en esta propiedad se selecciona el color de fondo que tendrán las casillas.
Proceso al hacer clic en una celdilla: en esta propiedad seleccionamos el pro-
ceso que será disparado, en tiempo de ejecución, cuando un usuario haga clic en una celdilla. El proceso podrá tener su origen tanto en una ficha como en una lista de la tabla de datos del casillero. Si el proceso tiene su origen en una FICHA será alimentado por la ficha de la celda sobre la que se hace clic y si tiene su origen en una LISTA estará alimentado por toda la lista presen- tada en el casillero. Para seleccionar o cambiar un proceso hacemos clic so- bre el botón Seleccionar proceso del cuadro de propiedades del casillero.
08
Desarrollo completo de una aplicaciónMenú de contexto: además del proceso a ejecutar al hacer clic en una cel-
dilla, podemos seleccionar otros procesos. Éstos, en ejecución, serán pre- sentados en un menú de contexto que se desplegará al hacer clic con el bo- tón derecho del ratón sobre una celdilla. Para disparar uno bastará con se- leccionarlo en dicho menú contextual. El texto que se presente en el menú de contexto será la descripción que hayamos escrito en el mismo. Al igual que el proceso al hacer clic en una celdilla, éstos podrán tener su origen tanto en una ficha como en una lista de la tabla del casillero. Los procesos serán presentados en el menú de contexto en el orden en que se encuen- tren en la lista de procesos seleccionados. Para la selección de procesos se
incluye la barra de herramientas , en la que podemos:
• Añadir: permite añadir un proceso o un separador a la lista. Para añadir un separador bastará con seleccionar la opción del mismo nombre que aparece en primer lugar en la lista de procesos seleccionables. • Suprimir: suprime el proceso o separador seleccionado de la lista de
procesos.
• Subir: desplaza una posición hacia arriba el proceso o separador seleccionado. • Bajar: desplaza una posición hacia abajo el proceso o separador seleccionado. • Cambiar proceso: permite cambiar el proceso seleccionado por otro. • Fórmula condición: aquí establecemos la fórmula que se ha de cumplir
para que este proceso pueda ser disparado desde el menú contextual. Un proceso podrá ser editado directamente desde la ventana de edición de procesos que se abre cuando lo añadimos o sustituimos en un proceso de la lista. Para ello basta con seleccionar uno y pulsar el botón Editar. Para editar las propiedades de un casillero hay que seleccionarlo en el pa- nel derecho y pulsar la combinación de las teclas Alt+Intro o pulsar el bo- tón Propiedades de la barra de herramientas del Editor de Proyectos.
También podremos editar dichas propiedades desde el Editor de Casilleros, haciendo doble clic o pulsando Intro sobre cualquier parte del área del Edi- tor de Casilleros.
Editor de casilleros
Una vez creado el casillero, modificamos el identificador y hacemos doble clic sobre el mismo para entrar en el Editor de casilleros. Es similar al Edi-
tor de Formularios: consta de una barra de herramientas para la creación de
controles, una barra de maquetación y el área de edición del casillero. Lo que hemos de crear es una casilla. El área de la casilla se muestra con el color de fondo definido en el cuadro de propiedades del casillero. Para modificar sus dimensiones basta con hacer clic sobre cualquier punto de la misma donde no se encuentre ningún control, y arrastrando los manejado- res o con Shift y las teclas de movimiento del cursor, al igual que con los formularios.
Controles
Los distintos controles que encontramos en un casillero son:
Modo de edición: restaura el puntero del ratón para cancelar la selec-
ción de un control. Este modo se usa para mover los controles o cambiar sus tamaños.
Dibujo estático: sirve para insertar un dibujo en la casilla. En sus Pro- piedades sólo habrá que seleccionar el dibujo que queramos de la lista de
dibujos incluidos en el proyecto. El dibujo podrá presentarse con o sin bor-
de, pudiendo escoger, además, el efecto hundido o a nivel. Para redimen-
sionar el dibujo a su tamaño original pulsamos la tecla F7. También pode- mos asignarle una Condición visible. Si activamos esta opción se abrirá el asistente para la edición de fórmulas, donde escribiremos la fórmula que se ha de cumplir para que el control sea visible.
Texto estático: sirve para insertar un texto en la casilla. Sus propiedades
son:
Texto: texto que se incluirá en la casilla.
Fuente: fuente, de las seleccionadas en las propiedades del casillero, con
la que se presentará el texto.
Color texto: color con el que se presentará el texto.
Color fondo: color de fondo del control del texto estático. Si activamos el
estilo Fondo transparente, esta opción estará desactivada.
08
Desarrollo completo de una aplicaciónModo de edición Dibujo estático Texto estático
Alineamiento del texto: el texto podrá estar alineado, con respecto a los
márgenes del control, a la Izquierda, Centrado, a la Derecha o Justificado.
Tamaño: éste podrá ser Fijo (invariable), de Ancho variable (el ancho variará
en función del tamaño de la casilla), de Altura Variable (el alto del control va- riará en función de la altura de la casilla) o con Ambos variables.
Estilos: al control podremos activarle las siguientes propiedades: Borde: en tiempo de ejecución se pintará un borde alrededor del control. Hundido: si activamos esta propiedad se presentará el control con un efec-
to de hundido.
Fondo transparente: no se pintará el color de fondo del control.
Condición visible: si activamos esta opción se abrirá el asistente para la edi-
ción de fórmulas, en ella tendremos que escribir la fórmula que se ha de cumplir para que el control sea visible.
Campo: visualiza el contenido de un campo en la casilla. Sus propieda-
des son:
Campo: aquí seleccionamos el campo a visualizar en el control, para lo que
pulsamos el botón Cambiar: dependiendo del campo seleccionado, pode- mos formatear su salida utilizando el asistente para la creación de subca- denas de formato.
Fuente: fuente, de las seleccionadas en las propiedades del casillero, con
la que se presentará el texto.
Color texto: color con el que se presentará el texto.
Color fondo: color de fondo del control. Si activamos el estilo Fondo trans- parente, esta opción estará desactivada.
Alineamiento del texto: el contenido del campo podrá estar alineado, con
respecto a los márgenes del control, a la Izquierda, Centrado, a la Derecha o Justificado.
Tamaño: éste podrá ser Fijo, de Ancho variable, de Altura Variable o con
Ambos variables.
Estilos: al control podremos activarle las siguientes propiedades: Borde: en tiempo de ejecución se pintará un borde alrededor del control. Hundido: si activamos esta propiedad se presentará el control con un efec-
to de hundido.
Fondo transparente: no se pintará el color de fondo del control.
Condición visible: si activamos esta opción se abrirá el asistente para la edi-
ción de fórmulas, en ella tendremos que escribir la fórmula que se ha de cumplir para que el control sea visible.
Variable global: sirve para visualizar el contenido de una variable global.
Sus propiedades son:
Variable: aquí seleccionamos la variable global a visualizar en el control. Pa-
ra seleccionar la variable pulsamos el botón Cambiar.
Fuente: fuente, de las seleccionadas en las propiedades del casillero, con
la que se presentará el texto.
Color texto: color con el que se presentará el texto.
Color fondo: color de fondo del control. Si activamos el estilo Fondo trans- parente, esta opción estará desactivada.
Alineamiento del texto: el contenido de la variable podrá estar alineado, con
respecto a los márgenes del control, a la Izquierda, Centrado, a la Derecha o Justificado.
Tamaño: éste podrá ser Fijo, de Ancho variable, de Altura Variable o con Ambos variables.
Estilos: al control podremos activarle las siguientes propiedades: Borde: en tiempo de ejecución se pintará un borde alrededor del control. Hundido: si activamos esta propiedad se presentará el control con un efec-
to de hundido.
Fondo transparente: no se pintará el color de fondo del control.
Condición visible: si activamos esta opción se abrirá el asistente para la edi-
ción de fórmulas, en ella tendremos que escribir la fórmula que se ha de cumplir para que el control sea visible.
Objeto Dibujo: este control visualiza el contenido de un campo de tipo
objeto Dibujo. Sus propiedades son:
Campo: aquí seleccionamos el campo de tipo objeto dibujo a visualizar en
el control. Para seleccionar el campo pulsamos el botón Cambiar. Sola- mente se presentarán aquellos que sean de tipo dibujo.
Tamaño: éste podrá ser Fijo (invariable), de Ancho variable (el ancho va-
riará en función del tamaño de la casilla), de Altura Variable (el alto del control variará en función de la altura de la casilla) o con Ambos varia-
bles.
Estilos: al control podremos activarle las siguientes propiedades:
08
Desarrollo completo de una aplicaciónVariable global Objeto Dibujo
Borde: en tiempo de ejecución se pintará un borde alrededor del control. Hundido: si activamos esta propiedad se presentará el control con un efec-
to de hundido.
Condición visible: si activamos esta opción se abrirá el asistente para la edi-
ción de fórmulas, en ella tendremos que escribir la fórmula que se ha de cumplir para que el control sea visible.
Icono: sirve para visualizar el icono de un campo enlazado a una tabla es-
tática a la que se le haya asignado un dibujo Multi-iconos. Sus propiedades son:
Campo: aquí seleccionamos el campo enlazado con una tabla estática pul-
sando el botón Cambiar. Solamente se presentarán aquellos que estén en- lazados con una tabla estática a la que se le haya asignado un dibujo mul- ti-iconos en sus propiedades.
Estilos: al control podremos activarle las siguientes propiedades: Borde: en tiempo de ejecución se pintará un borde alrededor del control. Hundido: si activamos esta propiedad se presentará el control con un efec-
to de hundido.
Condición visible: si activamos esta opción se abrirá el asistente para la edi-
ción de fórmulas, donde escribimos la fórmula que se ha de cumplir para que el control sea visible.
Maquetación de controles
Para maquetar los controles de un casillero hay que tener seleccionados, dependiendo de los casos, uno, dos o más controles.
En la parte superior de la pantalla se encuentra la barra de maquetación de
controles, cuyo funcionamiento es igual que con los formularios:
Los cuatro primeros botones alinean los controles seleccionados por los bordes izquierdo, derecho, superior e inferior, respectivamente, del control seleccionado en último lugar.
Los dos siguientes centran los controles horizontal y verticalmente, respectivamente, dentro del menú.
Los dos siguientes espacian tres o más controles a la misma distan- cia horizontal y vertical entre ellos, respectivamente.
Estos dos alinean los botones seleccionados horizontal o vertical- mente con respecto al que haya sido seleccionado en último lugar. Los tres últimos dan a varios controles el mismo ancho, el mismo alto y el mismo ancho y alto, respectivamente, del control seleccionado en último lugar. Icono Alinear Centrar Espaciar Adjuntar Dimensionar
Además de estas formas de maquetación, existen dos opciones en menú
Maquetar/Alinear, que son:
Vertical: centra verticalmente todos los controles seleccionados con res-
pecto a la posición del último.
Horizontal: centra horizontalmente todos los controles seleccionados con
respecto a la posición del último.
Por último, Tamaño del contenido F7 nos redimensionará el control al ta- maño de lo que contiene. Además, la posición y las dimensiones de un con- trol se mostrarán en la barra de estado.
Ejemplo: Casilleros
En proyecto tenemos una tabla ARTICULOS cuyos registros queremos mostrar en un casillero. Vamos a ver dos formas de hacerlo: lanzarlo a tra- vés de un menú arbolado y en un formulario de su maestro FAMILIAS. En