我的JavaBean包含java.util.List.
Userinfo {
private String username;
private String password;
List<Address> listAddress;
}
Run Code Online (Sandbox Code Playgroud)
如何在Detail band中显示此List的数据?
根据向Jaspersoft Studio添加自定义数据源,能够将java bean中的自定义数据源添加到报表之后,我将使用jasper进入报表的第二点.
我有一个主报告,它使用数据库作为其数据源.然后我将一个bean.xml数据源添加到报表中,并将一个表添加到主报表中,该报表使用此bean.xml数据源来获取java bean.
我的目标是从主报表中获取字段值并操纵其值,然后用这些值填充bean,最后用bean填充表.
为此,我编写了3个类,我在表数据集中用作Scriptlet:
问题出在FillTable类中,当我说我String kNFormelGG = (String) this.getParameterValue("gg");创建的bean.xml与测试连接失败时java.lang.reflect.InvocationTargetException
Caused by: java.lang.NullPointerException
at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:95)
at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:86)
at org.iqtig.reporting.dataSource.bean.dataSourceXML.FillTable.fillTable(FillTable.java:45)
at org.iqtig.reporting.dataSource.bean.dataSourceXML.JRDataSourceFactory.createCollection(JRDataSourceFactory.java:27)
... 34 more
Run Code Online (Sandbox Code Playgroud)
如果我分配一个修复值,如String kNFormelGG ="Test me"bean连接遇到没有错误,并在将bean.xml指定为Dataset1中的默认数据适配器的值后,它将使用静态值填充表.如何从主报表数据源动态获取参数或值中的数据并在bean中使用它?我有这样的假设:在从我的适配器调用静态工厂类时,字段仍然是空的.也许我错了,但我没有找到任何其他声明来解决这个问题.
BeanFactory类
import java.util.Collection;
import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;
/**
* Factory for TableCellsBean Klasse
*
* @author iman.gharib
*/
public class JRDataSourceFactory extends JRDefaultScriptlet {
/**
* @return collection der TableCellsBean Objekten
* @throws JRScriptletException
*/
public …Run Code Online (Sandbox Code Playgroud) 我有一个.jrxml文件,我想从代码中传递一些参数.我有一个Orde具有像场R舱double price,int quantity和Product product.情况很简单,当我需要通过价格或数量时,我只是这样做:
<textFieldExpression class = "java.lang.Integer">
<![CDATA[$F{quantity}]]>
</textFieldExpression>
Run Code Online (Sandbox Code Playgroud)
当我试图通过时出现问题product.getName().我尝试过类似的东西:
<textFieldExpression class = "java.lang.String">
<![CDATA[$F{product}.getName()]]>
</textFieldExpression>
Run Code Online (Sandbox Code Playgroud)
还有很多其他人,但我一直在收到错误: net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Field not found : product
你知道如何解决这个问题吗?