|
Por Roberto Corrochano y Esther de Mesa
En el número
anterior se inició un tutorial para este potente programa, que
consta de una aplicación completa ddicada a la clasificación
de disquetes. La aplicación está dividida en módulos,
de los cuales el mes anterior se definieron las bases de datos necesarias.
Así se muestra
la pantalla con los comandos de dibujo de SBFDpro. |
En esta entrega
se va a describir la creación del formato de pantalla, parte
imprescindible de la aplicación, pues en él se van a definir
tanto la conexión entre ambas bases como las líneas de
transición que redibujarán los datos de una base en función
de la otra. Esto ha de hacerse "a mano", directamente sobre
el programa de creación de pantallas (SBFDpro), y ha de almacenarse
en el mismo directorio que los demás ficheros de la aplicación,
como se explicó en la primera parte del tutorial. No es posible,
como en la comentada primera parte, crearlo por medio de programa DML
(a partir de Superbase) y, aunque así fuera, sería conveniente
crearlo manualmente a fin de familiarizarse con el método y el
programa de creación. Para ello, puede usted seguir las instrucciones
que aquí se indican al pie de la letra o, mejor aún, presonalizarlo
a su gusto pues, en realidad, al tener que crearlo cada uno, los gustos
estéticos difieren. Es también recomendable por cuestiones
de aprendizaje. Ahora bien, aunque la forma, color, font o pantalla
de fondo del formato varíen, así como las posiciones y
colores de los campos varíen, no se debe oimitr ninguno de los
mismos.
Para comenzar,
explicaremos que un formato de pantalla ("form" en SBase)
es, en esencia, una definición de dónde van a ir situados
los campos en la pantalla, su longitud, color, y demás parámetros
posibles. Pero Superbase va más lejos, pudiendo, en el mismo,
definir linkages (conexiones) entre ficheros, línead de transición,
campos de presentación de pantallas, botones que tanto ejecutan
comandos DML como definen valores lógicos para un determinado
campo, y otras posibilidades, incluyendo definir informes e incluir
distintos tipos de página. Una vez cargado el programa SBFDpro,
debemos plantearnos, en función a los resultados que deseamos
obtener y a las posibilidades de la máquina, la resolución
de pantalla, el número de colores a utilizar y la paleta de los
mismos, es decir, definirlos. Las dos primeras se modifican con el menú
Define->Resolution de la barra de menú, pues, en cuanto a
resolución, sólo admite modo entrelazado, y el número
de colores es a elegir de los dados. En cuanto a los colores mismos,
se seleccionan en Define->Color palette. Es este tutorial se han
elegido resolución sin entrelazar y 8 colores, para compatibilidad
con todas las máquinas posibles. En cuanto a la paleta, los cuatro
primeros colores son los originales del Workbench 2.0, y los siguientes,
los colores que vamos a utilizar para adornar el fondo, ya sea de modo
manual meidante los comandos de dibujo del programa o incluyendo una
imagen externa. El siguiente paso consiste en definir el tamaño
de la página para que se ajuste exactamente a la ventana. Mediante
el menú Page->Setup se accede al requester en cuestión.
Para nuestra aplicación, en una pantalla sin entrelazar, los
valores empleados han sido 7.72 y 2.68 pulgadas, o 19.6 y 6.8 centímetros.
Para tener
una referencia común vamos a exponer los significados de los
botones o gadgets que se encuentran en la parte inferior de la pantalla,
la ventana Attribuyes. El primer grupo se encuentra a la izquierd. En
la primera fila, y por ese orden, son: cuadrado relleno, cuadrado sin
rellenar, línea, texto, imagen, botón lógico, botón
y selección/movimiento. En la segunda fila son campo, cálculo,
validación, comandos, función y tamaño.
En el siguiente
grupo, lo primero que encontramos a la derecha son dos cuadrados incluidos
uno dentro de otro, y una pequeña barra a su lado derecho. El
cuadro inferior indica el color del primer plano (letra o línea);
el exterior, el color de fondo; y la barra, el color de la línea
de recuadro, si se ha definido. Para cambiarlos, hay que seleccionar
primero el color de la paleta, la cual se halla inmediatamente a la
derecha, y después pulsar sobre el atributo que queremos cambiar.
A la derecha de la paleta, las dos primeras filas son textuas de relleno
para cuadrados, y la fila interior, estilos de línea. De los
gadgets que no quedan, situados bajo el control de color, sus funciones
son: fondo transparente (sólo en textos), recuadrar campo, redondear
esquinas del recuadro (estos dos últimos solamente en dibujos),
letra normal, negrita, subrayada e itálica; y el último
que nos interesa, que es el penúltimo de la fila que es justificación.
Por defecto es a la izquierda, pero pulsando sobre él la flecha
cambia de posición indicando hacia dónde se justifica
el campo.
Los campos del fichero Cabecera definidos en la parte superior.
|
Todos los campos y líneas de transición, completados. |
En este ejemplo,
para crear el fondo de la aplicación, se han escogido tres colores
RGB 16 bits: el principal, 11-10-9; una sombra clara, 13-12-11, y otra
oscura, 9-8-7. Estas sombras se van a usar para las líneas que
encierran a los cuadrados y darle a la aplicación un look 2.0.
Con el color
principal de primer plano, la sombra oscura de color de recuadro y el
botón recuadrar campo seleccionados, y pulsando en el botón
cuadrado relleno, trazaremos un cuadrado desde la esquina superior izquierda
hasta la inferior derecha. Después, seleccionaremos la sombra
clara como color principal, desactivaremos recuadrar campo, y pulsaremos
sobre el botón línea. Con él vamos a crear dos
líneas, una desde la esquina superior derecha hasta la superior
izquierda y otra desde ésta última hasta la esquina inferior
izquierda. Tras realizar esta operación habremos obtenido un
fondo naranja, resaltado hacia afuera con el aspecto 3D del Wb 2.0 y
superiores. Cuando se quiera crear una caja resaltada hacia adentro,
la operación será la inversa: las líneas claras
habrá que ponerlas en la parte inferior y derecha y las oscuras
arriba y a la izquierda.
Continuando
con la creación del fondo, debemos plantearnos cómo queremos
presentar los datos en la pantalla. En esta aplicación los datos
se van a dividir en dos zonas horizontales, una para los datos del programa
o paquete y otra con los datos de los discos pertenecientes al mismo.
Por ello crearemos dos cajas "hundidas", invirtiendo los colores
de las sombras, tal y como se explicaba en el párrafo anterior,
una en la parte superior y otra en la inferior.
Además,
en la parte superior, es aconsejable crear otra pequeña caja
para incluir dentro el título.
Tras efectuar
esta operación, por otra parte totalmente opcional, deberá
abir ambos ficheros de la aplicación con elf in de acceder a
los campos que contienen La manera de hacerlo es mediante el menú
Project->Open->SBFile.
El siguiente
paso sería comunicar ambos ficheros por el campo común.
Para hacerlo hay que tener especificados en el formato de pantalla campos
de los dos ficheros, por ejemplo, Programa.cabecera y Código.datos.
El método
para definir campos es mediante el gadget "campo" (FLD) de
la ventana de atributos. Pulsando sobre él con el ratón
queda seleccionado, y tras esto, al pulsar el botón izqdo. del
ratón sobre cualquier punto de la pantalla entraremos en el requester
de elección de campo, pulsando sobre él, como el fichero
al que pertenece, pulsando sobre la flecha que aparece al lado derecho
el nombre del fichero en curso. Repetiremos esta operación dos
veces, una para Programa.cabecera y otra para Código.datos.
Con los dos
campos ya definidos, procederemos a linkar ambos ficheros. La opción
que nos interesa, en este caso, se halla en el menú Define->SB
File Link. Si hemos actuado correctamente, esta opción se hallará
disponible en el menú y al seleccionarla accederemos a la pantalla
de comunicación de ficheros. En caso contrario, habrá
que repetir lo explicado en el párrafo anterior hasta que se
disponga de esta posibilidad del menú, lo cual indicará
que hemos procedido de modo adecuado.
La pantalla
de comunicación de ficheros está dividida en dos partes.
A la izquierda aparecerán los nombres de lso ficheros disponibles,
mientras que a la derecha se halla la zona donde se motrarán
los lazos entre ficheros con estructura de árbol. Primero hemos
de seleccionar el fichero maestro, que en esta aplicación será
Cabecera; al seleccionarlo desaparecerá de la columna izquierda
y pasará a la de la derecha con el encabezamiento "Master
file". Después seleccionaremos el fichero daots, el cual
se remarcará sobre el fondo para indicar que está seleccionado,
e indicaremos con qué fichero queremos enlazarlo. El fichero
con elq ues e va a enlazar es Cabecera, por lo que pulsaremos con el
ratón sobre él. Par aotros casos, aparte de esta aplicación,
es necesario que uno de los ficheros a comunicar esté en la columna
de la derecha.
Cuando hayamos
realziado esta operación, aparecerá un requester solicitando
los campos comunes, y en él, dos ventanas que mostrarán
los campos índice de cada fichero. No se pueden relacionar dos
campos que no sean índice. Seleccionaremos en ambos Programa
y pulsaremos Ok. Si todo ha salido bien, aparecerán ambos en
la clumna de la derecha. Sólo nos resta salir de la pantalla,
con la misma opción con la que entramos: Define->SB File Link.
Estos campos
no necesitan ser borrados para redefinirlos a nuestro gusto de color,
justificación y demás. Seleccionándolos podemos
alterar sus atributos. Para cabiar el tipo de letra del campo, si se
desea, se ha de seleccionar Define->Font, con lo cual se acceder
a un requester que contiene los tipos de letra disponibles en su sistema.
Seleccione el que más le guste o convenga, y listo. Para este
ejemplo se ha usado un Helvética 9.
Tras definir
los clores del campo solamente resta situarlo en su sitio, en la parte
superior de la pantalla. pero antes es conveniente fijar la rejilla,
mecanismo de seguridad que reduce el recorrido del ra´ton por
la pantalla, dejando únicamente disponibles ciertas filas y columnas
definibles por el usuario. Así, se asegura que todos los campos
y textos estén bien colocados. La rejilla se define en Edit->Ruler/Grid
y se activa en Edit->Snap to Grid.
Los títulos de cada campo en sus lugares correspondientes. |
Entrada de datos numéricamente ordenada. |
Programa.Cabecera
deberá ser situado en la primera división de la pantalla,
mientras que Código.Datos ha de estar situado en la interior,
dejando ambos sitios a la izquierda y encima, respectivamente, para
el título del campo. Este proceder deberemos aplicarlo a todos
los campos que definamos posteriormente.
Seleccionando
de nuevo FLD, nos dedicaremos a introducir los restantes campos sin
preocuparnos de sus atributos, aunque sí de su posición.
Este es un método de trabajo que permite no tener que pararse
en cada campo para acotar sus atributos, pues el programa permite la
multiselección, teniendo seleccionado un campo y, manteniendo
pulsada la tecla de mayúsculas, pulsar en todos los campos que
queremos seleccionar. Cualquier cambio que realicemos en uno de ellos
afectará también a los demás. Según esta
premisa introduciremos los campos Tipo.Cabecera, en la parte superior
de la pantalla. Al lado el campo Código.Datos introduciremos
los campos Numero.Datos, Contenido.Datos, Nombre.Datos, Formato.Datos
y Posesion.Datos. Como no cabrán en la pantalla, debido a la
longitud del campo Nombre.Datos, reduciremos la misma con la ayuda del
gadget tamaño, pulsando sobre éste y después pulsando
sobre el campo y, manteniendo apretado el botón, arrastrando
el botón hasta que el campo tome el tamaño horizontal
deseado. Debemos decir que no se debe realizar ninguna operación
de cambio de atributos hasta que no se hayan deseleccionado el campo
o campos activos, pues producirá resultados tan poco deseables
como imprevisibles.
Hecho esto,
multiseleccionaremos los campos superiores y les daremos los atributos
deseados. En este caso, fondo blanco, letra negra normal y font Helvética
9. Respecto a los campos del recuadro inferior haremos lo mismo, pero
con algunas diferencias: el campo Código.Datos y Numero.Datos
deben ir justificados hacia la derecha, puesto que son numéricos.
Esto lo conseguiremos pulsando dos veces el botón justificación.
El siguiente
paso consiste en definir líneas de transición para este
último grupo de campos, que son copias del campo pero que van
a contener no sólo unr egistro del fichero Datos, sino todas
las posibles siempre y cuando el contenido de los campos comunes a ambos
ficheros sea igual. Así pues, con todos los campos de la parte
inferior multiseleccionados, pulsaremos el menú Define->Transaction
Lines, con lo qeu aparecerá un requester para definir estas líneas.
Las opciones disponibles en él son: el número de líneas,
el espacio entre líneas, el número de columnas, el espacio
entre columnas, y dos botones en los que define si se ordenan a lo alto
o a lo largo. En nuestro caso, queremos doce líneas ordenadas
a lo alto y sin espacios entre ellas, por lo que únicamente pondremos
12 en el primer recuadro y pulsaremos OK. Si se ha hecho correctamente,
cada campo tendrá justo bajo él otros once.
Teniendo ya
definidas las líneas de transición, pondremos los dos
últimos campos, Total.Cabecera y Fecha.Cabecera en la parte superior
derecha , y modificaremos a nuestro gusto.
Con todos los
campos por fin fijados en el formato de pantalla expondremos el orden
de intorducción de datos, a lo que se accede desde Define->Data
entry order. El contenido de todos los campos se borrará y aparecerá
un número, que es el número ordinal de cada campo. Las
líneas de transición de los campos tienen un número
inalterable, puesto que es definido por el campo base. Para cambiarlo,
pulsaremos en los campos siguiendo nuestro propio orden hasta que éste
quede marcado. El orden de esta aplicación es Programa.Cabecera,
Tipo.Cabecera, Clase.Cabecera, Comentario.Cabecera, Código.Datos,
Numero.Datos, Contenido.Datos, Nombre.Datos, Formato.Datos, Nombre.Datos,
Formato.Datos, Posesion.Datos, Total.Cabecera y Fecha.Cabecera. Cuando
este orden esté ya puntualizado, hay que seleccionar la misma
opción del menú para salir.
hasta aquí
la segunda parte del tutorial. En el próximo número continuaremos
con esta aplicación, por falta de espacio.
|