Dependiendo de como tenga realizado si sitio hay varios plugin que permiten generar reportes tanto en PDF comoen EXCEL lo complejo es ver la cantidad de informacion que quiere pasar a estos resportes, toca generar una muy buena consulta en MYSQL para que no valla a tumbar el sitio ni valla a generar problemas de sobre carga, para el modulo de vista propongo realizarlo con AJAX en el cual se genera una consulta de los registros expecificos que usted requiere, un ejemplo si usted tiene una base de datos con 1000 registros al cliente solo le mostrariamos los primeros 10 o 20 y cuanto el pase a la siguiente pagina volveriamos a consumir la base de datos con la siguiente cantidad de registros, esto se hace por medio de ajax lo cual genera un sitio mucho mas rapido y sin sobre cargas, para el tema de los reportes propongo generar un reporte con un crontab en linux el cual me genere un reporte cada hora para que el sistema no me lo genere en la vista del cliente si no lo llame ya armado, aunque claro esto depende de las necesidades que ustedes tengan, si necesitan que el reporte sea con la informacion mas actual podrias analizar otra solucion, como un reporte que se envie a un correo y se genere por debajo.