Leer formularios OMR con JBLee y sacar los resultados a Excel

A continuación explicamos cómo se utiliza un programa de lectora óptica, específicamente programado para ser usado con el módulo JBLee (Comaof), para generar ficheros de texto plano, separados por puntos y comas (".csv"), que pueden abrirse con Excel de Microsoft.

Los programas de lectura óptica, que desarrollamos a medida, los enviamos por correo electrónico y con un nombre de archivo (fichero) que hace referencia al tipo de formulario que se va a leer y con la extensión ".wjb". Por ejemplo, los nombres de archivos "docencia.wjb", para evaluación de la docencia, "exa_conf.wjb", para formularios de exámenes, etc.

Cuando se reciben por correo electrónico estos ficheros hay que guardarlos en el computador en el directorio de definiciones de formularios que se desee.

A continuación, una vez guardado el programa, hay que ejecutar "Lectura TXT – Lectura Directa" (ver el recuadrado en rojo en la siguiente figura) desde el programa Lanzador, o bien "Lectura a fichero de texto" de los "Programas de lectura óptica".

Leer formularios con JBLee y sacar los resultados a Excel

Para ello se marca utilizando el cursor en forma de lápiz como se muestra en la siguiente figura:

Para ello se marca utilizando el cursor en forma de lápiz

Elegimos el archivo de programa recibido, por ejemplo, el anterior "docencia.wjb", dentro del directorio en el que se ha guardado pulsando en el botón con tres puntos que hay al lado de "Ficheros de formato", como se muestra en la figura:

Elegimos el archivo de programa recibido, por ejemplo, el anterior docencia.wjb

Aparecerá un cuadro de diálogo que nos permitirá "navegar" por los directorios, y elegir el archivo de programa que se guardó anteriormente en el computador.

Aparecerá un cuadro de diálogo que nos permitirá navegar por los directorios

Luego pulsamos el botón con tres puntos que hay más abajo, al lado de "Fichero de salida", y de modo similar elegimos el nombre del archivo de salida, comprobando que en el "Tipo:" elegimos "Todos los ficheros (*.*)", en vez de "Ficheros de texto (*.txt)" y que la extensión que le damos es ".csv". Por ejemplo, "prueba.csv", en este caso en el directorio "agronomos". El archivo de salida puede estar en el mismo o en diferente directorio al archivo del programa.

El archivo de salida puede estar en el mismo o en diferente directorio al archivo del programa

Los archivos con extensión ".csv" son un tipo de ficheros Excel, en donde cada línea (registro) corresponderá a un formulario leído y cada columna a uno de los campos de entrada del modelo de formulario. Si se ha pedido el programa para ser leído directamente por Excel, lo realizamos de forma, que cada campo se separa por un ";" y, así, el archivo de salida tiene la estructura de un archivo ".csv" de Excel.

A continuación se carga la lectora óptica con formulario y se pulsa el botón de "Leer", siguiendo tras cada lote con el botón de "Más documentos" y terminando con los botones "Fin lectura" y "Salir". Durante el proceso de lectura, en la "Ventana de lectura" se va visualizando el contenido leído de los formularios.

Durante el proceso de lectura, en la ventana de lectura se va visualizando el contenido leído de los formularios

El archivo de salida con los datos leídos de los formularios, por ejemplo, "prueba.csv" se puede abrir con Excel como se muestra a continuación:

El archivo de salida con los datos leídos de los formularios

Los siguientes son artículos interesantes para profundizar más en las diferentes formas de programar una lectora óptica de marcas para leer formularios OMR, procesarlos y almacenar los resultados de su lectura.

Ejemplo de programa básico para una lectora óptica

A continuación se presenta un ejemplo básico del código fuente de programación del formulario de la imagen de abajo a la derecha. Este es el tipo de código de programación que se almacena en los ficheros de extensión ".wjb". Este tipo de programación permite leer un sólo formulario, realizar una interpretación básica y directa de los campos de entrada y almacenar el resultado de la lectura en un fichero de texto o en un fichero CSV delimitado por comas para Excel de Microsoft. En el programa de lectura óptica JBLee (Comaof) son el tipo de ficheros que se emplea en la opción denominada Lectura TXT.

Al tratarse de un ejemplo simple la lectura se resuelve con varios campos del tipo denominado múltiples opciones [MO] y un campo del tipo denominado identificador horizontal [IH].

Los campos se han definido siguiendo la estructura del propio formulario OMR, esto es, de arriba hacia abajo y de izquierda a derecha. Pero esto se ha realizado así para facilitar la compresión de este código fuente de programa, no porque sea estrictamente necesario.

Ejemplo básico de programación de una lectora óptica

[CF]
  Anverso = 42
  Reverso = 0
  Autoreverse = N
  Parar si error = N
  Codigos de barra = 0

[SE]
  Sensibilidad = 25
  Discriminacion = 15

[MO]
  Nombre = "dni            "
  Parametros = 1 1 15 10 8 V 0 0 N 1
  Mascaras = "0123456789"

[MO]
  Nombre = "numero         "
  Parametros = 1 1 6 10 1 V 0 0 N 1
  Mascaras = "0123456789"

[MO]
  Nombre = "tipo           "
  Parametros = 1 11 26 11 20 H 0 1 N 1
  Mascaras = "ABCD"

[MO]
  Nombre = "grupo          "
  Parametros = 1 11 17 11 11 H 0 1 N 1
  Mascaras = "ABCD"

[MO]
  Nombre = "sec            "
  Parametros = 1 11 8 11 2 H 0 1 N 1
  Mascaras = "1234"

[IH]
  Parametros = 1 H 12
  Identificacion = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  "

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 37 42 33 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 29 42 25 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 21 42 17 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 13 42 9 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 5 42 1 H 0 0 N 1
  Mascaras = "ABCDE"

[FF]

Ejemplo avanzado de programación de una lectora óptica

A continuación se presenta un ejemplo avanzado del código fuente de programación de la lectura de modelos de formulario. Este es el tipo de código de programación que se almacena en los ficheros de extensión ".mlo". Este tipo de programación utiliza definiciones más básicas del tipo WJB (en el siguiente ejemplo puede verse como define el WJB que se emplea en la variable Formatos). Permite leer varios tipos de formularios, evaluar su contenido, corregir exámenes y test, ponderar respuestas, etc. y almacenar el resultado de la lectura en una base de datos. En el programa de lectura óptica son el tipo de ficheros que se emplea en la opción denominada JBLee Lectura de modelos (Comaof).

Ejemplo avanzado de programación de una lectora óptica

[MODELO]
Tipo=Examen monoplantilla
Lectura=Monohoja
Formatos=F:\Archivos\universidad\admision.wjb
DLL=
PuntuacionAprobado=5
NotaMaximaEscalaFinal=10
NotaAprobadoEscalaFinal=5
DecimalesEnSalida=3
Intervalos=10
Intervalos10=10
ListadosNombres=No
FicheroNombresListados=
DniPruebaListados=
DniListados=
NombreListados=
Ape1Listados=
Ape2Listados=


[CABECERA]
Nombre=CREDENCIAL
Comienzo=1
TotalCaracteres=7
GrabarCampo=Si
Alinear=No
RellenarConCeros=No
NoRepetido=Si
DigitoControl=Ninguno
SinDoblesMarcas=Si
Marcado=Si
MarcadoDesdePrimera=No
BuscarEnDB=No
Tabla=
Campo=
Rechazo=Si no existe
Limites=No
LimiteDesde=
LimiteHasta=
LimiteRechazo=Rechazar si esta fuera
ReemplazarSiBlancos=No
ReemplazarSiDobles=No
PosicionNuevoCampo=0
TeclearSiError=Si
ValidarCampoTecleado=Si
AccionEnlace=Ninguna
IndiceScan=No
GrabarImagenScan=No
NumeroImagenesScan=100
ConcatenarOrdenScan=No


[TEST]
Nombre=OPCIONES
Comienzo=8
TotalCaracteres=100
CaracteresXítem=1
SinDoblesMarcas=No
Marcado=No
Total=10
Acierto=1
Fallo=0.25
Doble=0
Blanco=0
PuntuacionAprobado=5
Obligatorio=No
Peso=0
TeclearSiError=No
ValidarCampoTecleado=Si
OpcionesPorRespuesta=4
TipoRespuesta=Alfabetico mayusculas
Intervalos=10
TestConAnulaciones=No
RespuestasPorítem=4
CaracteresPorPregunta=3
TipoRespuestaAnulacion=Alfabetico mayusculas

Programación clásica mediante hojas LOPA II de Longines

Las lectoras ópticas clásicas, como por ejemplo, las lectoras DATASCAN Serie 5 o DATASCAN Serie 7, se programaban mediante formularios OMR. Un formato tradicional de este tipo de formularios de programación son las hojas LOPA II (LOngines PArameter, version 2).

Clásicamente las lectoras se programaban con hojas como LOPA

Actualmente están prácticamente en desuso, pero hay todavía en funcionamiento modelos de lectoras ópticas de marcas que, en algunos casos, necesitan ser programados de esta forma.

Desde OMRForms podemos proporcionar estas hojas de programación LOPA y también ofrecemos servicios de programación mediante este tipo de formularios.

El objetivo de este artículo es proporcionar una ayuda básica para el manejo de las hojas LOPA de programación, porque, si bien su uso es infrecuente, más infrecuente es la información disponible sobre ellas.

Las hojas de programación LOPA se introducen en la lectora óptica antes que los paquetes de formularios a leer. El objetivo de estas hojas es preparar, esto es, programar la lectora para que lea la estructura del formulario que se le introducirá a continuación. Estas hojas LOPA tienen una estructura fija, que la lectora conoce, y mediante marcas ópticas describe a la lectora los campos, las posiciones, los tipos de campo, etc. de los formularios que a continuación se le van a introducir.

CEPPU, Estimación del Potencial Psicológico de la Unidad

Por tanto, para programar una lectora mediante una hoja de LOPA, o bien ya se dispone de ella o bien hay que rellenarla conforme a la estructura del formulario que a continuación se va a leer. En la figura que ilustra este artículo se muestra una hoja de LOPA ya rellena, a modo de ejemplo, de forma que programa la lectora para la lectura del formulario CEPPU (Cuestionario para la Estimación del Potencial Psicológico de la Unidad del Ejército de Tierra).

Una vez que se dispone de una hoja de LOPA ya rellena el procedimiento a seguir, por ejemplo, con una DATASCAN Serie 7, es el siguiente:

  1. Conectamos la lectora óptica al computador a través del puerto serie.
  2. Abrimos un hyperterminal en el computador con las siguientes características a 9600 baudios, no parity, 8 bits y 1 stop bit por el puerto COM al que esté conectada la lectora óptica. Si no se hace así, la lectora mostrará el error [9081] en el display al cargar la hoja de LOPA y no detectará el pin DTR activado por el hyperterminal.
  3. Encendemos la lectora óptica, que tras el test inicial pasará de mostrar el código [0000] a mostrar el código [__01] en su display.
  4. Introducimos la hoja de LOPA rellena como la del ejemplo de este artículo, para cargar la definición del formulario que se va a leer, en este ejemplo se trata de formularios del modelo CEPPU, y pulsamos el interruptor iluminado en verde para que la lectora alimente la hoja. La lectora deberá mostrar el código [__12] en su display, indicando que esta lista para leer formularios.
  5. Ponemos varios formularios rellenos y volvemos a pulsar el interruptor iluminado en verde para que la lectora los alimente. La lectora leerá los formularios y transmitirá, mostrando el código [__18] en su Display, al hyperterminal un registro por cada formulario, volviendo a mostrar el código [__12] en su display tras cada formulario leído y transmitido.
La lectora está programada mediante hojas de LOPA

Una vez que la lectora está programada mediante hojas de LOPA, y cuando comprobamos que lee bien los formularios, podemos guardar la definición de la hoja LOPA en el computador, para no tener que cargar la hoja de LOPA cada vez que encendemos la lectora óptica.

Para guardar la programación en el computador, salimos del hyperterminal para dejar libre el puerto serie (COM1 o COM2) y usamos la opción Guardar LOPA del programa Lanzador para guardar un fichero con el nombre que se desee, en el caso práctico que estamos utilizando de ejemplo, con el formulario CEPPU y una lectora DATASCAN Serie 7, podría ser "ceppu.se7" o similar.

El hyperterminal para dejar libre el puerto serie COM1 o COM2

Para utilizar una programación de LOPA guardada en el computador podemos apagar y volver a encender la lectora, para empezar todo el proceso de cero. Cuando la lectora muestre el código [__01] en su display, podemos usar la opción de Lectura a TXT del Lanzador, comprobando que:

  • en Modelo de lectora aparece la que se esté usando, en este ejemplo, una DATASCAN Serie 7 y .
  • en Ficheros de formato elegimos con el botón [...] el Tipo: Ficheros de LOPA (*.se5, *.se7) y el Nombre: que le hemos dado, en este ejemplo, "ceppu.se7".

Con lo anterior ya podemos leer, mediante el programa JBDef, a un fichero de texto, tal y como se describe en el artículo leer formularios con JBLee y sacar los resultados a Excel.

Índices disponibles en OMRForms.es

En color naranja, con fondo negro, el logotipo de OMRForms.es