Java 在Jaspersoft 6.3.1表中添加数据源对象时,结果为Null
我使用Java 在Jaspersoft 6.3.1表中添加数据源对象时,结果为Null,java,jasper-reports,Java,Jasper Reports,我使用net.sf.jasperreports.engine.data.JRBeanCollectionDataSource类创建了一个参数ItemData 在表I中添加了一个数据源表达式$P{ItemData} 我用classjava.lang.String创建了一个字段Data,并将其放在表详细信息框中 但结果是空的。我研究了如何添加datasouce对象以及示例。但我试着应用到这段代码中。但是我做不到 我的代码: public static void main(final String[]
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
类创建了一个参数ItemData
在表I中添加了一个数据源表达式$P{ItemData}
我用classjava.lang.String
创建了一个字段Data
,并将其放在表详细信息框中
但结果是空的。我研究了如何添加datasouce对象以及示例。但我试着应用到这段代码中。但是我做不到
我的代码:
public static void main(final String[] args) {
try {
final DataList DefinitionData= new DataList();
final List<String> Data = new ArrayList<>();
Data.add("AAG");
Data.add("SNG");
DefinitionData.setData(Data);
final JRBeanCollectionDataSource items = new JRBeanCollectionDataSource(Data);
final Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ItemData", items);
当您将列表(java列表)传递给jasper时,在jasper中也必须使用
list
。将Data
从java.lang.String
更改为java.util.List
我尝试过。但它仍然会导致Null。我添加了我的jrxml代码。您的代码可能重复错误。看看前面评论中的帖子,哪一条是错的。Java代码或Jrxml?模板是wrong@AlexK这和其他问题不一样。我尝试了所有可能的方法以表格格式打印数据中的值,但结果都是NULL。我可以使用文本字段获取值并以[AAG,SNG]格式打印,但不能在表中按行打印。任何帮助都将不胜感激。我尝试了{},但最终返回null。
public class DataList {
private List<String> Data= new ArrayList<String>();
public List<String> getData() {
return Data;
}
public void setData(final List<String> Data) {
this.Data= Data;
}
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Passing List of String" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<subDataset name="ItemDataset">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="Data" class="java.lang.String"/>
</subDataset>
<parameter name="ItemData" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<field name="Data" class="java.lang.String">
<fieldDescription><![CDATA[_THIS]]></fieldDescription>
</field>
<summary>
<band height="285" splitType="Stretch">
<componentElement>
<reportElement x="120" y="50" width="200" height="200">
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="ItemDataset">
<dataSourceExpression><![CDATA[$P{ItemData}]]></dataSourceExpression>
</datasetRun>
<jr:column width="190">
<jr:tableHeader height="30">
<staticText>
<reportElement x="0" y="0" width="190" height="30"/>
<text><![CDATA[List of Data]]></text>
</staticText>
</jr:tableHeader>
<jr:detailCell height="30">
<textField>
<reportElement x="0" y="0" width="190" height="30"/>
<textFieldExpression><![CDATA[$F{Data}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</summary>
</jasperReport>
final String userHomeDirectory = System.getProperty("user.home");
final String outputFile = userHomeDirectory + File.separatorChar + "JasperTableExamp10.pdf";
final JasperPrint jasperPrint = JasperFillManager.fillReport( "/src/main//Example.jasper",parameters, new JREmptyDataSource());
final OutputStream outputStream = new FileOutputStream(new File(outputFile));
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);