Estou desenvolvendo um relatório onde o resultado do select é uma lista de uma classe, ficando como se fosse a seguinte estrutura:
Nome Janeiro Fevereiro Março
Teste 1 2
Teste1 1
Teste1 1 1
Alguém tem alguma idéia de como eu poderia fazer para juntar o Teste1 em apenas uma linha? Eu tentei de algumas maneiras porém não obtive muito sucesso. Além de juntar a segunda e terceira linha, teria que eliminar a terceira linha, pois teria que ser apenas uma linha no resultado.
Ele recebe os dados de um sql e carrega em uma lista, mas a partir da lista eu não to conseguindo ordenar da maneira correta.
[]´s
Junior
I
icjunior07
Kappa01, consegui resolver o problema!!
Estou postando o meu código para se alguém precisar fica como consulta:
while(index1<l.size()){index2=index1+1;while(index2<l.size()){if(l.get(index1).getUni_nome().equals(l.get(index2).getUni_nome())&&l.get(index1).getNome_area().equals(l.get(index2).getNome_area())){//seta o primeiro índice no campo corretoif(l.get(index1).getMes_vigente().equals("01")){l.get(index1).setJaneiro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("02")){l.get(index1).setFevereiro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("03")){l.get(index1).setMarco(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("04")){l.get(index1).setAbril(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("05")){l.get(index1).setMaio(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("06")){l.get(index1).setJunho(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("07")){l.get(index1).setJulho(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("08")){l.get(index1).setAgosto(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("09")){l.get(index1).setSetembro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("10")){l.get(index1).setOutubro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("11")){l.get(index1).setNovembro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("12")){l.get(index1).setDezembro(l.get(index1).getTotal_area());}//seta o segundo índice no índice anteriorif(l.get(index2).getMes_vigente().equals("01")){l.get(index1).setJaneiro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("02")){l.get(index1).setFevereiro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("03")){l.get(index1).setMarco(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("04")){l.get(index1).setAbril(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("05")){l.get(index1).setMaio(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("06")){l.get(index1).setJunho(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("07")){l.get(index1).setJulho(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("08")){l.get(index1).setAgosto(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("09")){l.get(index1).setSetembro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("10")){l.get(index1).setOutubro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("11")){l.get(index1).setNovembro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}elseif(l.get(index2).getMes_vigente().equals("12")){l.get(index1).setDezembro(l.get(index2).getTotal_area());deletaLista.add(l.get(index2));}logger.info("são iguais");}else{logger.info("não são iguais");//setando o primeiro índice no campo corretoif(l.get(index1).getMes_vigente().equals("01")){l.get(index1).setJaneiro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("02")){l.get(index1).setFevereiro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("03")){l.get(index1).setMarco(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("04")){l.get(index1).setAbril(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("05")){l.get(index1).setMaio(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("06")){l.get(index1).setJunho(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("07")){l.get(index1).setJulho(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("08")){l.get(index1).setAgosto(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("09")){l.get(index1).setSetembro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("10")){l.get(index1).setOutubro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("11")){l.get(index1).setNovembro(l.get(index1).getTotal_area());}elseif(l.get(index1).getMes_vigente().equals("12")){l.get(index1).setDezembro(l.get(index1).getTotal_area());}}index2++;}index1++;}l.removeAll(deletaLista);
Eu utilizei o removeAll também para poder eliminar o registro que ficaria sem nenhum dado, assim deixando somente os itens que eu quero na lista e com todos os meses setados corretamente.
Obrigado pela ajuda.
[]´s
Junior
Polimorphism
Daria pra passar pra Integer e depois usar switch =D Assim fica complicado de ler
kapa01
a minha duvida principal ainda naum foi resolvida, quem é “l”?
quais os campos do seu banco?
I
icjunior07
l é uma List<> com o resultado do select do banco e estrutura de uma classe (no caso RelatorioEstatisticaIndAdvogado) onde tem vários campos dentro.
Eu utilizo o ibatis para comunicar com o banco de dados e a instrução sql se chama buscarEstatisticaIndicacaoUnidadeMesAnalitico.
Ficou mais claro? Não sei se consegui explicar
kapa01
faça o q o polimorphism sugeriu utilize switch para o seu codigo ficar mais limpo e com maior performace.
para isso converta l.get(index1).getMes_vigente() para inteiro.
int mes = Integer.parseInt(l.get(index1).getMes_vigente());
pelo que eu entendi esse seu metodo retorna um List e você quer pegar os valores que o metodo retorna e inseri-los em um JTable, correto? ou o seu problema esta no metodo?
B
Bruno_Laturner
Vontade de resolver esse problema usando Reflection, mas tenho dó do guri…