Como posso ordenar dados de um relatório em jasper utilizando as classes do jasperreport?

4 respostas
java
A

Eu tenho uma classe ConnectionFactory com um método que retorna uma conexão, e um clienteDAO um crud, e meu banco de dados populado com nome, id, endereço e uf. Minha necessidade é que os dados vindos do relatório sejam ordenados a partir de classes do jasper. Quando eu executo o viewer do main não vem em ordem alfábetica. Como eu poderia arrumar isso?

Minha classe main:

package testes;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

import com.jasper.database.ConnectionFactory;

public class fd {

public static void main(String[] args) throws SQLException, ClassNotFoundException, JRException {
	Connection con =  new ConnectionFactory().getConnection();
	String src = "clientes.jasper";
	JasperPrint jasperPrint = null;
	Map params = new HashMap();
	params.put("primeiroNome", "G%");//Como eu poderia ordernar?
	jasperPrint =  JasperFillManager.fillReport(src, params, con);
	JasperViewer view = new JasperViewer(jasperPrint, false);
	view.setVisible(true);
    }
}

4 Respostas

I

Voce quer passar esse seu map ordenado ?
Com um pouco de java 8

params.entrySet().stream().sorted(Map.Entry.comparingByValue()).forEach(System.out::println);

Caso a ordenação for pela key é só trocar o byValue pelo byKey

A

Eu quero ordenar os dados vindos do banco de dados para eles sairem ordenados com a classe do jar do jasper não sei como faço isso…

I

Você ao menos testou o código que eu coloquei ?

A

Não quero ordenar um mapa…

Preciso utilizar um exemplo como o desse link: <a href="http://community.jaspersoft.com/jasperreports-library/issues/3357">http://community.jaspersoft.com/jasperreports-library/issues/3357</a>

List sortList = new ArrayList();

JRDesignSortField sortField = new JRDesignSortField();

sortField.setName(“Total”);

sortField.setOrder(SortOrderEnum.DESCENDING);

sortField.setType(SortFieldTypeEnum.VARIABLE);

sortList.add(sortField);

//add other sortfields here

reportParams.put(JRParameter.SORT_FIELDS, sortList);
Criado 25 de julho de 2016
Ultima resposta 25 de jul. de 2016
Respostas 4
Participantes 2