Come impostare il valore della lista in DynamicJasper
-
07-09-2020 - |
Domanda
Ho bisogno di generare un conteggio dinamico delle colonne in me report.Quindi ho impostato il mio jasperprint il massiccio dell'oggetto:
Object[] obj = new Object[selectedUsers.size()];
//fill the massive
JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), new JRBeanArrayDataSource(obj));
.
Il mio obj è una classe:
public class ResultsDTO {
private String login;
private Integer id;
private List<String> list;
private Object[] results;
public Object[] getResults() {
return results;
}
public void setResults(Object[] results) {
this.results = results;
}
public ResultsDTO(){
}
public ResultsDTO(Integer id,String login) {
super();
this.login = login;
this.id = id;
}
public ResultsDTO(String login, Integer id, List<String> list) {
super();
this.login = login;
this.id = id;
this.list = list;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public void addToList(String day_result){
this.list.add(day_result);
}
}
.
E poi provo a creare colonne:
FastReportBuilder firstReport = new FastReportBuilder();
List<AbstractColumn> column_list = new ArrayList<AbstractColumn>();
AbstractColumn columnId = getColumn("id", Integer.class,"№", 30, headerStyle, detailStyle);
AbstractColumn columnLogin = getColumn("login", String.class,"ФИО", 150, headerStyle, detailStyle);
for (int i = 0; i < header.size(); i++){
AbstractColumn column = getColumn("results", Object.class, header.get(i), 80, headerStyle, detailStyle);
column_list.add(column);
}
.
Alla fine ho un'eccezione:
.net.sf.jasperreports.engine.design.jrvalidationException: Report Design non valido: 1. Classe "java.lang.object" non supportato per l'espressione del campo di testo.
Per favore, aiuto!Non so come usare Jasper E List o Array
Soluzione
Jasper Reports non consente l'oggetto come tipo valido per i suoi elementi.Deve essere uno dei seguenti:
- .
- stringa
- Numero (o qualsiasi sottoclasse di esso)
- Data
- boolean
Dovresti chiedere a ciascun elemento nel modulo per la sua classe e passare la classe corretta al costruttore di colonne.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow