문제

ME 보고서의 열의 역동적 인 수를 생성해야합니다.그래서 저는 JASPerPrint를 거대한 대상으로 설정했습니다.

Object[] obj = new Object[selectedUsers.size()];
//fill the massive
JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), new JRBeanArrayDataSource(obj));
.

My OBJ는 클래스입니다.

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);
    }
}
.

다음 열을 만들려고합니다.

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);
}
.

결국에는 예외가 있습니다.

net.sf.jasperreports.engine.design.jrvalidationException : 보고서 디자인이 유효하지 않습니다. 1. 텍스트 필드 표현식에 대해 지원되지 않는 클래스 "java.lang.Object".

제발, 도움을!Jasper 및 List 또는 Array를 사용하는 방법을 알지 못합니다

도움이 되었습니까?

해결책

Jasper Reports는 객체를 해당 요소의 유효한 유형으로 허용하지 않습니다.나는 다음 중 하나가되어야한다 :

  • string
  • 번호 (또는 IT의 서브 클래스)
  • 날짜
  • 부울

클래스의 각 요소를 양식으로 요청하고 열 빌더에 적절한 클래스를 전달해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top