Yuxian: socio de contenido de CSDN, nuevo mentor estrella de CSDN, 51CTO (principal celebridad + blogger experto), entusiasta del código abierto de github (desarrollo secundario del código fuente de cero, arquitectura back-end del juego https://github.com/Peakchen)
JMReport es un diseñador de informes y motor de informes basado en Java. Proporciona una gran cantidad de herramientas y funciones de diseño de informes, y puede generar archivos de informes de alta calidad (como PDF, Excel, etc.) para fines de análisis, impresión y exportación de datos. Los principios para integrar el diseñador de informes JMReport e implementar la lista anidada de listas de informes en Spring Boot son los siguientes:
-
Agregue la dependencia de JMReport Maven: introduzca la biblioteca JMReport en el proyecto agregando la dependencia de JMReport Maven en el archivo pom.xml del proyecto Spring Boot.
-
Configure JMReport: en el archivo de configuración (application.properties o application.yml) del proyecto Spring Boot, configure los parámetros relevantes de JMReport, como la ruta del archivo de configuración de JMReport.
-
Cree una plantilla de informe: use el diseñador JMReport para crear una plantilla de informe, incluida la definición de la estructura, el estilo y la fuente de datos del informe. En la plantilla de informe, la estructura de la lista anidada se puede definir para realizar el anidamiento de la lista de informes.
-
Crear controlador: cree una clase de controlador Spring MVC para procesar solicitudes de informes y datos. En el controlador, puede llamar al servicio de informes para generar un informe y devolver el archivo de informe generado al cliente.
-
Crear servicio de informes: cree una clase de servicio de informes para cargar archivos de plantillas de informes, completar datos y generar archivos de informes. En Reporting Service, puede usar las API proporcionadas por JMReport, como JasperReport, JasperPrint y JasperExportManager, para compilar plantillas, completar datos y exportar informes.
Escenas a utilizar:
- Generación de informes de datos: es adecuado para escenarios en los que es necesario generar varios tipos de archivos de informes (como PDF, Excel, etc.) para mostrar funciones como análisis de datos, estadísticas e impresión.
- Exportación de datos: los datos se pueden exportar como un archivo de informe, lo cual es conveniente para que los usuarios analicen y muestren datos sin conexión.
- Impresión de datos: los datos se pueden imprimir en forma de informe, proporcionando un efecto de impresión más bonito y profesional.
Para integrar el diseñador de informes JMReport en Spring Boot y realizar la lista anidada de listas de informes, puede seguir los pasos a continuación:
Paso 1: Agregue la dependencia de Maven de JMReport
Agregue la dependencia de Maven de JMReport al archivo pom.xml del proyecto Spring Boot:
<dependencies>
<!-- 其他依赖 -->
<dependency>
<groupId>com.jmrosoft</groupId>
<artifactId>jmreport-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
Paso 2: Configure JMReport
Agregue la configuración de JMReport en el archivo application.properties o application.yml del proyecto Spring Boot:
aplicaciones.propiedades:
# JMReport配置
jmreport.config-path=/path/to/jmreport/config
o aplicación.yml:
# JMReport配置
jmreport:
config-path: /path/to/jmreport/config
Reemplácelo /path/to/jmreport/config
con la ruta del archivo de configuración de JMReport.
Paso 3: Cree una plantilla de informe
Use el diseñador JMReport para crear su plantilla de informe y guárdela como un archivo JRXML. Asegúrese de que su plantilla de informe incluya definiciones para listas anidadas.
Paso 4: Cree un controlador
Cree una clase de controlador Spring MVC para procesar solicitudes de informes y datos.
@RestController
@RequestMapping("/reports")
public class ReportController {
@Autowired
private ReportService reportService;
@GetMapping("/{reportName}")
public ResponseEntity<byte[]> generateReport(@PathVariable("reportName") String reportName) {
// 调用报表生成服务
byte[] reportBytes = reportService.generateReport(reportName);
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
headers.setContentDispositionFormData("attachment", reportName + ".pdf");
return new ResponseEntity<>(reportBytes, headers, HttpStatus.OK);
}
}
Paso 5: Crear un servicio de informes
Cree una clase de servicio de informes para cargar plantillas de informes y generar informes.
@Service
public class ReportService {
public byte[] generateReport(String reportName) {
try {
// 加载报表模板
InputStream reportTemplate = getClass().getResourceAsStream("/path/to/report/templates/" + reportName + ".jrxml");
// 构建报表数据
Map<String, Object> reportData = new HashMap<>();
// 设置报表数据...
// 生成报表
JasperReport jasperReport = JasperCompileManager.compileReport(reportTemplate);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, reportData, new JREmptyDataSource());
byte[] reportBytes = JasperExportManager.exportReportToPdf(jasperPrint);
return reportBytes;
} catch (Exception e) {
// 处理报表生成异常
e.printStackTrace();
throw new RuntimeException("Failed to generate report: " + e.getMessage());
}
}
}
Paso 6: Acceda al informe
Puede /reports/{reportName}
acceder , donde {reportName}
se encuentra el nombre de su informe.
Por ejemplo, si tiene un nestedListReport
informe llamado , puede acceder a él con la siguiente URL:
http://localhost:8080/reports/nestedListReport
El navegador descargará y mostrará el informe generado.
Asegúrese de reemplazar la ruta y el nombre de archivo en el código anterior con la ruta y el nombre reales de la plantilla de informe.
De esta forma, el diseñador de informes JMReport se puede integrar en Spring Boot y se puede realizar la lista anidada de listas de informes.
Aquí hay algunos enlaces de literatura y materiales relevantes para mayor estudio y referencia:
- Sitio web oficial de JMReport: https://www.jmrosoft.com/ ↗
- Documentación de desarrollo de JMReport: https://www.jmrosoft.com/doc/ ↗
- Repositorio JMReport GitHub: https://github.com/jmrosoft/jmreport ↗
Con respecto a los productos actuales que utilizan el diseñador de informes JMReport, es posible que no se conozca el uso específico debido a la confidencialidad comercial u otras razones. Sin embargo, como motor y diseñador de informes maduro, JMReport se ha utilizado ampliamente en varios sistemas y software empresarial, incluidos, entre otros, los siguientes campos:
- Sistema de gestión empresarial (como ERP, CRM, etc.)
- Plataforma de visualización de informes y análisis de datos
- Reporte de datos y análisis estadístico para las industrias financieras y de seguros
- Reporte de datos y análisis estadístico para las industrias médica y farmacéutica
- Herramientas de informes y análisis de datos para la educación y el mundo académico