2011-11-29 48 views
0

我是相当新的JasperReports我需要从自定义数据源创建一个报告。为此,我实现了JRDataSource接口,用两种方法:JasperReports:访问自定义数据源

public class FacultyStudentsDS implements JRDataSource { 

    @Override 
    public Object getFieldValue(JRField field) throws JRException { 
     ... 
    } 

    @Override 
    public boolean next() throws JRException { 
     ... 
    } 
} 

然后我尝试创建一个PDF文档时,这样说:

pdf = JasperRunManager.runReportToPdf(reportFile.getAbsolutePath(), 
new HashMap(), studentsDS); 

我的问题是,我不知道如何访问我传递给报告的数据。我不知道要在.jrxml文件中写什么。如何访问我传递给报告的studentsDS变量,在.jrxml文件中?

回答

1

您需要有<detail>频段。然后,该带宽内可以使用类似下面的访问数据源字段:

<textFieldExpression class="java.lang.String"><![CDATA[$F{dataSourceField}]]></textFieldExpression> 

根据您的需求,您可能并不需要创建自己的自定义数据源。通过在JRBeanCollectionDataSource中包装Java bean,您可以使用上述$F{语法访问该集合中的Java Bean的属性。

+0

谢谢!这似乎很简单。 –