目录
一、系统环境以及测试内容
1.系统环境
- IntelliJ IDEA 2019.1.2
- JRE: 1.8.0_202-release-1483-b49 amd64
- Windows 10 64位
- CRYSTAL REPORTS 2008 版本12.0.0.549
- SpringBoot 2.3.4.RELEASE
- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
2.测试内容
- SpringBoot调用水晶报表文件导出PDF
- 使用JDBC驱动连接oracle数据库
- 参数传值
- 数据筛选
- 图片动态切换
二、设计水晶报表
1.CR2008配置jdbc
(1)在数据库专家中创建新的连接
注意:如果使用Oracle服务器,在SpringBoot项目中会报错:
com.businessobjects.reports.jdbinterface.common.DBException: 查找 JNDI 名称(orcl)时出错

(2)输入JDBC连接信息
jdbc:oracle:thin:@localhost:1521:orcl
oracle.jdbc.driver.OracleDriver

(3)输入用户名密码

(4)解决”未找到JDBC”驱动错误
如果没有配置ojdbc5.jar,会报错

(5)配置JDBC驱动
下载数据库版本对应的ojdbc5.jar
jar包下载地址(使用ojdbc6.jar没有效果)
http://www.oracle.com/technetwork/cn/articles/oem/jdbc-112010-094555-zhs.html


将ojdbc5.jar放在安装目录的...\java\lib目录下
C:\Program Files (x86)\Business Objects\Common\4.0\java\lib
修改配置文件CRConfig.xml,在<Classpath>中添加ojdbc5.jar文件路径,重启CR2008即可连接到数据库
C:\Program Files (x86)\Business Objects\Common\4.0\java\CRConfig.xml

修改配置文件

2.报表设计
(1)新建test.rpt报表
数据展示,连接jdbc,选择DEPT表,将字段拖动到详细资料;
插入图片并设置图形位置
设计选择公式筛选数据。


(2)添加参数字段
添加2个参数
deptNoPar:数据筛选
imagePath:动态更改图片

(3)设置图片地址
使用参数imagePath



(4)选择公式
数据筛选使用参数deptNoPar

(5)报表预览

三、SpringBoot项目搭建
1.新建SpringBoot项目
(1)pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.asyf</groupId>
<artifactId>crytstal-report-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!--设置为 true 则跳过测试-->
<skip>true</skip>
<compilerArgs>
<arg>-extdirs</arg>
<arg>${project.basedir}/lib</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
<resources>
<!--拷贝jar--

本文介绍如何在SpringBoot项目中集成水晶报表,并实现基于JDBC的数据库连接、参数传递及PDF导出等功能。
最低0.47元/天 解锁文章
2198





