![]() |
para el foro y asiduos de |
La información contenida en esta página se conserva a título de curiosidad del pasado. El estado actual del programa a que se hace mención en ella puede consultarse a partir de aquí. |
Programa de Gestión docente (a falta de mejor nombre) para plataforma Windows Pocket PC, desarrollado sobre gestor de base de datos SprintDB Pro versión 1.7 o superior.
La versión Diciembre 2003
Sin más preámbulos, descripción, funcionamiento y características, tomado como producto nuevo. Quienes actualicen desde la anterior versión Noviembre 2003 tienen más abajo información sobre los cambios necesarios en tablas y base de datos. De momento, por favor, NO TOCAR NADA hasta conocer las características de la nueva versión.
Introducción y cuestiones previas
Comprobaciones previas generales
Comprobaciones previas. Tabla valconf
Comprobaciones previas. Tabla tiposcalif
El primer arranque con entorno estable
Precauciones previas a actualización
Algunas características técnicas
Definiciones de tablas
Botiquín de emergencia, aka Troubleshooting
La aplicación consta de varios componentes, dos de ellos fundamentales:
a) La base de datos. Es un fichero en formato Pocket Access .CDB que contiene tablas, consultas y todo cuanto a datos se refiera. Es el almacén de información.
b) Los formularios. Están incluidos en un fichero .RAF específico de SprintDB Pro y contienen todas las pantallas y la programación de la aplicación.
La mayor parte de las modificaciones de una versión a otra se concentran en el fichero de formularios y en los iconos, y normalmente eso es lo único que hay que sustituir para actualizarse. El fichero de base de datos CDB suministrado contiene sólo algunos ejemplos y únicamente tiene sentido copiarlo en instalaciones nuevas. En caso de actualización, si se copia también el .CDB, sustituyendo al propio, se sobreescriben y pierden irreversiblemente todos los datos anteriores. |
Bases de datos y formularios |
La aplicación se inicia ejecutando el fichero .CDB (doble click sobre él en un gestor de ficheros). Este fichero se puede llamar como le plazca a uno; aquí se suministra como ies-dic03.cdb. Al iniciarlo, e iniciarse consecuentemente SprintDB Pro, se busca el fichero .RAF de formularios y programación para asociar con los datos. Aquí hay que tener en cuenta dos cosas, tal y como se muestra en la imagen adjunta: SprintDB Pro tiene establecida una ubicación o carpeta (folder) para los ficheros RAF de formularios. Hay que situar en ellael RAF que se suministra con la aplicación. A cada base de datos, fichero CDB, se le puede asociar un RAF determinado. Hay, pues, que decirle a SprintDB Pro cómo se llama dicho fichero. El que aquí se suministra se llama ies-dic03.RAF. Teniendo abierta la base de datos ies-dic03.cdb, en la opción Change Form File indicar ies-dic03 -omitiendo la extensión .RAF- y todo debería funcionar sin problemas. Si por alguna circunstancia se abre la base de datos antes de ubicar el ies-dic03.RAF en su lugar, se creará un ies-dic03.RAF por defecto automáticamente. No hay problema: se puede eliminar. De todo esto se deduce que los nombres pueden ser cualesquiera; sólo se deben respetar unas mínimas convenciones. |
c) Los iconos. Se trata de una colección de imágenes en formato JPG, suministradas en un fichero ZIP y que deben ser descomprimidas y ubicadas en un directorio o carpeta cualquiera. Hay una opción en el programa para indicar en qué carpeta se deben buscar dichos iconos.
d) Las fotos de alumnos y alumnas (en lo sucesivo, alumnos). Imágenes de circunstancia similar a las del apartado anterior, con la evidente salvedad de que cada uno se tiene que buscar las suyas. El hueco de formulario previsto para su ubicación tiene 100 píxel de ancho por 113 de alto.
El arranque preliminar |
Pantalla de presentación ![]() |
Una vez iniciado el programa, si todo ha ido bien, se verá durante unos instantes esta pantalla de la izquierda (sin el botón Vale de la parte inferior). A continuación aparecerá la pantalla principal. Independientemente de lo que salga en ella y antes de desesperarse (si se está actualizando saltarán varios mensajes de error que se pueden ignorar por el momento), lo mejor es pulsar sobre el icono rojo del aspa (si es que está visible) o, en su defecto, en el botón ok de Windows, que mostrará la pantalla de confirmación presentada a la derecha. Elegir el botón del medio ...permanecer en SprintDB Pro, para poder realizar algunas tareas previas y ajustar convenientemente el gestor de base de datos. |
Pantalla de confirmación de salida ![]() |
||
Comprobaciones previas generales |
Lo primero será comprobar la lista de las tablas y formularios requeridos. Aquí están los que deberían aparecer:
Tablas ![]() |
Formularios ![]() |
Hay que realizar comprobaciones y ajustes vitales en tres tablas:
Comprobaciones previas. Tabla valconf |
La tabla valconf![]() |
La tabla valconf debe contener estos ocho valores. Los tres primeros corresponden a información que aparece en el formulario del horario personal (nombre del centro, nombre del profesor y rótulo a pie de página respectivamente) y sólo pueden ser cumplimentados aquí. Los restantes son valores de configuración que se establecen desde un formulario específico que se verá después, y no es preciso cumplimentarlos aquí. En cualquier caso los ocho términos o valores de la columna elem deben figurar con los nombres escritos exactamente igual a como se muestran en la pantalla de la izquierda. Para quienes actualicen: en la anterior versión Noviembre 2003 sólo existían los cuatro últimos valores. Así pues habrá que crear manualmente los cuatro primeros en la columna elem. Respetar mayúsculas y minúsculas. |
Comprobaciones previas. Tabla tiposcalif |
La tabla tiposcalif![]() |
La tabla tiposcalif tiene diez tipos de calificación. El campo tipcalif presenta la descripción y el pcalif un identificador numérico necesario para manipular notas y que en un futuro podría ser utilizado como indicador de peso de la nota. Aquí que cada uno añada, elimine o cambie descripciones y valores a su conveniencia (supongo que los de Matemáticas no harán dictados...). Si se omite el número, hoy por hoy, no funcionarán opciones tan interesantes como los filtros de notas. La aplicación contempla actualmente valores entre cero y diez, es decir, un máximo de once tipos. Insisto: actualmente. Para quienes actualicen: en la anterior versión Noviembre 2003 no existía el campo o columna pcalif. Hay un procedimiento/formulario que modifica la estructura de las tablas y añade este campo automáticamente, pero siempre habrá que introducir manualmente los valores numéricos en la columna pcalif. |
Comprobaciones previas. Tabla horario |
La tabla horario![]() |
La tabla horario es una de las más significativas novedades de esta versión. A diferencia de la anterior, el horario ahora no es un formulario estático sino que se construye a partir de los datos contenidos en esta tabla. Tiene treinta registros, uno por cada hora de la semana, y cada uno de ellos, a su vez, cuatro campos. curso es el código de curso que figura en la ficha del alumno o alumna (en lo sucesivo, alumno); nomcurso el nombre más preciso, descriptivo, de dicho curso (el que aparece en la casilla del horario); colorfondo como su propio nombre indica (se describe más adelante un sistema para calcular códigos de color); tamfuente el tamaño de la fuente (9 es el tamaño por defecto). Muy importante: es significativo el orden de los registros: el primero, la primera hora del primer día; el séptimo, la primera hora del segundo. Se asume el típico horario de secundaria, seis horas matinales comprendidas entre las 8:30 y las 14:30, aunque en esto hay leves variaciones de unos sitios a otros. Y se ha aprovechado también el horario para condicionar el arranque de la aplicación, presentando inicialmente al grupo con el que se supone se tiene clase en ese momento. Un ejemplo: se arranca la aplicación un martes a las 11:05; rango horario teórico de tercera hora (10:30 a 11:30). La aplicación busca el registro número nueve (seis horas del lunes más tres) y obtiene el valor del campo curso, por ejemplo 3D, y arranca mostrando directamente los alumnos del curso 3º D. |
No deja de ser una bobadina, pero es de agradecer que el programa cambie de vez en cuando la cara con la que arranca (luego dicen que cogemos manía a ciertos alumnos...). También es censurable el hecho de que se base en un horario tan ideal como irreal, aunque vistos los mil matices y variaciones que puede haber en un horario de un centro a otro, sin ser perfecto, este sistema resulta razonablemente aproximado.
Para quienes actualicen: en la anterior versión Noviembre 2003 no existía ni este sistema ni esta tabla. Con la nueva versión se suministra un fichero .CSV para realizar la importación y crear así la nueva tabla.
El formulario de configuración fConf |
Y antes del arranque final, una última precaución: apertura del formulario de configuración fConf (que usa la tabla valconf) para hacer de manera automática los ajustes finales:
El formulario fConf![]() |
En este formulario se pueden establecer las trayectorias o ubicaciones de los ficheros gráficos de la aplicación (iconos y fotos de alumnos). Pueden estar en cualquier lado -incluso tarjetas externas- pero sus trayectorias deben empezar por el directorio raíz \, ser exactas y estar bien escritas, y finalizar con barra invertida. El propio formulario se encarga de añadir esta última si detecta su falta. La casilla de Confirmar modificaciones... se puede activar si se desea un mensaje de confirmación tras abandonar la edición de ciertos campos de datos. La de Desplazar pantalla..., si se activa, permite abrir hueco en la parte inferior de la pantalla cuando se despliega el teclado virtual y de esta manera no ocultar información. La Fecha inicial... es fundamental para el sistema (en el arranque se emite una advertencia si se encuentra sin cumplimentar). Sirve para las listas de notas de los alumnos que, cuando dejan de estar filtradas, aparecen en su totalidad desde un día de comienzo que suele corresponder al de inicio de curso, y el día actual. Dicho día de inicio es el que debe consignarse en este campo. Para que todas las modificaciones queden grabadas es preceptivo salir pulsando el botón Grabar. En cuanto al Calculador de color, se trata de una herramienta auxiliar para averiguar los números de colores para las casillas del horario personal. |
Para quienes actualicen: en la anterior versión Noviembre 2003 no existía el dato Fecha inicial de presentación de notas, ni obviamente el Calculador de color.
El primer arranque con entorno estable |
Y tras todas estas cuestiones previas, arranca por fin la aplicación. El formulario de arranque es fSys, que muestra durante unos instantes la pantalla de presentación. Y es cierto que lo que se acaba presentando es fPrincipal, pero es preceptivo pasar antes por fSys; de lo contrario no se activan una serie de valores necesarios para el correcto inicio de la aplicación.
La pantalla inicial |
Si todo ha ido bien se verá una pantalla similar a ésta:
El formulario principal![]() |
Se trata de la pantalla inicial del programa. Tiene en la parte superior una serie de figuritas o iconos cuyas funciones son:
|
También aparece una lista desplegable de grupos con un grupo preseleccionado (1EB en el caso del ejemplo). Dicha preselección está condicionada por el horario. Si éste se ha cumplimentado adecuadamente, en el arranque se mostrará el grupo con el que se tiene clase en la fecha y hora presente o en la próxima hora lectiva, tal y como se explicó en líneas anteriores.
Seguimos. Hay un contador (1/1 en el ejemplo) que indica el número de alumno sobre el total de alumnos pertenecientes al grupo seleccionado. A continuación aparece un recuadro encabezado por los rótulos Nombre y Apellidos que muestra la lista de los alumnos correspondientes al grupo seleccionado arriba (sólo uno en el ejemplo). La lista aparece ordenada alfabéticamente por apellidos. Ni que decir tiene que la lista de alumnos variará cada vez que seleccionemos un grupo distinto. Y más abajo, toda la información correspondiente a dicho alumno. O sea, la elección de grupo genera toda la lista de sus alumnos; la selección de un alumno, a su vez, muestra todos sus datos. Al ser muy abudantes tales datos, están organizados en cuatro páginas seleccionables por sus correspondientes pestañas en la parte inferior: Personal, Otros, Faltas y Notas. Se describen a continuación.
La página Personal |
Un campo editable![]() |
La página Personal muestra la primera parte, principal, de los datos personales. Hay campos, por este orden, para Dirección, Localidad (no hay campo específico para código postal), Teléfono. Estos campos son editables: al seleccionarse cambian el color de fondo y permiten modificaciones (figura de la izquierda). Al abandonarse la edición se graban automáticamente los cambios, sin previo aviso, salvo que en el módulo de configuración se haya marcado previamente la opción de Confirmar modificaciones de datos. Otros campos no son editables, como Fecha de nacimiento (tiene un comportamiento especial), Edad (calculado a partir de la fecha de nacimiento y con razonable precisión, bisiestos incluidos), Número de hermanos, Posición que ocupa entre ellos, y la Foto. Ésta debe ser un fichero de formato JPG de dimensiones 100 píxel de ancho por 113 de alto, cuyo nombre corresponda exactamente al código del alumno. Es decir: si añadimos un alumno y le asignamos un código 3D1876, su fichero de fotografía deberá llamarse inexcusablemente 3D1876.jpg y estar situado en la trayectoria especificada en el formulario de configuración. |
El campo Repite![]() |
Y otros campos son especiales, como el Repite/No repite. Es un campo lógico binario con dos posibles valores, 1 Verdadero, 0 Falso. Después de toda la guerra que ha dado, creo que ya funciona sin problemas. Es editable sobre la marcha. Pulsando a la derecha del recuadro rojo aparece un rótulo ¿Repite? junto con una casilla de verificación (figura adjunta). Si se marca dicha casilla aparece el rótulo Repite ya no como pregunta sino como afirmación. Y viceversa: pulsando de nuevo vuelve a aparecer la pregunta y la casilla para proceder a la deseada selección. Y llegados a este punto, la cuestión inevitable: ¿Cómo se introducen nuevos alumnos? Respuesta: a mano. Justificación: las notas o faltas de asistencia, o anotaciones de actividad diaria, son algo que se crea continuamente, y tienen por ello su opción de creación, modificación o borrado. Los alumnos, sin embargo, se crean una vez al principio y muy raras veces se añaden o eliminan (sobre todo una vez transcurridos los quince primeros días y ya ajustados todos los grupos y optativas). |
A lo sumo, sufren alguno modificación puntual. Por eso ya desde el principio no me planteé un módulo de introducción de estos datos. Uno se va a la tabla alum, a mano, y en ella va creando alumnos con unas mínimas precauciones elementales en la cumplimentación:
codigo (Código): Se dispone de hasta diez caracteres para un identificador exclusivo para el alumno, letras, números o ambos
curso (Curso): Un identificador de curso de hasta cinco caracteres. Se debe ser coherente y no despistarse; no poner 2B a un alumno, 2 B a otro y 2ºB al siguiente. Que nadie se ofenda, por favor; es que a uno le ha tocado ver de todo...
nombre (Nombre):
apellidos (Apellidos):
fnac (Fecha de nacimiento):
numhermanos (Número de hermanos): Es un valor numérico, para futuros posibles cálculos
lugar (Lugar que ocupa): Campo de texto para poner un número. No es preciso poner el ordinal que aparece en la pantalla: el programa se encarga de hacerlo.
Con estos siete campos queda el alumno perfectamente identificado. El resto de los datos ya se pueden introducir o modificar desde dentro del propio programa.
Para no perder la paciencia con el stylus, existe la razonable alternativa de copiar el fichero .CDB al equipo de sobremesa por medio de ActiveSync, que lo convertirá automáticamente a formato típico Access .MDB. Ahí se pueden modificar y añadir registros tranquilamente para después devolver el fichero al Pocket PC. Si no hay nada raro en la configuración de ActiveSync, la conversión de CDB a MDB y viceversa será transparente y segura. Pero hay que tener precauciones, la primera y más importante es declinar la invitación de Access de transformar el formato del MDB resultante la primera vez que lo abre. La consecuencia es que no se puede alterar su estructura; la ventaja, que no habrá problemas para devolverlo convertido en CDB al Pocket PC después de rellenarlo. En cualquier caso, esta cuestión de conversiones y viajes de formatos es suficientemente compleja y liosa como para apartarse mucho del propósito de este documento. Quede sugerido el procedimiento; el tema se podrá tratar en un sitio distinto.
La página Otros |
La página Otros![]() |
La página Otros muestra otros datos personales del alumno. Por orden: Nombre del padre y Profesión, Nombre de la madre y Profesión, y Comentarios varios, tal y como se aprecia en la muestra de la izquierda (bromas aparte). Todos los campos son editables, especialmente el último, de extensión ilimitada y muy útil para cuantas cuestiones de interés haya que anotar a lo largo del curso. Al activar la pestaña Otros se mantienen intactos el primer bloque (Grupo) y el segundo (Lista de alumnos). Sólo varía el tercero. Si en este punto se selecciona otro alumno del mismo curso o incluso se cambia de curso, persiste el recuadro Otros aunque ya relativo al nuevo alumno y/o grupo seleccionados. Este mecanismo es igual para las cuatro pestañas o páginas de esta pantalla. Nótese en la muestra adjunta que al entrar en modo de edición al campo de comentarios aparece una rejilla/sistema de escritura flotante que no impide la visualización del área inferior de la pantalla. Pero lo normal es usar sistemas de escritura como Trazos naturales, o Teclado, que ocupan un área significativa tal y como se muestra en la siguiente ilustración: |
La página Otros, desplazada![]() |
Para estos casos se contempla la posibilidad de activar un desplazamiento de pantalla cada vez que emerge el componente de escritura. Esto se puede habilitar en el módulo de configuración del programa, activando la casilla Desplazar pantalla verticalmente al escribir. No es un remedio perfecto ya que desaparece la parte superior de la aplicación, aunque es un mal menor puesto que no resulta muy necesaria mientras se escribe... |
La página Faltas |
La página Faltas![]() |
En esta tercera página Faltas se introduce un nuevo elemento de complejidad: el tercer bloque de información contiene una lista de elementos que, en función de la selección, muestran distinta información en una cuarta área. Dependiendo de la selección de Grupo y Alumno, aparece una lista con todas las faltas de asistencia anotadas, por orden decreciente de fechas. De cada una de ellas, tres datos: la fecha, si está justificada la falta y un enigmático CJE. Esto último significa Comunicada a Jefatura de Estudios, y constituye una concesión a mi actual centro, donde en algunos niveles sigue siendo necesaria la información facilitada por el profesor (y no creo que sea esto una excepción). Este campo, pues, sirve para llevar este control. Al comienzo ya de la cuarta área siguen más abajo dos contadores, uno del total de faltas, aparentemente inútil en el ejemplo de la izquierda pero tremendamente útil cuando las faltas son más de las cuatro que caben en la lista, y un contador, en rojo, de faltas no justificadas por el alumno. |
La fila siguiente contiene varios controles que actúan sobre la falta seleccionada (marcada en azul). De izquierda a derecha:
Icono de borrar : Elimina la falta seleccionada. Se solicita confirmación antes de proceder.
Control de fecha: Muestra la fecha de la falta seleccionada y puede desplegar un calendario para modificarla. También se pide confirmación antes de realizar el cambio.
Botón J: Actúa sobre el valor Justificada de la falta actual. Cambia de Sí a No y viceversa sin pedir confirmación.
Botón C: Actúa sobre el valor CJE de la falta actual. Cambia de Sí a No y viceversa sin pedir confirmación.
Icono de escribir : Crea automáticamente y sin pedir confirmación una nueva falta, con la fecha actual y con los valores de Justificada y CJE establecidos en No.
La página Notas |
La página Notas![]() |
Esta es una página de notable y creciente complejidad. Al igual que la anterior, tiene un tercer bloque de información con la lista de notas (calificaciones) del alumno seleccionado, ordenadas de más reciente a más antigua. Aparecen los datos de Fecha, Tipo (clase de calificación) y Núm. (valor numérico de la calificación). El cuarto bloque de información contiene una descripción de la nota, editable con el simple hecho de ser señalada o, más técnicamente, recibir el foco de teclado. Una cortesía del sistema: al perder el foco o abandonarse el modo de edición, la primera letra se convierte en mayúscula (las buenas formas por encima de todo). Más abajo, la fila de controles de rigor. Tres de ellos son similares a los de la página de Faltas: Icono de borrar |
De los tres restantes, dos son botones de acción y uno una lista desplegable:
La página Notas. El botón Tipo![]() |
Toda nota tiene un tipo asociado (Examen, Ejercicio en clase, Trabajo voluntario...) que se muestra en la lista de las notas. Al pulsar sobre este botón Tipo aparece un cuatro de diálogo en el que se puede desplegar una lista de todos los tipos definidos y elegir el adecuado, o cancelar. La elección quedará reflejada en la lista de notas. Esta lista de tipos se obtiene de la tabla tiposcalif, que se puede modificar manualmente desde el gestor SprintDB. Cada tipo tiene dos valores o campos: tipcalif, que es el texto descriptivo, y pcalif, que es un código o valor numérico exclusivo para cada tipo de calificación. La intención inicial para el tipo de nota era la de una mera descripción de la calificación, el saber a qué correspondía. Sin embargo, la necesidad de poder filtrar y manipular de manera más sofisticada las notas, así como la conveniencia de asignar un peso específico a cada una de ellas, ha exigido la introducción de este valor numérico. En principio el programa contempla códigos entre cero y diez, ambos inclusive, lo que permite definir hasta once tipos de calificaciones distintos. Si se omite este valor al definir un tipo de calificación, dicho tipo será ignorado en ciertas operaciones de filtrado y tratamiento de calificaciones. El hecho de crear una nueva nota e identificarla con un tipo implica su asociación con su correspondiente número. Por ello es muy importante tener numerados todos los tipos de calificación antes de empezar a poner notas a alumnos. |
Para quienes actualicen: una vez más: en la anterior versión Noviembre 2003 no existía el campo o columna pcalif, ni en la tabla tiposcalif ni en calific. Hay un procedimiento/formulario que modifica la estructura de las tablas y añade este campo automáticamente, pero siempre habrá que introducir manualmente los valores numéricos en la columna pcalif.
La página Notas. El control para Núm.![]() |
El control desplegable numérico muestra, valga la redundancia, el valor numérico de la nota seleccionada en la lista de notas. Como en lista aparece completamente visible, y dada la tremenda escasez de espacio, la anchura de este control está limitada y muestra sólo el entero y el primer decimal. Al desplegarse presenta la lista completa de notas de cero a diez, a intervalos de veinticinco centésimas y con la misma restricción de anchura. Cualquier selección realizada queda automáticamente reflejada en la lista de notas y en la correspondiente tabla de calificaciones (calific). En ocasiones sucede que la inadecuada distribución de las columnas Fecha, Tipo, Núm. de la lista de notas deja oculta parcial o totalmente la nota numérica. Es un problema de cálculo de anchuras de SprintDB. Se resuelve fácilmente actuando sobre el límite vertical de las columnas, arrastrándolo convenientemente de la misma forma que se haría con el ratón en un ordenador convencional. Lo malo es que no se pueden fijar o memorizar las anchuras establecidas. Para quienes actualicen: en la anterior versión Noviembre 2003, en la tabla calific, el campo o columna ncalif que contiene la nota numérica era de un tipo que no permitía decimales. |
En la nueva versión se ha cambiado el tipo de campo para que ya sean posibles y perfectamente operativos. El problema es que un cambio de tipo de dato, o no es posible por un procedimiento directo, o implica pérdida de información. Para ello hay un procedimiento/formulario que modifica la estructura de la tabla calific y en sucesivos pasos, creación de nuevo campo, trasvase de datos del antiguo al nuevo, oportunos cambios de nombres y eliminación del antiguo, realiza toda la operación. Este procedimiento está descrito en detalle más abajo.
Hay todavía dos controles un poco fuera de lugar aunque no por ello menos útiles. Están a la derecha de la pestaña Notas y son:
1. Un contador de las notas mostradas en la lista, útil cuando hay más de las tres que están visibles.
2. Enmarcado por una casilla, una número que representa el promedio de las notas numéricas mostradas en la lista.
Las Notas, filtradas |
La página Notas. Activar filtro![]() |
Una de las mayores limitaciones sufridas en el apartado de las notas era el hecho de que se iban amontonando en la lista, por cantidad y por heterogeneidad, lo que hacía que esta información fuera útil pero de eficacia decreciente. El problema se ha resuelto por ahora con un filtro que se activa pulsando sobre el botón Flt (por razones de espacio ni siquiera cabe el pobre nombre entero). Dicha pulsación encoge, digamos, el control de descripción de la nota y emergen en su lugar dos controles de fecha, uno de lista desplegable y dos imágenes-botón de activar o cancelar. Cuando no está establecido ningún filtro, el primer control de fecha (inicial) presenta la fecha que se toma como origen para mostrar todas las notas. Esta fecha hay que fijarla previamente en el formulario de configuración y ya fue explicada anteriormente. El segundo control de fecha (final) presenta la fecha del día actual. Estos son los límites de tiempo que constituyen el intervalo normal, sin filtros ni restricciones. Y pueden ser objeto de cualquier nueva selección posible (si se intenta hacer trampa saltará un mensaje de error y se invalidará la selección). El siguiente control, de tipo, presenta en lista desplegable todos los tipos ya previamente definidos y conocidos. Ahora bien: aunque muestra las descripciones (tipcalif), trabaja con los valores numéricos (pcalif). Por ello ignorará aquellas notas que no tengan convenientemente establecido dicho valor. |
Si se deja en blanco este control se mostrarán todas las calificaciones (con número comprendido entre cero y diez). Pero si, después de haber tenido un valor previo, se deja en blanco borrando su contenido, ello no alterará su código numérico asociado, con lo que se realizará un filtrado de notas erróneo. Si se desea pasar de un valor concreto a uno global, el procedimiento es borrar el filtro y establecerlo de nuevo cambiando sólo las fechas.
Una vez fijados los criterios de filtro, se pulsa sobre el icono de aceptar . Entonces se ocultan los controles para fijar el filtro, el control de descripción de nota recupera sus dimensiones normales y en el cuadro de la lista de notas aparecen sólo aquellas calificaciones que cumplen las condiciones expresadas por el filtro. Los controles inferiores de cómputo de calificaciones y promedio se recalculan y aplican sólo a los registros visibles y filtrados, y el botón Flt cambia de apariencia, con fondo rojo, para informar así de que hay un filtro activado y las notas mostradas posiblemente no sean todas. Siguiente ilustración:
La página Notas. Filtro activado![]() |
El botón Flt sigue estando operativo y cada vez que se pulse se mostrarán los controles para cambiar las condiciones. Si se pulsa estando visibles los controles de filtro, simplemente no actuará. Para eliminar un filtro establecido, acudir a mostrar los controles de filtro y pulsar sobre el icono no aceptar Para quienes actualicen: en la anterior versión Noviembre 2003 no existía tal opción de filtros. Va incorporada en los nuevos formularios pero para funcionar exige la incorporación del nuevo campo pcalif a dos tablas, tal y como se ha mencionado ya varias veces, y el adecuado establecimiento de los valores numéricos, según se comentará más adelante.
|
El horario |
A este formulario o módulo se accede pulsando sobre el icono de la parte superior. Muestra algo similar a esto (lo que aparece en el ejemplo es una distribución aleatoria e irreal de cursos, evidentemente):
El horario![]() |
Como ya se comentó en líneas anteriores, este formulario ha pasado de ser estático, con valores fijos, en la anterior versión, a dinámico y construido a partir de valores obtenidos de tablas. Tiene dos fuentes de datos: a) Tabla valconf. De ella toma los valores que tienen asignados los elementos CentroProf (primer rótulo, con letras grandes en rojo oscuro), NombreProf (segundo rótulo, letras negras de tamaño medio) y Pie (rótulo inferior, con letra pequeña). Obviamente, ni hay por qué poner tales datos en concreto, ni siquiera hay necesidad de cumplimentarlos. Pueden quedar en blanco tranquilamente. b) Tabla horario. Tal como se explicó más arriba, contiene treinta registros, uno por cada hora de clase, dispuestos por riguroso orden cronológico. Cuestiones complementarias a lo que ya ha sido descrito: - Si se dejan todos los campos de un registro en blanco, su correspondiente casilla aparecerá vacía, pero de color negro, que es el color cero. Para que aparezca blanca hay que establecer 16777215 en el campo o columna colorfondo. Lógicamente se puede poner cualquier otro. Y a efectos del momento de arrancar la aplicación será ignorada como hora de clase y en consecuencia se mostrará el curso correspondiente a la primera casilla que esté cumplimentada. |
- El campo de cumplimentación imprescindible para que aparezca información en la casilla es nomcurso. Y, lógicamente, un código de color en colorfondo para evitar el negro que aparece por defecto. Si se quiere que funcione el mecanismo de selección automática de curso a la hora del arranque, cumplimentar también el campo curso con el mismo valor que se usa en el campo curso de la tabla de alumnos. Y para los casos en que el rótulo es largo y no cabe en la casilla, especificar en tamfuente un valor inferior a 9 (valor por defecto). En el ejemplo adjunto, las casillas grises usan un tamaño 8.
El calculador de color incluido al final del formulario fConf y descrito descrito más arriba sirve para obtener los códigos para colorfondo. Muestra tres listas desplegables con valores decimales de 0 a 255 con el orden RGB (Red, Green, Blue) para incrementar el componente Rojo, Verde y Azul respectivamente y obtener el color deseado. El resultado es puramente informativo; no se puede trasvasar directamente a otro lugar (de momento...).
Para entender bien el mecanismo del horario y la presentación inicial de curso: puede surgir la duda de por qué en la tabla horario suministrada en la base de datos de ejemplo, el campo nomcurso está cumplimentado para todos los cursos pero el campo curso solamente para 1EB. La respuesta es obvia: la tabla de alumnos sólo contiene uno, asignado al grupo 1EB. Es decir, que para la aplicación sólo existe un grupo. Siendo así, si el horario puede invocar la selección previa de hasta cinco grupos, se producirán circunstancias de error con los cuatro restantes. Remedio: dejar en blanco el campo curso en los casos en que no hay una correspondencia real con un grupo. Aplicable también, lógicamente, a actividades ajenas a grupo como guardias, reuniones de departamento, de tutoría y un largo etcétera.
El módulo de Actividades |
El formulario de Actividades![]() |
Este componente nació con la idea de ser un diario de clase en el que llevar registradas las actividades. Toma sus datos de la tabla activid y no tenía en principio complicación alguna. Y esa es su apariencia, de hecho: En la parte superior el habitual icono rojo con aspa de cierre, la lista desplegable con los grupos, un icono para acceso al horario, frecuentemente invocado desde esta pantalla, y un contador de registros a la izquierda, para tener al día la curiosidad de cuántas clases llevamos impartidas en dicho grupo. El icono azul de la flecha se comentará después. En función del grupo elegido en el desplegable superior aparece el ya familiar control de lista, que muestra una línea o registro por cada día de clase con información sobre la fecha y el detalle de la actividad. Y en el recuadro inferior, ese mismo detalle de la actividad aunque ya con una visión más amplia, y editable. La edición se realiza en los mismos términos que en recuadros similares de observaciones o notas de alumnos: cambia el color de fondo al iniciarse dicho modo, se graban automáticamente las modificaciones al abandonarse la edición y se puede configurar la pantalla para desplazarse hacia arriba en caso de usar el teclado como método de introducción de datos. |
Los registros de actividad, por coherencia con otros casos similares, se ordenan ahora por cronología inversa, arriba el más reciente. El icono azul de la flecha sitúa el cursor en el último registro de la lista, abajo del todo, lo cual tenía sentido cuando en esa posición final se situaba el registro cronológicamente más reciente. Ahora se limita a conducir al primer registro de la lista. Poco útil, pero en fin...
Modificaciones en Actividades |
La hilera de controles de la parte inferior tiene iconos/funciones conocidos y otros nuevos. El de eliminar El icono del reloj de arena Una vez especificado correctamente el día final del intervalo, la información resultante se reparte en dos mensajes emergentes. El primero, como se aprecia en la siguiente ilustración, informa de los días naturales que quedan hasta dicha fecha. El segundo, ilustración a continuación, ofrece un cálculo aproximado de los días de clase que quedan hasta dicha fecha y para el curso que sigue estando seleccionado en esta pantalla (el curso sobre cuyo diario de actividad estamos trabajando). |
Cálculo de fechas ![]() |
Se advierte claramente en el mensaje de que no se tienen en cuenta festivos ni vacaciones para realizar el cálculo. Lógicamente. Simplemente se calculan las semanas por transcurrir, se acude a la tabla de horario para averiguar el número de horas semanales de clase con dicho grupo y se realiza una sencilla operación aritmética. Si por medio están las Navidades, la Semana Santa o el día del docente, es una circunstancia desconocida para el programa. No es exacto ni milagroso, pero da una idea. Una posibilidad de cara a futuras versiones sería incluir en la tabla de valores de configuración (valconf) información sobre festivos e intervalos de vacaciones. Nos complicamos la vida, pero bueno... |
Más cálculo de fechas |
Hacia la programación didáctica... |
El icono Al seleccionarse este icono se localiza en la tabla temprog un registro cuyo campo de nivel académico corresponda al grupo sobre el que estamos trabajando y cuya fecha sea igual o aproximada a la del registro actualmente seleccionado en la lista de actividades. Como resultado aparecerá un mensaje similar al mostrado a la izquierda, en el que se detalla la materia o actividad que se debería estar impartiendo o realizando en la fecha seleccionada. Sigue un inacabado Llevamos de retraso... que debería ofrecer un cómputo de días, aunque para ello en cada anotación de actividad habría que remitirse a lo previamente programado en temprog para que se pudiera realizar una comparación objetiva de términos. En fin, habrá que darle forma... En cualquier caso la información suministrada, sin ser exacta ni perfecta, resulta de utilidad. Naturalmente, los resultados aquí vienen precedidos de un laborioso trabajo de programación y distribución de la materia, por parte del profesor, sobre la tabla temprog. |
El módulo de Consultas |
Consultas... |
Este cajón de sastre que aparece bajo el nombre de Consultas constituye un intento de tener prediseñados los listados más habituales que se precisan. Intento que nunca será plenamente satisfactorio pues, a la vista de la cantidad de campos e información contenida en las diversas tablas de la base de datos, las posibilidades son muchas más de las que razonablemente pueden caber en un programa de estas características. En cualquier caso, el gestor SprintDB Pro dispone de un potente módulo para consultas (Queries) y un no menos potente sistema de consulta de tablas, filtrado, ordenamiento y modificación global. En fin, este formulario permite las consultas más comunes y elementales. En su apariencia externa tiene el consabido control-aspa roja de cierre, el icono de acceso al horario, un texto descriptivo que va informando de la naturaleza de la consulta realizada, una fila de controles en la parte superior, un contador de registros que cumplen la condición, un control de listados central, que mostrará la información resultante de la consulta, y una hilera de iconos en la parte inferior. A la izquierda de los controles un icono con la habitual figura de borrar Los controles de la parte superior reflejan los tres aspectos básicos que pueden condicionar una consulta: curso, fecha de comienzo y fecha de término. Así, el primero es una lista desplegable que permite seleccionar el curso; el segundo, un control de fecha inicial o fecha de coincidencia, y el tercero el control de fecha final. Se combinan de la siguiente manera: |
-
Se indica sólo el curso. El sistema responde con información relativa a dicho curso en cualquier fecha.
-
Se indica curso y primera fecha. Respuesta con información relativa a dicho curso y exactamente en dicha fecha.
-
Se indica curso y ambas fechas. Respuesta con información sobre ese curso y en el intervalo de tiempo comprendido entre ambas fechas.
-
Se indica sólo primera fecha. El sistema responde con información relativa a cualquier curso y en esa fecha.
-
Se indican sólo las dos fechas. Respuesta con información sobre cualquier curso y en el intervalo de tiempo comprendido entre ambas fechas.
-
Cualquier otra combinación. Mensaje de error: condición no válida.
Bien. ¿Y qué información puede suministrar este sistema? La respuesta está en los cuatro iconos de la parte inferior. Primero se construye la condición con los controles de arriba y después se elige la acción, que puede ser:
-
Consulta sobre actividades de clase registradas en la correspondiente tabla activid.
-
Consulta sobre faltas de asistencia.
-
Consulta sobre notas.
-
Consulta sobre faltas sin Comunicar a Jefatura de Estudios.
En todos los casos se ha intentado evitar duplicidades de información. Si, por ejemplo, se pregunta por las faltas de asistencia en el grupo X durante tales días, se mostrarán los nombres de los alumnos, las fechas de las faltas, pero no el curso, que ya va implícito en la consulta. Asimismo se ha procurado ordenar los resultados en cada caso conforme al criterio supuestamente más útil.
De todas formas, nada es perfecto y la lista sigue y seguirá mucho tiempo abierta.
Algunos ejemplos, simples:
Componentes para instalación |
Base de datos, ya en formato CDB de Pocket Access 2003. Con algunos registros de ejemplo |
|
dic03-RAF.zip | Fichero de formularios RAF de la nueva versión. Modificado con fecha 09/01/2004 a las 01:07 para evitar provisionalmente unos problemas de temporizadores (timers) que podían llegar a bloquear el sistema. Este enlace ya corresponde al RAF bueno |
iconos-dic03.zip | Nuevos iconos para sustituir a los de la versión anterior |
img.zip | Una única foto de "alumno" para empezar las pruebas |
horario-csv.zip | Para quienes actualicen: un fichero para importar y generar a partir de él la nueva tabla horario |
2002-dic03.cdb.zip | Base de datos, ya en formato CDB de Pocket Access 2002. ¡Sólo para usuarios de Pocket PC 2002! |
Precauciones previas a actualización |
En teoría y repitiendo de algún modo lo ya descrito hasta ahora, quienes actualicen deben tener en cuenta las siguientes consideraciones:
-
Bajo ningún concepto sustituir sin más el fichero CDB propio por el suministrado como ejemplo con la nueva versión.
-
Hacer una, mejor dos, copias de seguridad previas de todo lo anterior (base de datos CDB y fichero de formularios RAF) antes de tocar nada.
-
Tras el primer arranque con el nuevo fichero RAF de formularios ya asociado, ignorar la advertencia de valor FechaDesde sin establecer, así como los de sentencias SQL, debidos a que se está invocando a campos todavía inexistentes. No pasa nada. Finalizar la aplicación sin abandonar el gestor SprintDB Pro y:
-
Completar a mano los cuatro campos nuevos de la tabla valconf.
-
Ejecutar el formulario cambiaDouble suministrado para realizar las preceptivas alteraciones en las tablas calific y tiposcalif. Es altamente recomendable no ejecutar todos los pasos (botones de comando) seguidos, sino ir uno a uno, cerrando el formulario y verificando los resultados antes de abordar el paso siguiente.
-
Generar la tabla horario a partir del fichero horario.csv suministrado y de acuerdo con los valores detallados más abajo.
-
Cumplimentar convenientemente los nuevos campos pcalif creados en las dos tablas anteriormente citadas.
-
Problemas de última hora |
Toda esta gestión se ha desarrollado y probado exhaustivamente en un Pocket PC iPAQ con procesador Xscale PXA255, Windows Mobile 2003 y SprintDB Pro versión 2.0. La máquina alternativa para probar otros entornos, versiones y actualizaciones es otra iPAQ con micro Xscale PXA250, Windows PocketPC 2002 y SprintDB Pro 1.7a.
Las pruebas realizadas sobre esta máquina alternativa están revelando serios problemas de arranque y en ocasiones bloqueos durante el cierre o apertura de determinados formularios. También en el arranque inicial con estructuras todavía de la versión Noviembre 2003, previo a la actualización. Todo el desarrollo se ha realizado buscando la compatibilidad con la versión 1.7 y tomando precauciones en el sentido de que el uso de ciertas funciones específicas de la versión 2.0 no creasen incompatibilidades en 1.7. No parece ser la versión de SprintDB Pro la causa del problema. No se sabe si puede ser un problema de 2002, o de 2002 más SprintDB Pro 2.0, o de todos a la vez.
Varias horas después. Nuevas pruebas, esta vez con la misma máquina iPAQ y plataforma Windows Pocket PC 2002 pero SprintDB Pro 2.0. Todo ha ido perfectamente, tanto la actualización desde la versión Noviembre 2003 como la instalación como producto nuevo. La única anomalía reseñable es la apariencia de la fuente Tahoma tamaño 8, que en Windows PPC 2002 aparece más espaciada que en 2003, donde se muestra más compacta, y en consecuencia algunos rótulos se salen de sus límites. Los usuarios de 2002 no tienen más que comparar sus pantallas con las reproducciones que aquí se muestran. Los ficheros de fuente Tahoma son los mismos en Windows 2002 y y Mobile 2003: versión 2.80.
En fin, la causa de las anomalías de arranque parece estar, inexplicablemente, en la versión de SprintDB. Inexplicablemente porque no se han empleado funciones ni características de la versión 2.0 que entren en conflicto abiertamente con la versión 1.7.
Conclusión, que sigue siendo provisional: el uso de la aplicación con SprintDB Pro 1.7 tiene de momento carácter un tanto experimental. De todas formas, previa copia de seguridad de todo, el experimento es realizable, la situación perfectamente reversible y no se pierde nada. Animo desde esta página a hacer la prueba y a informar de los resultados. Nos vemos en el foro de todopocketpc.com
Algunas características técnicas |
Definiciones de tablas utilizadas.
alum |
Nombre del campo | Tipo | Tamaño | Índice |
codigo | Text | 10 | YES |
curso | Text | 5 | NO |
nombre | Text | 20 | NO |
apellidos | Text | 30 | NO |
direccion | Text | 50 | NO |
localidad | Text | 30 | NO |
telefono | Text | 10 | NO |
fnac | DateTime | NO | |
padre | Text | 30 | NO |
fnacp | DateTime | NO | |
profp | Text | 30 | NO |
madre | Text | 30 | NO |
fnacm | DateTime | NO | |
profm | Text | 30 | NO |
numhermanos | Integer | NO | |
lugar | Text | 2 | NO |
repite | Yes/No | NO | |
observaciones | Memo | NO |
activid |
Nombre del campo | Tipo | Tamaño | Índice |
curso | Text | 5 | NO |
nivel | Text | 5 | NO |
fecha | DateTime | NO | |
activ | Text | 255 | NO |
calific |
Nombre del campo | Tipo | Tamaño | Índice |
codigo | Text | 10 | YES |
fecha | DateTime | NO | |
curso | Text | 5 | YES |
tipcalif | Text | 25 | NO |
ncalif | Double | NO | |
pcalif | SmallInt | NO | |
calif | Text | 255 | NO |
faltas |
Nombre del campo | Tipo | Tamaño | Índice |
codigo | Text | 10 | YES |
fecha | DateTime | 10 | NO |
curso | Text | 5 | YES |
justificada | Text | 2 | NO |
cje | Text | 2 | NO |
comentario | Text | 255 | NO |
horario |
Nombre del campo | Tipo | Tamaño | Índice |
curso | Text | 5 | NO |
nomcurso | Text | 10 | NO |
colorfondo | Integer | NO | |
tamfuente | Integer | NO |
temprog |
Nombre del campo | Tipo | Tamaño | Índice |
nivel | Text | 5 | NO |
tema | Text | 5 | NO |
tipo | Text | 10 | NO |
parte | Text | 100 | NO |
dias | Integer | NO | |
fechalimit | DateTime | ASC |
tiposcalif |
Nombre del campo | Tipo | Tamaño | Índice |
pcalif | SmallInt | NO | |
tipcalif | Text | 25 | NO |
valconf |
Nombre del campo | Tipo | Tamaño | Índice |
elem | Text | 25 | NO |
valor | Text | 255 | NO |
Para tener en cuenta lo siguiente:
Los campos de tipo Text permiten un máximo de 255 caracteres. Son los más utilizados, para datos, y están definidos para la máxima extensión de 255 allí donde se precisan descripciones (comentarios a una nota o calificación, descripción de la actividad de un día,... fundamentalmente). Entre los numéricos, los Integer se emplean allí donde son necesarios o previsibles cálculos aritméticos y con cifras de cierta magnitud (color de fondo de las casillas del horario); los SmallInt para valores numéricos que no alcanzan unos valores muy elevados (como pcalif, el peso de las calificaciones); y el Double allí donde se necesitan decimales (calificación numérica ncalif). Algunos campos como numhermanos de tipo Integer son, obviamente, un residuo de los desarrollos iniciales que han ido pasando desapercibidos a lo largo de las sucesivas revisiones y actualizaciones. Los campos DateTime almacenan fechas y horas (únicamente se usa de ellos el componente fecha), los Yes/No son los típicos binarios Verdadero/Falso, y el Memo, que únicamente se emplea en el apartado de observaciones del alumno, página Otros, es un campo de Memorándum, texto amplio donde se puede escribir y escribir sin más limitación que la memoria de la propia máquina y la paciencia del lector subiendo y bajando la barra de desplazamiento.
Botiquín de emergencia, aka Troubleshooting
(continuará)
Última actualización: 4-01-2004 a las 3:28.