reporte — Genera reportes con valoraciones de uno o más estudiantes.
reporte [opciones
] [dir_est
| grp
] [[dir_est
| grp
] ...]
Recibe uno o más archivos con grupos (ver grupo(5)) o directorios de estudiantes con su progreso. Genera todos los reportes de los individuos del grupo y de los estudiantes en XML o empleando una plantilla que especifica como debe ser cada reporte. La plantilla que repasa puede completar puede ser un documento HTML o un texto, un documento DocBook, LaTeX, RTF o cualquier otro formato que se represente en un texto plano y que sea apropiado para su institución (no es posible emplear una plantilla en un formato binario como el de MS-Word).
Las opciones son las siguientes:
-ayuda
Presenta ayuda corta y opciones
-D
Establece otro directorio en el cual buscar archivos con más precedencia
-man
Presenta página del manual
-refentry
Presenta página del manual en formato DocBook
-V
Versión de este programa
-anota
Especifica una anotación del reporte y su valor. La sintaxis es 'anotación:valor' Por ejemplo -anota "Fecha:4/4/2012"
-mder
Cadena que identifica fin de un macro que debe remplazarse (e.g -mder @)
-formato
Formato al que debe convertirse cada dato encontrada en los archivos de entrada. Las posibilidades son texto, texinfo, tex y docbook. Por defecto se usa texto.
-planest
Archivo con plan de estudio (niveles, grados, asignaturas, DTD planest.dtd)
-datosind
Nombre de archivo con datos de individuo por defecto es `datos.ind´.
-mizq
Cadena que identifica inicio de un macro por remplazar (e.g -mizq @)
-anotaniv
Especifica anotación que debe coincidir con el nivel/grado/etapa y su valor. La sintaxis es 'nivel:valor' Por ejemplo -anotaniv "Grado:g4"
-o
Especifica forma del nombre del archivo de salida de cada individuo al procesar un grupo, puede ser "stdout" para indicar salida estándar o una cadena que puede incluir %d que indica nombre del directorio de los datos del individuo, %c que indica un número consecutivo generado automáticamente. Por defecto es stdout. e.g -o "/tmp/rep5-%c.tex"
-anotaper
Especifica anotación que debe coincidir con el periodo y su valor. La sintaxis es 'anotación:valor' Por ejemplo -anotaper "Periodo:1"
-texto
Texto de reporte para un tipo, se especifica como 'tipo :!: encabezado :!: pie', el encabezado y pie puede tener (dependiendo del tipo) los macros desc, val y otras anotaciones definidos en los archivos de entrada (ver también opciones -i y -d), puede tener también las secuencias de escape \n y \t. Por ejemplo si @ es la cadena que identifica inicio y fin de macro y si se han definido las anotaciones intensidad y Fallas en un tipo Asignatura: -texto "Asignatura: Calificaciones de @desc@. (@intensidad@) F:@Fallas@"
-prom
Especifica archivo en el que está el programa para computar promedios. Por ejemplo -prom "mediana.prom"
-prom_tipos
Especifica tipos en los que debe agregarse computo de promedios. Por ejemplo -prom_tipos "cadena:Asignatura;Reporte"
-prom_rango
Establece periodo inicial y periodo final para el computo de promedios. Separar uno de otro con ':'. Por ejemplo: -prom_rango "p/2006-1:p/2006-4"
Por cada estudiante, reporte lee información de diversas fuentes (línea de comandos, plan de estudio, archivos de clasificaciones, archivos de progreso) que organiza como ítems y datos a partir de los cuales puede calcular promedios y bien producir un archivo XML o bien efectuar remplazos en la plantilla. A continuación se presenta parte de un archivo XML generado:
<item tipo="Asignatura"> <dato tipo="Moderador.Nombres">Pigmaleon</dato> <dato tipo="intensidad">1</dato> <dato tipo="id">castellano</dato> <dato tipo="Fallas">3</dato> <dato tipo="computo">Deficiente</dato> <item tipo="Logro"> <dato tipo="id">m1-2001.cla:l1</dato> <dato tipo="desc">Logro 1</dato> <item tipo="Indicador"> <dato tipo="id">m1-2001.cla:l1.1</dato> <dato tipo="desc">Indicador 1-1 m1</dato> <dato tipo="val">I</dato> </item>
Note que la información se divide en ítems (de acuerdo al plan de estudios, las clasificaciones y la clasificación elegida para valorar con la opción ) y cada ítem tiene datos y posiblemente subítems. En el ejemplo presentado Logro es un subítem de Asignatura, e Indicador es un subítem de Logro.
Para remplazar en una plantilla es necesario que la plantilla se divida
en varias partes, una por cada item que reporte emplea
(verlos generando primero el XML). Cada una de esas partes puede incluir
porciones que se remplazaran con los datos recolectados y que se
distinguen con cadenas especiales a izquierda y derecha (ver opciones -mizq
y -mder
).
Por ejemplo si la información recolectada se ha dividido en ítems y
subítems así:
Reporte |- Nivel |- Grado |- Área |- Asignatura |- Logro |- Indicador
y se deseara generar un reporte como texto plano, podría emplearse una
plantilla para el item Asignatura como la siguiente (especificada con
el parámetro -texto
):
"Asignatura:!: @id@ (@Fallas@/@intensidad@) Moderador: @Moderador.Nombres@ :!: Promedio: @computo@ "
Que indica que se trata de plantilla par asignaturas, un encabezado y un pie para cada asignatura (se separa uno de otro con la cadena ":!:"). Note que se emplea como cadena especial @ tanto a izquierda como a derecha. Si reporte recolecta la información antes presentada en XML, el resultado tras el remplazo del encabezado sería:
castellano (3/1) Moderador: Pigmaleon
y el pie (después de presentar plantillas de subítems) sería:
Promedio: Deficiente
Por línea de comandos reporte puede recibir bien uno o más directorios
con información de estudiantes y/o uno o más archivos de grupos que
referencien datos de estudiantes.
Por cada directorio de estudiante que recibe
trata de abrir el archivo de individuos
datos.ind
(ver opción -datosind
) y
procesa progreso disponible en el mismo directorio.
Por cada archivo de grupo que recibe, realiza el proceso anterior
con cada individuo referenciado (suponiendo que el directorio donde
está el progreso es el mismo donde está el archivo de individuo).
La información de cada estudiante la agrega al item raíz `Reporte´, así
como las anotaciones que reporte recibe por línea de comandos:
periodo (ver opción -anotaper
), grado (
ver opción -anotagrado
) y otras (ver opción
-anota
) y las anotaciones que
haya en la raíz del plan de estudio. Del plan de estudios agrega
ítems por cada elemento curso que preceda o siga al grado especificado
en línea de comandos (con la opción -anotagrado
) y por cada
asignatura de ese grado.
Por cada asignatura agrega si es el caso información del moderador
en datos con identificación de la forma
Moderador.
(por ejemplo
id
Moderador.Nombres
si Nombres
fuera
un dato del archivo de individuo del moderador), por cada asignatura
que tenga asociado un archivo de progreso (con el atributo
prc
) agrega ítems de acuerdo a la información
que haya en el archivo de progreso del estudiante para el periodo
especificado en línea de comandos (con la opción -anotaper
).
De haberse especificado un programa para realizar promedios
(opción prom
) y tipos de item (opcion
prom_tipos
) en los cuales realizarlo, efectúa promedios
en cada item especificado y los agrega como datos de tipo
computo
.
El programa en lenguaje prom
recibirá las variables:
ejecutor
con valor reporte
tipo
con el tipo del item, por ejemplo Asignatura
si es un item y se especificó con la opción -prom_tipos
.
id_item
Una variable por cada dato del item, el nombre es el identificador y el valor el dato en sí.
val
Vector con las valoraciones recolectadas, indexadas en el orden en el que aparecen en los datos y subítems.
val_tipo
Vector con los tipos de ítems en los que hay valoraciones
(misma numeración de val
), por ejemplo un valor típico
es Indicador
.
val_id
Vector con identificaciones de los ítems en los que hay
valoraciones (misma numeración de val
).
reporte -anotaniv "Grado:g1" -anotaper "Periodo:p2001-1" \ -planest asig.planest -anota "Fecha: 20/4/2002" \ -texto "Reporte:!: Estudiante: @Apellidos@ @Nombres@ Grado: @Grado@ Periodo:@Periodo@ Fecha del boletín: @Fecha@\n:!:Fin del reporte\n" \ -texto "Asignatura:!: @desc@ (@Fallas@/@intensidad@)\n:!:" \ -texto "Indicador:!: @desc@ @val@\n:!:" \ -o "stdout" -mizq @ -mder @ t4.grp
Genera reportes por salida estándar de todos los estudiantes del grupo
t4.grp
para el periodo p2001-1
,
suponiendo que el grado es g1
. El plan de estudios
está en el archivo asig.planest
, la fecha del reporte
es 20/4/2002
. La salida generada para cada reporte es
un texto plano.
reporte -anotaniv "Grado:g1" -anotaper "Periodo:p2001-1" \ -planest asig.planest -anota "Fecha: 20/4/2002" \ -texto "Reporte:!: Estudiante: @Apellidos@ @Nombres@ Grado: @Grado@ Periodo:@Periodo@ Fecha del boletín: @Fecha@ Comentario: @Comentario@\n :!:Fin del reporte\n" \ -texto "Grado:!: Grado @desc@ Moderador: @Moderador.t1@\n:!:Fin de Grado" \ -texto "Asignatura:!:@desc@ (@Fallas@/@intensidad@) Moderador: @Moderador.t2@ Comentario: @Comentario@\n:!:" -texto "Indicador:!:@desc@ @val@\n Comentario: @Comentario@\n:!:" \ -mizq @ -mder @ estudiante/robcom
Genera un reporte a partir del progreso del directorio
estudiante/robcom
del grado g1
referenciado en el plan de estudios asig.planest
para el periodo p2001-1
.