springboot integra jmreport para realizar una lista anidada de la lista de informes

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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/configcon 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 nestedListReportinforme 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:

  1. Sitio web oficial de JMReport: https://www.jmrosoft.com/ ↗
  2. Documentación de desarrollo de JMReport: https://www.jmrosoft.com/doc/ ↗
  3. 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

Supongo que te gusta

Origin blog.csdn.net/feng1790291543/article/details/132245739
Recomendado
Clasificación