Diferencia entre revisiones de «blocks/custom reports/»

De MoodleDocs
(Otro trocito de la traducción)
(Primera versión completa (posiblemente con erratas:-))
Línea 129: Línea 129:
Si ha habilitado las opciones de exportar el informe en alguno de los formatos , podrá descargarlo pulsando sobre los enlaces que aparecen en la parte inferior del informe.
Si ha habilitado las opciones de exportar el informe en alguno de los formatos , podrá descargarlo pulsando sobre los enlaces que aparecen en la parte inferior del informe.


[[#Users_report | Ver pantalla mostrando el informe]]
[[#Informe_de_usuarios | Ver pantalla mostrando el informe]]


=== Crear un informe SQL ===
=== Crear un informe SQL ===
Línea 183: Línea 183:
# Edite la consulta SQL y ponga lo siguiente:
# Edite la consulta SQL y ponga lo siguiente:
<code sql>
<code sql>
SELECT COUNT(l.id) hits, l.course courseId, c.fullname coursename
SELECT COUNT(l.id) AS hits, l.course courseId, c.fullname coursename
FROM prefix_log l INNER JOIN prefix_course c ON l.course = c.id  
FROM prefix_log l INNER JOIN prefix_course c ON l.course = c.id  
%%FILTER_COURSES:l.course%%  
%%FILTER_COURSES:l.course%%  
Línea 193: Línea 193:
# Vaya a la pestaña "Ver informe" y verá también un filtro para indicar la fecha de inicio y fin a usar para el informe.
# Vaya a la pestaña "Ver informe" y verá también un filtro para indicar la fecha de inicio y fin a usar para el informe.


[[#SQL_report | Ver pantalla mostrando el informe]]
[[#Informe_SQL | Ver pantalla mostrando el informe]]


== Opciones avanzadas ==
== Opciones avanzadas ==
=== Plantillas ===
=== Plantillas ===


You can customize the report output using a template.
Se puede personalizar el informe usando una plantilla. Sólo hace falta ir a la pestaña llamada "Plantilla" y habilitarla, y a continuación rellenar cada una de las partes de la plantilla (cabecera, plantilla para un registro y pie)


Just enable the Template option in the same name tab.
Este es un ejemplo de código HTML para visualizar una lista de usuarios:


This is an example html code for displaying a list of users:
Cabecera:
 
Header:


<code html4strict>
<code html4strict>
Línea 213: Línea 211:
</code>
</code>


Record:
Plantilla para un registro:


<code html4strict>
<code html4strict>
<table width="100%">
<table width="100%">
<tr>
<tr>
<td><img src="http://yourmoodle.com/user/pix.php/[[id]]/f1.jpg"></td>
<td><img src="http://tu.sitio.moodle.es/user/pix.php/[[id]]/f1.jpg"></td>
<td><h2>[[Firstname]] [[Lastname]]</h2>
<td><h2>[[firstname]] [[lastname]]</h2>
City: [[City]]
Ciudad: [[city]]
</td>
</td>
</tr>
</tr>
Línea 227: Línea 225:
</code>
</code>


Footer:
Pie:


<code html4strict>
<code html4strict>
Línea 239: Línea 237:
</code>
</code>


=== Embedded reports ===
=== Informes incrustados ===
 
Un informe incrustado consiste en un juego de columnas de un informe que están incrustadas entro.
A embedded report consists in a report's set of columns that are embeeded in other report.
 
You can embed a user report into a course report, in this case, the resulting rows will be expanded duplicating each row for each user.


Imaging you have a courses report, you can embed a user report, every row of the course report will be cloned for each user.
Por ejemplo, puede incrustar un informe de usuario en un informe de curso. En este caso, las filas resultantes del curso se expandirán duplicando cada fila para cada usuario.


To embed a report just add a "Other report" column, a list of your reports will be showed.
Para incrustar un informe, simplemente añada una nueva columna de tipo "Columna de otro informe". Aparecerá una lista de informes existentes. Una vez seleccionado uno aparecerá la lista de columnas de dicho informe para que podamos escoger la deseada.


Inside a course report you can embed a user report and the other way.
Dentro de un informe de curso se puede incrustar un informe de usuario y viceversa. No es posible sin embargo incrustar informes de curso dentro de informes de curso, o informes de usuario dentro de informes de usuario.


== Developers documentation ==
== Documentación para desarrolladores ==


It's very easy to create new report types, components and plugins.
Es muy fácil crear nuevos tipos de informes, componentes y plugins.


'''Report''': A report plugin is a folder located at /report.
'''Informe''': Un informe es un directorio ubicado dentro de /reports (con respecto al directorio de instalación del bloque). Este directorio contiene un fichero llamado report.class.php con la definición de la clase hija que extiende de report_base.
This folder contains a .class.php file with the child - class of the report_base.


You only need to modify a few methos to add a new report type.
Sólo necesita modificar unos pocos métodos para añadir un nuevo tipo de informe. Por favor, eche una ojeada a cualquiera de los informes existentes. El informe SQL es un ejemplo de un informe no típico, mientras que los informes de usuarios y cursos son informes estándar.
Please, take a look to any of the current reports. The SQL report is an example of a non-typical report,  
meanwhile the users and courses reports are standard reports.


The best way to create a report is duplicate an existing one.
La mejor manera de crear un nuevo informe es duplicando uno existente.


'''Componente''': Un componente es parte de un informe, y puede ser usado por más de un informe. Además es un directorio ubicado dentro de /components (con respecto al directorio de instalación del bloque). Este directorio contiene un fichero llamado component.class.php con la definición de la clase hija que extiende de component_base.


'''Component''': A component is part of a report, a component may be used by more than one report.
El componente princial es el componente llamado "columns", que se usa para añadir las columnas de un informe. Otros componentes son los filtros, permisos, gráficas, cálculos, etc.
The main Component is the component Columns, that is used to add the columns of a report.


Others components are filters, permissions, plot, calculations..
La mejor manera de crear un nuevo componente es duplicando uno existente.


The best way to create a component is duplicate an existing one.
'''Plugin''': Un plugin es un módulo de un componente. Además es un directorio ubicado dentro de /components/nombre-del-componente/. Este directorio contiene un fichero llamado plugin.class.php con la definición de la clase hija que extiende de plugin_base.


Por ejemplo, el componente columna tiene unos pocos plugins (coursefield, userfield, etc..).


'''Plugin''': A plugin is a component module. The component column has a few of plugins (coursefield, userfield, etc..)
Un plugin funciona normalmente para un único tipo de informe, pero existen plugins que funcionan para más de un tipo de informe.
A plugins works usually for an unique report, but there are plugins that works for more than one report.
The best way to create a plugin is duplicate an existing one.


La mejor manera de crear un nuevo plugin es duplicando uno existente.


== Créditos ==
== Créditos ==
Juan Leyva [http://moodle.org/user/view.php?id=49568&course=1 Moodle profile]
Juan Leyva [http://moodle.org/user/view.php?id=49568&course=1 Perfil de Moodle]
[http://twitter.com/jleyvadelgado Follow me in Twitter]
[http://twitter.com/jleyvadelgado Sígueme en Twitter]
 
[[Category:Contributed code]]
[[Category:Contributed code]]


== Pantallazos ==
== Pantallazos ==
=== Informe de usuarios ===
=== Informe de usuarios ===
[[Image:block_custom_reports_sample_user_report.png|600px]]
[[Image:block_custom_reports_sample_user_report.png|600px]]

Revisión del 14:38 13 oct 2010

Instalación

  1. Descargar el fichero de instalación del bloque "Custom Report" y descomprimirlo en el directorio /blocks del directorio de instalación de Moodle.
  2. Iniciar sesión como administrador y pulsar en el enlace Notificaciones, dentro del bloque de administración del sitio.

Para más información véase

Resumen

Este bloque sirve para generar informes a medida de Moodle.

Ha sido diseñado de forma modular para permitir a los desarrolladores crear nuevos plugins en menos de una hora.

¿Quién puede crear informes a medida?

Cualquier usuario que tenga los permisos block/custom_reports:managereports, blocks/custom_reports:manageownreports' o block/custom_report/managesqlreports asignados en un CURSO o en el SITIO (estos permisos se definen durante la instalación del bloque).

¿Qué tipo de informes puedo crear?

  • Informes de cursos, con informaciones relativas a los cursos.
  • Informes de usarios, con informaciones relativas a los usuarios y su actividad en un curso.
  • Informes SQL personalizados, consultas SQL personalizadas. Este bloque puede usar las mismas consultas SQL que el plugin de consultas SQL personalizadas de Tim Hunt.

Nota para los desarrolladores: se pueden crear sus propios tipos de informes.

¿Quién puede ver los informes?

Cuando se crea un informe se puede elegir qué usuarios pueden verlo.

Los informes se muestra en un bloque del curso o en la portada del sitio.

Cómo crear un informe

Este es un proceso muy sencillo. Si va a crear un informe para un curso, necesita añadir el bloque en el curso y pulsar sobre "Gestionar informes". Por su parte, para los informes del sitio, añada el bloque en la portada y pulse sobre el enlace "Gestionar informes".

Necesita introducir un nombre, una descripción (opcional) y tiene que elegir el tipo de informe, paginación y formatos de exportación.

Dependiendo del tipo de informe elegido habrá más o menos pestañas. Estas son las pestañas para los informes de cursos y usuarios:

  • Columnas: Aquí se puede elegir las diferentes columnas del informe, dependiendo del tipo de informe (Nombre del curso, Nombre de pila del usuarios, etc.)
  • Condiciones: Aquí se pueden definir las condiciones (p.ej., sólo cursos de esta categoría, sólo usuarios de España, etc.)
  • Ordenación: Aquí se puede elegir como ordenar el informe usando los campos y direcciones (ascendente, descendente).
  • Filtros: Aquí se puede elegir qué filtros se visualizarán.
  • Plantilla: Se puede modificar la disposición del informe creando una plantilla.
  • Permisos: Aquí se puede escoger quien puede ver el informe.
  • Cálculos: Aquí se pueden añadir cálculos para las columnas; p.ej., media del número de usuarios matriculados en los cursos.
  • Gráficas: Aquí se pueden añadir gráficas al informe basadas en las columnas del informe y los valores.
  • Ver informes: Auto explicativa

Tutorial

Como crear un informe de usuario

Requisitos: Usuarios de España, pero no de Madrid, en este curso. Este informe se puede ver sólo por usuarios de España. Hay que visualizar un filtro basado en la ciudad del usuario. Se pide mostrar una gráfica de tarta con las ciudades de los usuarios. Se pide una tabla calculada que muestre el total de vistas de mensajes de foros El informe debe ordenarse por el apellido de los usuarios.

¡Veamos como es de fácil!

  1. Primero de todo, instale el bloque.
  2. Vaya al curso donde se quiere crear el informe.
  3. Añada una instancia del bloque "Informes personalizados".
  4. Pulse en "Gestionar informes".
  5. Pulse en "Añadir informe".
  6. Introduzca un nombre, una descripción y elija "Informes de usuarios" como tipo de informe.
  7. Opcionalmente puede marcar las casillas "Exportar en formato ODS" y "Exportar en formato XLS" si desea poder exportar el informe en alguno de estos formatos.
  8. Pulse el botón "Agregar".
  9. Se guardará el informe y se le redirigirá a la pestaña denominada "Columnas".

Añadir columnas

Aquí se puede efinir las propiedades de la tabla del informe como anchura, alineación, relleno de las celdas, espaciados de las celdas, etc.

  1. Añada una columna de tipo "Campo del perfiel de usuario"
  2. Teclee un nombre para esta columna y en el desplegable llamado "Columna" elija el valor "firstname". Puede dejar en blanco el resto de elementos. Pulse sobre el botón "Agregar".
  3. Repita el proces para los campos "lastname" y "city".
  4. Añada una nueva columna de tipo "Acciones de usuario en el módulo".
  5. Teclee un nombre parae esta columna y elija un módulo de la lista, en nuestro caso, el foro sobre el que queremos elaborar el informe. Pulse sobre el botón "Agregar".

Añadir condiciones

  1. Pulse en la pestaña "Condiciones".
  2. Añada una condición del tipo "Condición sobre campo de perfil del usuario".
  3. Escoga la columna "country" de la lista desplegable, el operador "=" e introduzca el valor "ES" (este es el código internacional para España tal y como lo almancena Moodle internamente). Pulse el botón "Agregar".
  4. Añada una nueva condición del tipo "Condición sobre campo de perfil del usuario".
  5. Escoja la columna "city", el operador "<>" e introduzca el valor "Madrid". Pulse el botón "Agregar".
  6. Añada una condición del tipo "Usuarios en el curso donde se ha creado el informe" y escoja el valor "Student". Pulse el botón "Agregar".

Estas son las condiciones principales del informe. Note que en la parte inferior hay una caja de texto llamada "Condición lógica" con el texto:

 c2 and c1 and c3

Aquí se puede definir una condición lógica cualquiera. En este caso no necesitamos editar esta condición, pero puede crear expresiones complejas como:

 (c1 and c2) or (c4 and c3)

Añadir ordenación

  1. Pulse en la pestaña "Ordenación".
  2. Añada una ordenación del tipo "Ordenación por campo de usuario".
  3. Escoja la columna "lastname" y la ordenación "ASC" (ascendente). Pulse "Agregar".

Añadir filtros

  1. Pulse en la pestaña "Filtros".
  2. Añáda un filtro del tipo "Filtro sobre campo del perfil del usuario".
  3. Escoja el campo "city". Pulse "Agregar".

Añadir permisos

  1. Pulse en la pestaña "Permisos".
  2. Añada un permiso del tipo "Valor en el perfil del usuario".
  3. Escoja la columna "country" e introduzca el valor "ES". Pulse el botón "Agregar".

Aquí puede añadir más tipos de permisos y la condición lógica que debe cumplirse en caso de tener más un tipo de permiso.

Añadir cálculos

  1. Pulse en la pestaña "Cálculos".
  2. Añada un cálculo de tipo "Suma".
  3. Escoja la columna que representa la acción del usuario en el módulo (en nuestro caso el foro).

Añadir gráficas

  1. Pulse en la pestaña "Gráficas".
  2. Elija el tipo de gráfico "Tarta".
  3. Escoja la columna "city" tanto para la opción "Nombre" como para la opción "Valor". Pulse el botón "Agregar".

Por último, añada unos cuantos usuarios en Moodle con el país "España" y diferentes ciudades: Madrid, Barcelona, Sevilla, etc. y pruebe a visualizar el informe pulsando en la pestaña "Ver informe".

Si ha habilitado las opciones de exportar el informe en alguno de los formatos , podrá descargarlo pulsando sobre los enlaces que aparecen en la parte inferior del informe.

Ver pantalla mostrando el informe

Crear un informe SQL

Puede encontrar un montón de informes SQL aquí: [1]

Puesto que este bloque puede utilizar los informes de consultas SQL personalizadas de Tim Hunt, puede utilizar cualquier consulta.

Recuerde añadir un filtro de tipo "Filtro de fechas" si va a usar informes con valores temporales.

Para crear un informe de este tipo:

  1. Pulse en el enlace "Gestionar informes" del bloque de informes personalizados
  2. Pulse en "Añadir informe".
  3. Introduzca un nombre y una descripción para el informe y seleccione "Informe SQL" como el tipo del informe.
  4. Opcionalmente puede marcar las casillas "Exportar en formato ODS" y "Exportar en formato XLS" si desea poder exportar el informe en alguno de estos formatos.
  5. Pulse el botón "Agregar".
  6. Se guardará el informe y se le redirigirá a la pestaña denominada "Sentencia SQL".
  7. Añada esta consulta (Actividad de los cursos):

SELECT COUNT(l.id) AS hits, l.course courseId, c.fullname coursename FROM prefix_log l INNER JOIN prefix_course c ON l.course = c.id GROUP BY courseId ORDER BY hits DESC y pulse el botón "Guardar cambios".

  1. Vaya a la pestaña "Cálculos".
  2. Añada un cálculo de tipo "Suma" y escoja la columna "hits". Pulse el botón "Agregar".
  3. Vaya a la pestaña "Gráficas".
  4. Elija el tipo de gráfico "Tarta".
  5. Escoja la columna "hits" tanto para la opción "Nombre" como para la opción "Valor". Pulse el botón "Agregar".
  6. Pruebe a visualizar el informe pulsando en la pestaña "Ver informe".

Ahí lo tiene, un informe con una gráfica y cálculos basados en una consulta SQL.

Puede añadir un filtro de cursos, es muy sencillo:

  1. Vaya a la pestaña "Filtros" y añada un filtro de tipo "Cursos".
  2. Edite la consulta SQL y ponga lo siguiente:

SELECT COUNT(l.id) AS hits, l.course courseId, c.fullname coursename FROM prefix_log l INNER JOIN prefix_course c ON l.course = c.id %%FILTER_COURSES:l.course%% GROUP BY courseId ORDER BY hits DESC Observe que estamos añadiendo un token llamado %%FILTER_COURSES:l.courseid%%

  1. Vaya a la pestaña "Ver informe" y verá un filtro de cursos. Elija un curso y pulse en "Añadir" para ver el informe filtrado por ese curso.

También puede añadir un filtro de tipo "Filtro de fechas" para filtrar por fecha de inicio y fin:

  1. Vaya a la pestaña "Filtros" y añada un filtro de tipo "Filtro de fechas".
  2. Edite la consulta SQL y ponga lo siguiente:

SELECT COUNT(l.id) AS hits, l.course courseId, c.fullname coursename FROM prefix_log l INNER JOIN prefix_course c ON l.course = c.id %%FILTER_COURSES:l.course%% %%FILTER_STARTTIME:l.time:>%% %%FILTER_ENDTIME:l.time:<%% GROUP BY courseId ORDER BY hits DESC Observe que estamos añadiendo un token llamado %%FILTER_STARTTIME:l.time:>%% %%FILTER_ENDTIME:l.time:<%%

  1. Vaya a la pestaña "Ver informe" y verá también un filtro para indicar la fecha de inicio y fin a usar para el informe.

Ver pantalla mostrando el informe

Opciones avanzadas

Plantillas

Se puede personalizar el informe usando una plantilla. Sólo hace falta ir a la pestaña llamada "Plantilla" y habilitarla, y a continuación rellenar cada una de las partes de la plantilla (cabecera, plantilla para un registro y pie)

Este es un ejemplo de código HTML para visualizar una lista de usuarios:

Cabecera:

##reportname##

Plantilla para un registro:

<img src="http://tu.sitio.moodle.es/user/pix.php/id/f1.jpg">

firstname lastname

Ciudad: city


Pie:

    1. graphs##



    1. exportoptions##

Informes incrustados

Un informe incrustado consiste en un juego de columnas de un informe que están incrustadas entro.

Por ejemplo, puede incrustar un informe de usuario en un informe de curso. En este caso, las filas resultantes del curso se expandirán duplicando cada fila para cada usuario.

Para incrustar un informe, simplemente añada una nueva columna de tipo "Columna de otro informe". Aparecerá una lista de informes existentes. Una vez seleccionado uno aparecerá la lista de columnas de dicho informe para que podamos escoger la deseada.

Dentro de un informe de curso se puede incrustar un informe de usuario y viceversa. No es posible sin embargo incrustar informes de curso dentro de informes de curso, o informes de usuario dentro de informes de usuario.

Documentación para desarrolladores

Es muy fácil crear nuevos tipos de informes, componentes y plugins.

Informe: Un informe es un directorio ubicado dentro de /reports (con respecto al directorio de instalación del bloque). Este directorio contiene un fichero llamado report.class.php con la definición de la clase hija que extiende de report_base.

Sólo necesita modificar unos pocos métodos para añadir un nuevo tipo de informe. Por favor, eche una ojeada a cualquiera de los informes existentes. El informe SQL es un ejemplo de un informe no típico, mientras que los informes de usuarios y cursos son informes estándar.

La mejor manera de crear un nuevo informe es duplicando uno existente.

Componente: Un componente es parte de un informe, y puede ser usado por más de un informe. Además es un directorio ubicado dentro de /components (con respecto al directorio de instalación del bloque). Este directorio contiene un fichero llamado component.class.php con la definición de la clase hija que extiende de component_base.

El componente princial es el componente llamado "columns", que se usa para añadir las columnas de un informe. Otros componentes son los filtros, permisos, gráficas, cálculos, etc.

La mejor manera de crear un nuevo componente es duplicando uno existente.

Plugin: Un plugin es un módulo de un componente. Además es un directorio ubicado dentro de /components/nombre-del-componente/. Este directorio contiene un fichero llamado plugin.class.php con la definición de la clase hija que extiende de plugin_base.

Por ejemplo, el componente columna tiene unos pocos plugins (coursefield, userfield, etc..).

Un plugin funciona normalmente para un único tipo de informe, pero existen plugins que funcionan para más de un tipo de informe.

La mejor manera de crear un nuevo plugin es duplicando uno existente.

Créditos

Juan Leyva Perfil de Moodle Sígueme en Twitter

Pantallazos

Informe de usuarios

block custom reports sample user report.png

Informe SQL

block custom reports sample sql report.png