Los reports en Ahora ERP se vinculan habitualmente a un objeto o colección. Por tanto, aunque no vengan activos por defecto, la colección de reports de la carpeta JORNADAS existente a día de hoy en el repositorio de AHORA ERP son a priori vinculables al objeto EMPLEADO o colección EMPLEADOS.


Si lo que queremos es poder imprimir uno de esos reports a partir del botón IMPRIMIR ubicado en el pie del formulario de la pantalla de Administración del Control de Presencia...


image


...entonces la vinculación se debe realizar sobre el formulario además de usar un objeto especial.


Acudiremos a la gestión de listados de la herramienta ADMON, sección LISTADOS y escogeremos el objeto "OBJETOGENERICO".



Al dar de alta un nuevo report desde esta sección sobre el ObjetoGenerico, habremos de activar el check FORMULARIO e indicar el nombre del formulario sobre el que realizamos la vinculación. El nombre del formulario se puede conocer si abrimos el CTRL+F10 sobre la pantalla de Administración del Control de Presencia. En este caso se puede apreciar que se llama "frmAdministracion".


¿QUÉ HACER SI NO FUNCIONA EL FILTRO DE FECHAS CUANDO LANZO UN REPORT DESDE ESTE FORMULARIO?


Es muy importante que la tabla que se indique para la vinculación del report sea la adecuada. Es interesante que si se dispone del editor/diseñador de Crystal Reports se abra el report que se quiere vincular para revisar qué tablas incluye su consulta interna, de modo que podamos escoger una tabla que corresponda con la del objeto destino y que a su vez esté contenida en el report.


En el caso particular de este formulario de Administración del Control de presencia, ocurre que tiene un filtro de fechas en la parte inferior izquierda que afecta a cualquier report que se pretenda lanzar desde el botón imprimir. Cuando el ERP envía el filtro de fechas al report, lo envía sin horas, es decir, en formato aaaammdd o dd-mm-aaaa. Pero por ejemplo, en la tabla donde se van almacenando los fichajes de los empleados EMPLEADOS_PRESENCIA se guardan las fechas con formato fecha-hora. Esto puede hacer que el filtro que establecemos en el formulario no funcione correctamente porque no entiende los datos pasados como filtro.


En la imagen que se muestra arriba, la tabla que se ha informado en realidad es una vista personalizada llamada VPERS_EMPLEADOS_PRESENCIA. Se pretende vincular el report "Control de Presencia.rpt" que devuelve un listado de fichajes de empleados y que funcione con el filtro comentado.


La vista personalizada cuyo script se muestra a continuación usa la tabla Empleados_Presencia que es donde se almacenan los fichajes de los empleados. También devuelve formateadas sin horas los datos FechaEntrada y FechaSalida puesto que el dato se guarda en tabla con Fecha-hora pero el filtro de fechas del formulario es sin horas, de modo que de esta forma facilitamos que el report reciba las fechas sin que contengan horas.

Create VIEW [dbo].[VPERS_EMPLEADOS_PRESENCIA]
AS

SELECT E.IdDoc, E.IdEmpleado, CONVERT(varchar,E.FechaEntrada,112) AS FechaEntrada,CONVERT(varchar,e.FechaSalida,112) as FechaSalida
FROM Empleados_Presencia E

go

zpermisos VPERS_EMPLEADOS_PRESENCIA


Después hay que usar esta vista dentro del diseño del report, es decir, personalizarlo. Deben arrastrarse los campos Idempleado, FechaEntrada y FechaSalida de la vista aunque sea a secciones que no se pinten,  para que la Select que monta el Report también contenga estos campos y que posteriormente funcione el filtro.