Bom dia galera, tdo certo? Bem, estou fazendo um relatório de boletim. Nele, tenho um agrupamento por aluno e dentro do mesmo tenho um crosstab que informa as disciplinas, os períodos ( 1º trimestre, 2º trimestre, 3º trimestre, media final…etc) e as notas…
Bom, até aí tudo bem…O relatório está funcionando…Só que agora estou querendo ordenar as disciplinas apartir de uma collection…Pois faço o relatório apartir de uma lista…A minha collection seria apartir do seguinte: disciplina.gradeCollection.
Estou pesquisando e tal, mas nao estou sabendo onde ordenar e nem como colocar essa disciplina.gradeCollection dentro do relatório. A disciplina é um objeto que eu tenho apartir de um FK na minha classe.
Em uma tela estou fazendo o seguinte para retornar as disciplinas conforme a ordem que preciso:
public List<Nota> buscaNotasFinaisPorMatricula(Matricula matric, Integer ano) {
String sqlNotasFinais = "select * from edu_notas"
+ " inner join edu_escolas on edu_escolas.esc_codigo = edu_notas.not_codescola"
+ " left join edu_grade g on g.gra_codetapa = edu_notas.not_codetapa"
+ " inner join edu_disciplinas on edu_disciplinas.dis_codigo = edu_notas.not_coddisciplina"
+ " inner join edu_turmas on edu_turmas.tur_codigo = edu_notas.not_codturma"
+ " inner join edu_aluno on edu_aluno.alu_codigo = edu_notas.not_codaluno"
+ " WHERE edu_aluno.alu_codigo =?1"
+ " AND edu_escolas.esc_codigo =?2"
+ " AND edu_turmas.tur_codigo =?3"
+ " AND edu_notas.not_codetapa =?4"
+ " AND edu_notas.not_ano =?5"
+ " AND edu_notas.not_periodo = 95 and g.gra_coddisc = edu_notas.not_coddisciplina order by g.gra_ordem asc";
List<Nota> notasFinais = crudService.executeNativeQuery(sqlNotasFinais, Nota.class,
matric.getAluno().getCodigo().toString(),
matric.getEscola().getCodigo().toString(),
matric.getTurma().getCodigo().toString(),
matric.getEtapa().getCodigo().toString(),
ano.toString());
return notasFinais;
}
E para o relatório que preciso não estou conseguindo fazer…Tenho o seguinte:
public static final String PREFIXO_OBJETO = "n";
private static final String QUERY_NOTAS = "select n from Nota n left join fetch n.turma "
+ "left join fetch n.escola left join fetch n.disciplina left join fetch n.aluno";
@TransactionAttribute(TransactionAttributeType.NEVER)
public List<Nota> listaBoletimSimple(Map<String, Object> parametros) {
String orderBy = ServiceUtil.montaOrderBy("aluno.nome", true, PREFIXO_OBJETO);
return crudService.executeQuery(QUERY_NOTAS, orderBy, criaFiltros(parametros));
}
Sendo que o que eu acredito que devo implemtenar é o seguinte, corfome o metódo buscaNotasFinaisPorMatricula
private static final String QUERY_NOTAS = "select n from Nota n left join fetch n.turma "
+ "left join fetch n.escola left join fetch n.disciplina left join fetch n.aluno";
Se alguém puder ajudar ou dar ideias de como posso ordenar as disciplinas dentro do crosstab ficaria mtoo grato…Vlw