top of page
Consulta de datos de Auditoría
Ramiro Pérez Acebo - Octubre 2013
 
 

En el Artículo anterior habíamos visto la forma de realizar una Auditoría de Altas, Bajas, Consultas y Modificaciones de registros. En este se mostrará la forma de visualizar la información registrada en aquellas auditorías.

 

Recordemos que la Auditoría registraba la información en 2 Tablas: una para la Estructura y otra para los Datos del registro auditado. El formulario de Consulta será de la Tabla de Datos Auditados y presentará los campos de 15 en 15 hasta completar todos los existentes en la Estructura de la Tabla en el momento de realizar la auditoría, pudiendo desplazarse por cada grupo de campos usando los botone situados en el lateral izquierdo del Formulario

En la cabecera del Formulario se puede ver, de izquierda a derecha el Módulo (BAS), Tabla (PEL_ESC) y Registro (104) auditado, así como el Usuario, IP, Tipo de auditoría y momento en que se realizó.

 

En la zona izquierda (datos numerados) se muestran:

 

1.   Campo inicial en pantalla

2.   Campo final en pantalla

3.   Número total de campos de la Tabla (en aquel momento)

4.   Botón para volver a los 15 campos anteriores

5.   Botón para pasar a los 15 campos siguientes

 

Esta es la forma en que se obtiene y presenta la información:

 

En el proceso On Show del Formulario se lanza un proceso (ver siguiente imagen) que hace dos tareas:

 

1.   Lee los datos de la Estructura (maestro del registro auditado) y devuelve dos variables que contienen los Nombres e Identificadores de los Campos en tramos de longitud fija 50 (50 caracteres para cada Nombre ó Identificador, hasta completar los existentes)

 

2.   Lee los datos del Registro auditado y devuelve una variable con 200 caracteres (longitud fija, asunto mejorable) para cada campo del mismo

En el Formulario se presenta esa información tramo a tramo (a continuación se muestran la fórmulas de cada columna para que se vean completas):

 

trimmedString ( mid  ( A_IDT_ACT    , xxx , 050 ) )

trimmedString ( mid  ( A_NOM_ACT , xxx , 050 ) )

trimmedString ( mid  ( A_DAT_ACT  , xxx , 200 ) )       xxx es el único valor que cambia para cada línea de las columnas

Puesto que en cada momento se van a presentar la Estructura y los Datos de 15 campos, el formulario debe tener una variable local que guarde el campo inicial desde el que se está mostrando información. Esa variable (N_POS_INI) es pasada al proceso que lee compone y devuelve los datos a mostrar.

Algunas variantes

 

Variante 1: mostrar Nombre y/o Identificador de los Campos

 

Puesto que en la Estructura de la Tabla se habían registrado tanto los Nombres como los Identificadores de los Campos (y ambos son devueltos por el proceso que lee los datos de Estructura), podremos mostrar el Formulario con cualquiera de estos 3 aspectos:

Variante 2: resaltar los campos modificados en las auditorías de Modificaciones

 

Al mostrar la auditoría correspondiente a una Modificación se puede cargar el registro actual y también el registro con la modificación anterior (se asume que la auditoría es continua) usando un Hermano Contiguo (con partes comunes Módulo, Tabla y Registro) entre auditorías de Modificaciones. Una vez tengamos cargados los datos de ambos registros, es relativamente sencillo compararlos campo a campo y detectar aquellos en los que cambió la información. Con eso y un poco de Css se pueden resaltar los campos modificados. En la siguiente imagen se muestra que en el campo “Tipo de Efecto” se grabó “Dia” el 22-09-2013 a las 19:47 y posteriormente fue modificado por “Noche” a las 19:48

Puesto que las modificaciones solo se resaltan el los registros de Auditoría de modificaciones, la lógica sería algo parecido a esto:

 

1.   Comprobamos si estamos en un registro de auditoría de modificación y si existe registro anterior con el que comparar

2.   Definimos el estilo normal y el estilo resaltado (es decir, establecemos los estilos Css)

3.   Leemos los campos que se están visualizando en el registro de modificación anterior

4.   Comparamos campo a campo y asignamos al control el estilo Css resaltado donde haya diferencias

Como siempre, se agradecerá cualquier sugerencia que pueda mejorar el sistema...

bottom of page