Java 如何在自定义JRDatasource中使用jasper参数?

Java 如何在自定义JRDatasource中使用jasper参数?,java,jasper-reports,datasource,Java,Jasper Reports,Datasource,我正在使用Jaspersoft Studio 6.11和Jasper服务器7.5.0 我想创建一个使用报表参数的数据源。 我的数据源基于以下示例: 公共类MyImplementation实现JRDataSource{ //这应该从报告参数$P{param}=“Frank,Joseph,Marco,Carl,Lenny,Homer,Teodor,Leopold”初始化 私有静态字符串参数; 私有静态字符串[]nameArray; 私有静态最终整数[]ageArray={50,30,40,46,4

我正在使用Jaspersoft Studio 6.11和Jasper服务器7.5.0

我想创建一个使用报表参数的数据源。 我的数据源基于以下示例:

公共类MyImplementation实现JRDataSource{
//这应该从报告参数$P{param}=“Frank,Joseph,Marco,Carl,Lenny,Homer,Teodor,Leopold”初始化
私有静态字符串参数;
私有静态字符串[]nameArray;
私有静态最终整数[]ageArray={50,30,40,46,44,26,32,21};
专用整数计数器=-1;
private HashMap fieldsNumber=new HashMap();
private int lastFieldsAdded=0;
@凌驾
public boolean next()引发异常{

if(counter最常用的方法是创建一个构造函数,并在其中传递参数

首先删除所有的
静态
修饰符,因为您不需要它们,也可以从不同的线程执行多个报告(即使您当前没有这样做)

您的构造函数将是

public MyImplementation(String param){
    this.param = param;
}
在jrxml中使用它时,传递参数

<dataSourceExpression>
    <![CDATA[new my.package.name.MyImplementation($P{param})]]>
</dataSourceExpression>

最常用的方法是创建一个构造函数,并在其中传递参数

首先删除所有的
静态
修饰符,因为您不需要它们,也可以从不同的线程执行多个报告(即使您当前没有这样做)

您的构造函数将是

public MyImplementation(String param){
    this.param = param;
}
在jrxml中使用它时,传递参数

<dataSourceExpression>
    <![CDATA[new my.package.name.MyImplementation($P{param})]]>
</dataSourceExpression>