DOCAP. Impress + Writer
Ya vimos una primera formulación de un docap complejo que combina Calc con Writer. Analizaré en esta entrada otra formulación diferente en cuanto a uno de los servicios: utilizo Impress en lugar de Calc. Este cambio se explica fácilmente: ahora necesito las funcionalidades de Impress como recurso de manejo de información visual.
Aunque el esquema de funcionamiento es similar al modelo Calc + Writer, también se aprecian diferencias también, motivo por el cual he creído conveniente crear esta entrada.
Similitudes: Ahora Impress hace de servicio principal, lo que implica que no tenemos, como en el caso anterior, un gestor + un soporte para la salida de la información. Ahora tenemos un servicio-soporte para la exposición de la información y la aplicación de la actividad (Impress) y otro para la misma función que ya cumplió antes. Y en el intermedio el procesamiento de los datos recogidos en la fase inicial de la ejecución.
Podemos representar lo anterior de forma simplificada mediante este esquema...
... entendiendo el condicional como mera representación de la fase de procesamiento, ya que es mucho más complejo, como veremos a continuación.
- La introducción de datos de identificación, que se realiza mediante un cuadro de diálogo asociado a la presentación
- Y la ejecución de la tarea, que se resuelve mediante comandos asociados a las figuras de cada diapositiva
- El paso de los datos de identificación y de puntuación del ítem a matrices de datos
- El conteo de aciertos
- La calificación y valoración del resultado
- Y la composición del texto a grabar en el documento de salida
- El acceso al documento-base y su apertura en modo plantilla (aquí se presenta una diferencia importante respecto al modelo de docap anterior, en el que se creaba ese documento)
- Y el traslado de datos a las posiciones de marcador previamente establecidas en dicho documento (esta es una posibilidad que permite trabajar con documentos definidos previamente).
DialogLibraries.LoadLibrary("Standard")oPresentaCB=CreateUNODialog(DialogLibraries.Standard.getByName("DlgIdAl"))oPresentaCB.Execute()
- Pasar los datos de los controles del cuadro de diálogo a una matriz string (sDatos()) para facilitar su procesamiento y, con ello, identificar al sujeto que realiza la actividad.
oDato(0) = oPresentaCB.getControl("DtFechaInfo")sDato(0)= oDato(0).Text
- Contabilizar los resultados y analizarlos en términos cuantitativos mediante el uso de instrucciones y estructuras OOo Basic.
For i = 0 To 11Suma = Suma + Puntos(i)Next
- Con ambos, y mediante la concatenación de textos y variables, se elabora el contenido que posteriormente será traslado al soporte writer.
If Porcentaje > 80 ThenValoracion= "Dado que el porcentaje de acierto es superior al 80%, se considera que el/la alumn@ comprende adecuadamente los conceptos básicos trabajados"ElseValoracion= "Dado que el porcentaje de acierto es inferior al 81%, se considera que el/la alumn@ no comprende suficientemente los conceptos básicos trabajados"End If
Finalmente, el output empieza por el acceso al documento-base...
sRutaAcceso = ConvertToUrl("D:InfoCB.odt")
oDocModelo = StarDesktop.loadComponentFromURL( sRutaAcceso, "_blank", 0, mOpciones() )
... y finaliza con el traslado del contenido a las posiciones (marcadores de texto) que se establecieron en el documento-base en el momento en que éste se creó.
oMrcFechaInfo = oDocModelo.getBookmarks().getByName("MarcaFechaInfo")oMrcFechaInfo.getAnchor.setString(sDato(0))
No hay comentarios:
Publicar un comentario
Comenta esta entrada