You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Jaspersoft Studio输入控件参数传递给Java Bean集合数据源

Jasper Reports 报表参数传递到Java Bean数据源实现方案

完全可以实现该需求,按以下步骤操作即可:

步骤1:改造Java工厂类

修改EmployeeFactory,新增支持传入过滤参数的静态方法,同时改用预编译SQL避免SQL注入,改造后的代码示例如下:

public class EmployeeFactory {
    static final String DB_URL = "jdbc:mysql://localhost:3306/jasper";
    static final String USER = "root";
    static final String PASS = "root";
    // 替换为带占位符的过滤SQL
    static final String FILTER_QUERY = "SELECT name,salary FROM Employees WHERE salary > ?";

    // 新增带过滤参数的静态方法
    public static Collection<Employee> getFilteredCollection(Double salaryThreshold) {
        List<Employee> result = new ArrayList<>();
        try(
                Connection connection = DriverManager.getConnection(DB_URL, USER, PASS);
                PreparedStatement pstmt = connection.prepareStatement(FILTER_QUERY)
        ){
            // 给SQL占位符赋值
            pstmt.setDouble(1, salaryThreshold);
            ResultSet resultSet = pstmt.executeQuery();

            while(resultSet.next()) {
                Employee employee = new Employee(
                        resultSet.getString("name"),
                        resultSet.getDouble("salary"),
                        ""
                );
                result.add(employee);
            }
        }catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }
}

修改完成后重新将Java项目打包为jar包,更新Jasper项目类路径下的旧jar文件。

步骤2:在Jasper报表中定义输入参数

打开你的jrxml报表文件,新建一个报表参数:

  • 参数名:SALARY_THRESHOLD
  • 参数类型:java.lang.Double
  • 勾选「用作提示」选项,运行报表时就会自动弹出输入控件供用户填写阈值。

步骤3:配置报表数据源调用逻辑

默认的「Collection of JavaBeans」数据适配器不支持直接传递参数给工厂方法,推荐直接通过报表数据源表达式调用自定义工厂方法,操作如下:
在报表属性的「数据源」配置项中,选择「使用表达式创建数据源」,填入以下表达式:

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(com.yourpackage.EmployeeFactory.getFilteredCollection($P{SALARY_THRESHOLD}))

注意将com.yourpackage替换为你EmployeeFactory类实际的包路径。

完成以上配置后,运行报表时输入薪资阈值,就会自动将参数传递给Java工厂类执行过滤查询,返回符合条件的数据填充报表。


内容的提问来源于stack exchange,提问作者chaitanya guruprasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:06:08