Informes SQL personalizados |
Los informes SQL personalizados permiten al usuario crear informes que se ajusten a sus necesidades. Esto se consigue escribiendo un script SQL que se comunica directamente con la base de datos, y que se añade al árbol de navegación de MMEX.
La interfaz del gestor de informes SQL personalizados posee las siguientes características:
Campo de texto Título del informe |
Se utiliza para darle un título y acceder al script en el árbol de navegación. |
Casilla de verificación Encabezado |
Se puede añadir un encabezado sin un script asociado. Un elemento del menú tiene un script asociado. Cuando está marcado: Permite usar un título como encabezado en el árbol de navegación. |
Casilla de verificación Submenú |
Cuando está marcado: El título aparecerá en el árbol de navegación como un submenú bajo el elemento anterior, el cual no tiene que ser necesariamente un encabezado. |
Campo de texto Código del script SQL |
En este campo se escribe el propio script. |
Botón Cargar |
Cargar un script ya existente desde un fichero. |
Botón Guardar |
Guardar los cambios realizados sobre un script. |
Botón Ejecutar |
Permite ejecutar el script sin cerrar la ventana. |
Botón Limpiar |
Limpia el campo de código del script SQL. |
Botón Cerrar |
Cierra la ventana sin guardar. Es una manera de cancelar. |
Una vez que se crea el script y se guarda en MMEX, se puede acceder fácilmente al informe a través del árbol de navegación.
La creación de un nuevo informe SQL personalizado se realiza mediante:
La opción del menú: Herramientas –> Informes SQL personalizados
El icono de la barra de herramientas
Utilizando la opción del menú: Ayuda –> Informar de problemas o dar retroalimentación
Buscar el foro denominado: Custom SQL Report Scripts
Recomendaciones:
Para scripts nuevos, utilice un título práctico para su informe.
Guarde el script antes de ejecutarlo en el Gestor de informes SQL personalizados.
Nota: Los errores en el script pueden hacer que se pierda si no se guarda primero.
Utilice el menú emergente del árbol de navegación para editar el fichero si es necesario.
Nota:
Todos los títulos de los scripts se guardan en un fíchero de índice llamado: CustomSQLReportIndex.txt
Los informes SQL personalizados se pueden eliminar borrando el fichero de índice.
Los informes se pueden reorganizar modificando directamente el fichero de índice.
Los informes creados por el gestor de informes personalizados se graban permanentemente en el árbol de navegación. Al informe se le da un nombre al guardarse. Mediante el título del informe, el usuario puede:
Ejecutar el informe
Editar el informe
Borrar el informe
Se puede guardar un título de informe sin un script SQL asociado. Se utiliza como título para agrupar varios scripts. En ese caso el árbol de navegación se comporta de forma similar a los informes estándar. Los informes sólo se pueden anidar en un nivel de profundidad.
Para poder crear ficheros de
script, necesitamos entender la estructura subyacente de la base de
datos. Esta estructura se muestra a continuación:
Estructura básica de MMEX |
|
Información de tabla
Esta imagen muestra los nombres de tabla con sus campos asociados, y los enlaces que conectan las tablas mediante sus claves primarias.
Nombres de tabla |
Descripción de la tabla |
InfoTable_V1 |
Contiene ajustes específicos de la base de datos. |
CurrencyFormats_V1 |
Contiene los valores de las divisas de la base de datos. |
AccountList_V1 |
Contiene todos los nombres de cuenta, y los datos específicos de cada cuenta. |
Payee_V1 |
Contiene todos los beneficiarios, y la última categoría usada por cada uno. |
Category_V1 |
Es una lista de todas las categorías del sistema. |
SubCategory_V1 |
Es una lista de todas las subcategorías del sistema. |
CheckingAccount_V1 |
Es la tabla principal donde se mantienen todas las transacciones. |
SplitTransactions_V1 |
Contiene los datos asociados a las transacciones divididas. |
Tablas no mostradas en el diagrama |
|
Stock_V1 |
Utilizada para acciones y enlazada con la tabla: AccountList_V1 mediante el campo HeldAt |
Assets_V1 |
Contiene todos los detalles de los activos |
BudgetYear_V1 |
El año específico de un presupuesto |
BudgetTable_V1 |
Detalles de presupuestos |
BudgetSplitTransactions_V1 |
Transacciones divididas para presupuestos |
BillDeposit_V1 |
Contiene todos los detalles de las transacciones periódicas. Similar a la tabla: CheckingAccountV1 |
Intentar enseñar programación SQL sobrepasa el alcance de este fichero de ayuda, pero a continuación se encuentra una guía rápida para comprender los scripts, y posiblemente crear los suyos propios si los necesita.
Al crear scripts, el principal comando que usaríamos es la sentencia SELECT.
El formato básico es:
SELECT <nombre> |
<nombre> representa el nombre de los campos de la tabla, o * para todos los nombres. |
FROM <tabla> |
<tabla> representa la tabla o tablas sobre las que se dirige el comando. |
WHERE <condición> |
[opcional] aquí comprobamos alguna condición. |
ORDER BY <parámetro> |
[opcional] ordena la salida por este parámetro. |
Ejemplos:
SELECT * FROM
AccountList_V1;
* Mostraría todos los campos de la tabla:
AccountList_V1
SELECT AccountName, Status
FROM AccountList_V1 where AccountType = “Term”;
*
Mostraría los nombres y el estado de las cuentas a plazo de la tabla: AccountList_V1
Aquí se describe un script más complejo:
Aunque este script es poco útil, sirve para describir algunos principios básicos. |
select
pT.PayeeName payee, |
En el ejemplo vemos que el nombre de la tabla es: payee_V1 y el nombre del campo es PayeeName
En la cláusula FROM vemos el nombre de la tabla: payee_V1 pT
*
Aquí el pT del final actúa como un alias para el nombre de tabla.
Ahora en el SELECT vemos:
pT.PayeeName payee
* El pT. se utiliza para establecer la tabla a la que pertenece el campo PayeeName
* El payee del final es un alias para la combinación tabla.nombredecampo
Podemos separar tablas y nombres de campos con comas, como vemos en este ejemplo.
En la cláusula WHERE vemos: pT.categID = cT.categID
* Aquí hacemos una comprobación para asegurarnos que los dos campos son el mismo en ambas tablas.
Ahora en la cláusula ORDER BY podemos utlizar el nombre simplificado de payee que definimos en la cláusula SELECT.
Espero que esta pequeña introducción aclare un poco el funcionamiento de los scripts que se ven en la sección Custom SQL Report Scripts del foro de MMEX.